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:
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.