Ukoliko vam se ukazala potreba za dodavanjem neke funkcionalnost na web stranici, zasigurno ste Googlajući, naišli na komad php kôda (snippet) koji treba ubaciti u functions.php aktivne teme. I tako jednog dana shvatite da vam je functions.php prepun kôda kojeg, u slučaju da želite promijeniti temu, morate ručno kopirati u functions.php nove teme … U slučaju da nešto pogrešno iskopirate, vrlo lako vam se cijela stranica može “srušiti” i vidjeti ćete “WP bijeli ekran smrti”.
Moram spomenuti da, ukoliko već dodajete snippete u functions.php, to treba odraditi u child temi (članak na engleskom jeziku).
Danas ću vam skrenuti pažnju na drugi, fleksibilniji način dodavanja snippeta. Radi se o tzv. Site-specific snippet pluginu. Riječ je o nečemu što je još 2011. godine predložio Otto, stari WordPress mačak. Naime, Otto je predložio kreiranje plugina koji će sadržavati sve željene (dodatne) funkcionalnosti, odnosno snippete.
Bez brige, kreiranje takvog plugina je vrlo jednostavno i, prateći upute, mogu ga kreirati i početnici.
Kako kreirati Site-specific plugin
1. Kreirajte novi direktorij u WordPress plugin direktoriju(/wp-content/plugins) i nazovite ga npr. /wp-content/plugins/mojisnippeti/
2. Kreirajte novu php datoteku i smjestite je u novo-kreirani direktorij. Datoteku nazovite npr. mojisnippeti.php
3. Dodajte slijedeći kôd u datoteku mojisnippeti.php:
<?php /* Plugin Name: Moji snippeti Description: Site specific plugin za mojsajt.hr */ /* Dodajte kod ispod ove linije */ /* Ne dodajte kod ispod ove linije */ ?>
Eto, sada u WP adminu, u kartici pluginova (wp-admin/plugins.php) vidite novi plugin. Locirajte Moji snippeti plugin i aktivirajte ga.
Gdje pronaći snippete?
Na netu možete pronaći mnogo mjesta koja sadrže WP snippete, počevši od wordpress.org support foruma, pa do specijaliziranih stranica poput wp-snippets.com
Još uvijek ne razumijem gdje dodati snippet…
Ok. Imate plugin (naravno, aktivirali ste ga), pronašli ste snippet za, recimo automatsko umetanje Featured image-a u članak (iz prve slike u članku). Iskopirate kod i zalijepite ga u mojisnippeti.php. Datoteka sada izgleda ovako:
<?php /* Plugin Name: Moji snippeti Description: Site specific plugin za mojsajt.hr */ /* Dodajte kod ispod ove linije */ function set_featured_image_for_posts() { // Get all posts so set higher number, // you can increase to any number if you have big amount of posts $args = array( 'numberposts' => 5000); // all posts $all_posts = get_posts( $args ); foreach($all_posts as $k=>$v) { $args = array( 'numberposts' => 1, 'order'=> 'ASC', 'post_mime_type' => 'image', 'post_parent' => $v->ID, 'post_type' => 'attachment' ); // Get attachments $attachments = get_children( $args ); $i=0; foreach($attachments as $attach) { // Get only first image if($i==0) $attachmentsid = $attach->ID; $i++; } // Set Featured image set_post_thumbnail($v->ID,$attachmentsid); } } /* Ne dodajte kod ispod ove linije */ ?>
Postoje li već gotovi pluginovi?
Iako je procedura kreiranja post-specific plugina vrlo jednostavna, postoji mogućnost da se neki korisnici ipak neće upustiti u postupak izrade ovog basic plugina.
Među 30 tisuća pluginova dostupnih u službenom WordPress plugin repozitoriju, naravno da postoje pluginovi za ovu svrhu. Prednost nekih je to što možete kreirati plugin s stotinama omiljenih snippeta te ih uključivati/isključivati po potrebi.
Izdvajam odlične Code snippets plugin koji pruža upravo tu mogućnost, plus importiranje snippeta iz XML datoteke, te Post Snippets koji vam omogućuje kreiranje i upotrebu HTML, PHP koda ili učestalo korištenog teksta, putem shortcode-a i putem buttona u Vizualno/Text tabu.