Impostazione WordPress Template

Aprile 09, 2011 1 Commento

Ecco la prima parte del tutorial su come sviluppare un template di WordPress, spiega gerarchia del template, impostazioni utili e la struttura dati.

Per accedere alle altre parti del tutorial vedi il post Tutorial di WordPress Template.

Template Hierarchy

Il primo concetto da imparare è la gerarchia dei file che WordPress usa per costruire il template. WordPress in automatico usa i file dentro alla cartella “/wp-content/themes/nome_tema” a seconda dell’url richiesto dall’utente.

Ad esempio se l’utente sta richiedendo la pagina index WordPress mostra il file index.php, se invece l’utente sta richiedendo una pagina di un post WordPress mostra il file single.php, allo stesso modo si ha archive.php per richieste di post multipli, page.php per richieste di pagine, ecc.. Puoi visualizzare tutti i casi di come WordPress sceglie le pagine da visualizzare.

C’è un modo avanzato, che io utilizzo, per organizzare la gerarchia dei template. Bisogna modificare il file functions.php e aggiungere questo codice :

add_filter('category_template', 'my_category_template');
function my_category_template( $template ) {
  foreach( (array) get_the_category() as $cat ) {
    if ( file_exists(TEMPLATEPATH . "/category-".$cat->term_id.".php") )
      return TEMPLATEPATH . "/category-".$cat->term_id.".php";
  }
}
add_filter('single_template', 'my_single_template');
function my_single_template( $template ) {
  foreach( (array) get_the_category() as $cat ) {
    if ( file_exists(TEMPLATEPATH . "/single-".$cat->term_id.".php") )
      return TEMPLATEPATH . "/single-".$cat->term_id.".php";
  }
}

Se si sta utilizzando il plugin di lingueWPML usa il codice sottostante invece:

add_filter('category_template', 'my_category_template');
function my_category_template( $template ) {
  foreach( (array) get_the_category() as $cat ) {
    if ( file_exists(TEMPLATEPATH . "/category-".icl_object_id($cat->term_id, "category", false, "en").".php") )
    return TEMPLATEPATH . "/category-".icl_object_id($cat->term_id, "category", false, "en").".php";
  }
}
add_filter('single_template', 'my_single_template');
function my_single_template( $template ) {
  foreach( (array) get_the_category() as $cat ) {
    if ( file_exists(TEMPLATEPATH . "/single-".icl_object_id($cat->term_id, "category", false, "en").".php") )
    return TEMPLATEPATH . "/single-".icl_object_id($cat->term_id, "category", false, "en").".php";
  }
}

Con questo codice devi fare i file category-x.php e single-x.php (dove x è il numero dell’ID della categoria) per ogni categoria di cui vuoi avere un template di pagina custom. Per esempio category-4.php viene usato per mostrare https://minimit.com/category/lavori?lang=it e tutte le sottocategorie di lavori, e single-4.php viene usato per mostrare https://minimit.com/lavori/teknox-2011-it?lang=it e tutte le altre pagine di lavori.

Come puoi vedere in questo modo si ha una grande flessibilità, e si può usare la gerarchia di template standard per alcune categorie se si vuole.

Impostazioni Utili

La prima impostazione che si deve cambiare dopo l’installazione è il settaggio permalinks custom: di default WordPress usa i permalink con “?p=x” (dove x è l’ID della categoria o del post), cosa che non risulta ottimale per organizzare i link, perchè in questo modo non hanno significato di contenuto, e si perde una delle più importanti tattiche dell’ottimizzazione dei motori di ricerca, ossia avere parole chiave negli url del sito.

Quindi entra in Settings>Permalinks e scegli “Custom Structure” e aggiungi:

/%category%/%postname%/

A seconda dei dati che vuoi siano visualizzati nell’indirizzo url usa questi codici:

%year% %monthnum% %day% %hour% %minute% %second% %post_id% %postname% %category% %tag% %author%


La seconda impostazione che puoi cambiare è quella che sceglie quanti post per ogni pagina vuoi che WordPress mostri. Accedi a Settings>Reading e cambia il valore di “Blog pages show at most”. Se per esempio non vuoi implementare nel sito l’impaginazione usa un numero molto alto.



Un’altra impostazione utile è quella di cambiare la lunghezza degli estratti, per farlo devi modificare il filefunctions.php e aggiungere questo codice:

add_filter('excerpt_length', 'new_excerpt_length');
function new_excerpt_length($length) {
	return 70;
}

Sostituisci 70 col numero di caratteri della lunghezza degli l’estratti.

La Struttura Dati

Entriamo nell’argomento su come WordPress salva i dati e come organizzare la struttura dei dati.

La prima cosa da fare è installare un plugin multilingua se stai usando più di una lingua, raccomando il plugin WPML Multilingual.

Successivamente si mettono le categorie che si utilizzeranno sotto Post>Categories; da mettere nell’ordine in cui devono apparire nel menu del sito.



Ora quando aggiungi un nuovo post con Post>Add New puoi selezionare le categorie che ha il post, così che il tuo template WordPress costruirà la pagina in modo diverso usando un template di pagina custom per ogni categoria, come visto precedentemente.

Ogni volta che vuoi fare un nuovo post devi aggiungere manualmente i campi personalizzati, cosa non ottimale per l’utilizzo dei clienti. Puoi ottenere un usabilità migliore, con i campi personalizzati che ti servono visibile e pronti da essere compilati.

Ci sono alcuni metodi per ottenere ciò, ho evaluato i Custom Post Fields e altre opzione, e il sistema più semplice è quello di utilizzare il plugin Magic Fields, dato che implementa le categorie, perchè supporta WPML e perchè è molto semplice aggiungere campi personalizzati con esso.



Bisogna solamente installare Magic Fields, creare e assegnare un write panels alle categorie, e poi aggiungere i campi personalizzati che ti servono in ogni pannello.

Il Tutorial

Fine della prima parte del Tutorial di WordPress Template.

La prossima parte del tutorial coprirà il loop, campi personalizzati e le categorie.

Commenti

    150e92bd335cce3c7bf3305e2f37ee34?s=40&d=http%3A%2F%2F1.gravatar

Lascia un commento