Cilj ovdje je na što jednostavniji način doći do toga da možemo lagano modificirati/naučiti WordPress iznutra. Tako da kao freelancer možemo krenuti SAMI na put da postanemo fullstack developer. Za početak, znanje PHP nije potrebno. Dovoljno je znanje HTML/JS a kasnije ćete Vi sami postepeno naučiti PHP koji i nije toliko drugačiji od javascripta. Pa se nakon toga možete uhvatiti npr. Laravela uz WordPress za projekte koji nisu brzinski izvedivi u WordPress-u…

Prije svega moramo imati instalirane razvojne komponente (paketiće):

Debian/Ubuntu

sudo apt-get install nginx php php-fpm mariadb phpmyadmin composer php-intl

ArchLinux/Manjaro

sudo pacman -S nginx php php-fpm mariadb phpmyadmin composer php-intl

Više detalja o postavljanju OVDJE.

Budući da ćemo koristiti built-in PHP development server, Nginx nemoramo podešavati.

MariaDB

Moramo instalirati i podesiti ‘phpmyadmin’. To želimo zato što imamo lakši pristup bazi podataka i zato što je jednostavno preglednije.

Postavljamo ‘phpmyadmin’ skriptu:

sudo nano /usr/local/bin/phpmyadmin

Kod skripte:

#!/bin/bash
cd /usr/share/webapps/phpMyAdmin/
php -S localhost:9876

Postavljamo skriptu kao executable:

sudo chmod +x /usr/local/bin/phpmyadmin

Pa sada kada želimo koristiti ‘phpmyadmin’, prvo pokrenemo u terminalu ‘phpmyadmin’ a zatim u pregledniku odemo na localhost:9876 .

Druga skripta je moj bash programčić koji generira SQL kod koji pravi development bazu:

sudo nano /usr/local/bin/wpcreatedb

I ubacivamo kod:

#!/bin/bash

UTIL_INFO="MARIADB INIT DATABASE GENERATOR \nAdd table name as this command argument."

if [ $# = 0 ]; then 

printf "$UTIL_INFO""\n"

else 

printf "\n"
printf "DROP DATABASE IF EXISTS "$1";""\n"
printf "CREATE DATABASE "$1";""\n"
printf "DROP USER IF EXISTS '"$1"'@'localhost';""\n"
printf "CREATE USER '"$1"'@'localhost' IDENTIFIED BY '"$1"';""\n"
printf "GRANT ALL ON "$1".* TO '"$1"'@'localhost';""\n"
printf "USE "$1";""\n\n"

fi

Postavljamo skriptu kao executable:

sudo chmod +x /usr/local/bin/wpcreatedb

Tako da, npr. ova naredba će izbaciti SQL kod u kojem su ime baze, korisnik i lozinka = ‘testDevelopmentBaza’:

wpcreatedb testDevelopmentBaza

će generirati:

DROP DATABASE IF EXISTS testDevelopmentBaza;
CREATE DATABASE testDevelopmentBaza;
DROP USER IF EXISTS 'testDevelopmentBaza'@'localhost';
CREATE USER 'testDevelopmentBaza'@'localhost' IDENTIFIED BY 'testDevelopmentBaza';
GRANT ALL ON testDevelopmentBaza.* TO 'testDevelopmentBaza'@'localhost';
USE testDevelopmentBaza;

Nakon toga, jednostavno otvorimo ‘phpmyadmin’ i ubacimo generirani kod u SQL tab.

Ovaj proces sada možemo ponavljati ako želimo napraviti drugi testni projekt.

WordPress

Preuzmemo WordPress. Pa idemo na url:

pa klik na ‘Preuzmi .tar.gz’.

Raspakirajmo arhivu (kod Vas je ime arhive vjerojatno drugačije):

tar -xf wordpress-hr.tar.gz -C ./
cd ./wordpress

I pokrenimo development server na localhost:3333:

php -S localhost:3333

Nakon ‘Welcome’ stranice, unosimo ‘testDevelopmentBaza’ u tri polja:

…i nakon toga pristupne podatke, Opet koristimo ‘testDevelopmentBaza’ za sve.

I… ta-daaaa! ‘admin’ dashboard!

Tweakanje i proučavanje

Teme

U admin panelu, pod ‘Izgled->Teme’ tražimo aktivnu temu.

Znaći ‘Twenty Twenty-One’, pa idemo u ‘./wordpress/wp-content/themes/twentytwentyone/’ dir.

Ali ponajprije ćemo napraviti sigurnosnu kopiju ‘twentytwentyone’ direktorija. Najjednostavnije je arhivirati direktorij ili kopirati negdje drugdje.

E sada su već neke stvari jasnije. Npr. ‘header.php’:

<!doctype html>
<html <?php language_attributes(); ?> <?php twentytwentyone_the_html_classes(); ?>>
<head>
	<meta charset="<?php bloginfo( 'charset' ); ?>" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
	<?php wp_head(); ?>
</head>

<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<div id="page" class="site">
	<a class="skip-link screen-reader-text" href="#content"><?php esc_html_e( 'Skip to content', 'twentytwentyone' ); ?></a>

	<?php get_template_part( 'template-parts/header/site-header' ); ?>

	<div id="content" class="site-content">
		<div id="primary" class="content-area">
			<main id="main" class="site-main" role="main">

Tu već vidimo neke nam jasne stvari iz HTML-a. Ako ste JS developer, sve što morate znati je da je PHP kod između ‘<?php’ i ‘?>’ XML čvaraka.

Pa za test, na kraju ‘header.php’ datoteke, ubacujemo:

<h1> HELLO I'M WORDPRESS TWEAKER! </h1>

i na localhost:3333 dobivamo:

CSS nam je u ‘style.css’ datoteci a možemo “tweakati” sve datoteke osim ‘functions.php’.

Dodatci

Drugi, nama zanimljivi dir je ‘./wordpress/wp-content/plugins/’.
Pa čemo samo za primjer napraviti jednostavni dodatak.

Da sad nepišem bezveze, imamo to u mojem starijem blogu:

https://blog.ioox.studio/2021/11/23/kako-napraviti-wordpress-plugin/

Kako naučiti PHP?

W3 ima odličnu sekciju posvećenu PHP-u zajedno sa primjerima i ispitnim pitanjima. Za testiranje PHP koda, sve što trebate je da napravite index.php i da pokrenite development server u istom direktoriju. Naredba je ‘php -S localhost:3333’.

Kad to lagano savladate prihvatite se CodeIgniter-a pa onda Laravel-a. I naravno, nemojte zaboraviti proučiti WooCommerce, koji je danas definitivno poželjno proširenje WordPress-u.