Thematic per WordPress: personalizzare gli hooks predefiniti

Wordle: Thematic per WordPress: personalizzare gli hooks predefinitiSe usiamo il potente framework Thematic per creare i nostri temi, possiamo trovarci davanti alla possibilita’ di voler modificare non solo l’ estetica del tema stesso ma anche la struttura del template.

Thematic Framework per WordPress ci permette, attraverso i child theme, di apportare modifiche strutturali al tema senza dover andare a modificare i file di WordPress. Quindi, in caso di aggiornamento di WordPress, non avremo il bisogno di di aggiornare anche i nuovi file con il nostro codice personalizzato.

Thematic Framework per WordPress ha una serie di funzioni incorporate scritte per raggiungere questo scopo. Una lista completa (in via di aggiornamento continuo) possiamo trovarla qui: Guida agli hooks di Thematic.

Ma come fare a modificare le funzioni predefinite?

Se andiamo a dare uno sguardo al file hooks-filters.php incluso in Thematic possiamo notare il codice che li fa funzionare.

Per esempio, vogliamo aggiungere la lista delle categorie alla navigazione l’ idea che viene subito in mente è quella di copiare l’ hook relativo alla costruzione della navigazione nel nostro file functions.php e modificare il codice. Ma agendo in questa maniera otterremo un errore simile a ‘Fatal error: Cannot redeclare thematic_access() (previously declared in /…/wp-content/themes/nostrochildtheme/functions.php:26) in /…/wp-content/themes/thematic/library/extensions/hooks-filters.php on line 64‘.

Questo accade perchè per prima cosa dobbiamo rimuovere l’ hook originale e sostituirlo con quello personalizzato.

Nel nostro caso, se vogliamo modificare l’ hook thematic_access() dobbiamo inserire nel file functions.php il codice per la sua rimozione

function nuovo_header() {
    remove_action('thematic_header','thematic_access',9);
}
add_action('init', 'nuovo_header');

e poi inserire il codice da noi creato

function nuovo_access() {
    <!-- nostro codice -->
}
add_action('thematic_header','nuovo_access',9);

Per maggiori informazioni non esitate a chiedere.

Termini collegati: , , I commenti ed i trackbacks sono attualmente chiusi.