Úvod do filtrů a akcí

0

Od roku 2004, ve kterém spatřil světlo internetového světa WordPress 1.2, patří filtry a akce k základním kamenů pro vývoj témat a modulů.

Háky (obecný termín pro tyto dvě rozdílné skupiny PHP funkcí) umožňují upravit nebo rozšířit funkcionalitu WordPress , aniž bychom museli jakýmkoli způsobem zasahovat do souborů jádra systému. Níže si ukážeme, že filtr mění hodnotu obsahu a akce dokáže k volané funkci přidat souběžně další. Díky tomu máme k dispozici velmi silný nástroj pro tvorbu jedinečného blogu či webové prezentace a zároveň se nemusíme obávat problémů při aktualizaci na nejnovější verzi WP.

Filtr spouští WordPress při změně textu nebo jiných druhů obsahu před přidáním do databáze nebo jejich odesláním do prohlížeče. Váš modul může určit, že jedna nebo více PHP funkcí změní daný typ obsahu v daném čase.


Jednoduchým příkladem pro pochopení, co je základem fungování háků je ukázka již existující funkce a její úpravy.

function get_excerpt($text, $length = 150) {

$excerpt = substr($text,$length);
return $excerpt;
}

 

Tato funkce obsahuje dva parametry: řetězec (string) a délku, na kterou ho chceme zkrátit. Přejete si dvě stě znaků ve výpisu příspěvku místo výchozích 150 znaků? Žádný problém, změníme parametr při použití funkce. V první řadě aplikujeme filtr pro funkci, upravující délku výpisu.

 

function get_excerpt($text, $length = 150) {

$length = apply_filters('excerpt_length', $length);

$excerpt = substr($text,$length);
return $excerpt;
}

 

Název tohoto filtru je excerpt_lenght a zatím k němu není připojena žádná funkce, výpis proto zůstává na hodnotě 150 znaků. Musíme tedy systému říci, že chceme „zaháknout“ filtr excerpt_length a definovat novou hodnotu. Tu změníme následujícím zápisem:

 

function get_excerpt($text, $length = 150) {

$length = apply_filters('excerpt_length');

$excerpt = substr($text,$length);
return $excerpt;
}

function modify_excerpt_length() {
return 200;
}

add_filter('excerpt_length', 'modify_excerpt_length');

 

Hotovo, pro všechny výpisy platí pravidlo, že budou obsahovat 200 znaků. Bez zásahu do původní funkce jsme aplikací filtru upravili délku výpisu příspěvků a změna se projeví v každém zobrazeném výpisu.

Akce spouští WordPress v konkrétních bodech během provádění příkazů, nebo když dojde ke konkrétní události. Váš modul může pomocí akce určit, že jedna nebo více PHP funkcí bude provedeno právě v těchto bodech.

Ukázkou užitečné akce je vložení odkazu na ikonu stránky do souboru header.php ve vašem aktivním tématu. Funkce s názvem theme_favicon obsahuje HTML kód s adresou, na které je uložen soubor favicon.ico, zápisem add_action(‚wp_head‘, ‚theme_favicon‘); řekneme systému, že k funkci wp_head chceme připojit naši funkci vkládající zmíněný kód mezi značky< head>< /haed> .

 

function theme_favicon() { ?>

 <link rel="shortcut icon" href="<?php bloginfo('stylesheet_directory') ?>/images/favicon.ico"/>

<?php }

add_action('wp_head', 'theme_favicon');

 

Dobrou zprávou je, že WordPress používá funkce zcela všude a možnosti úprav jsou v podstatě neomezené, začínající vývojáře by však mohl odradit jejich počet (aktuálně více než 1500). Není jednoduché orientovat se v takovém množství funkcí, ale v oficiální dokumentaci WordPress se nacházejí kvalitně zpracované přehledy filtrů a akcí , dobrým startem ke studiu háků je i databáze háků Adama R. Browna.

 

Was this article helpful for you? Support me by sharing, please. 👍
WordPress Návod v PDF

LEAVE A REPLY

Please enter your comment!
Please enter your name here