Anatomia di un tema WordPress

Anatomia di un tema WordPress

Capire a grandi linee l’anatomia di un sito/blog WordPress può essere davvero di grande aiuto in caso di necessità, magari per effettuare delle modifiche, facendoti risparmiare un sacco di tempo e avendo bene in mente dove andare a toccare.

La struttura e la grafica di un sito WP dipende dal tema installato e viene divisa in blocchi. Tema diverso, struttura e grafica diversa.

Bene o male, la maggior parte dei siti è composta in questo modo:

struttura di WordPress

  • header: è la parte superiore del tema, dove solitamente viene mostrato il logo e il menù di navigazione
  • content: è la parte centrale del tema, dove viene mostrato il vero contenuto del sito, a seconda della pagina che si visita (articolo, pagina, archivio, …)
  • sidebar: è la zona laterale, che può trovarsi a sinistra o a destra (è molto più usata in questa posizione), che serve per mostrare informazioni utili all’utente, come il campo “cerca tra gli articoli”, gli articoli recenti, eventuali ebook, zona social, banner pubblicitari.
  • footer: è la parte finale del tema, dove inserire i link utili come le pagine più importanti, chi siamo, contatti, sitemap, condizioni d’uso, privacy-policy, e magari anche un box autore.

Solitamente, l’header, la sidebar e il footer rimangono uguali per tutto il sito, mentre quello che cambia è il content.

I file del tema

Ok, hai capito che il tema è composto da vari blocchi, ad esempio inizia con l’header, poi prosegue con il content, la sidebar ed infine il footer.

Ma la cosa più importante da capire è che ogni blocco è caricato grazie ad uno specifico file che contiene il codice PHP (un linguaggio di programmazione) necessario a mostrare il contenuto del blocco stesso. Quindi il tema WordPress è composto da file php (ma non solo):

file tema wordpress

Vuoi vedere una cosa interessante?

file-wp-2

Come puoi vedere sono presenti i file:

  • header.php: contiene il codice per mostrare l’header
  • content.php: contiene il codice per mostrare il content
  • sidebar.php: contiene il codice per mostrare la sidebar
  • footer.php: contiene il codice per mostrare il footer

Molto intuitivo, non trovi?

Il content

Come ho già detto, la parte che cambia il proprio contenuto è il blocco content. Questo dipende dal tipo di pagina, e ogni tipologia di pagina ha il relativo file:

  • homepage: viene mostrata attraverso il file index.php, è la prima pagina che si vede del sito
  • articolo: viene mostrato attraverso il file single.php, è la pagina degli articoli
  • pagina: viene mostrata attraverso il file page.php, è la pagina delle pagine 🙂
  • archivio: viene mostrato attraverso il file archive.php, è la pagina degli archivi (dove vengono mostrati gli articoli per data, autore, …)

È importante sottolineare che prima viene caricato il file index.php o single.php o …, poi qui dentro c’è del codice php che carica il file content.php.

Ecco una parte di un’interessante infografica:

yoast-structure

Nella pratica cosa accade?

Facciamo finta di voler simulare la visualizzazione di un articolo, ecco cosa accade a grandi linee:

  • viene caricato il file header.php
  • viene caricato il file single.php
    • viene caricato il file content.php
    • viene caricato il file comments.php, per mostrare la sezione dei commenti
  • viene caricato il file sidebar.php
  • viene caricato il file footer.php

E questo è il codice php che fa tutto ciò:

codice single.php

Sempre semplificando, possiamo dire che:

  • get_header(): richiama il file header.php
  • get_template_part( ‘content’, get_post_format() ): richiama il file content.php
  • comments_template(): richiama il file comments.php
  • get_sidebar(): richiama il file sidebar.php
  • get_footer(): richiama il file footer.php

Per capire il significato di qualsiasi funzione, fai riferimento al codex.

Diagramma

Nella realtà le cose sono un po’ più complesse di come le ho spiegate io, ci possono essere molte varianti del file da caricare (page.php, page-$slug.php, page-$id.php e così anche per altri file). Magari questo diagramma ti potrà dare una mano:

Template_Hierarchy

Link utili

E anche la mia sezione dei temi professionali per WordPress 🙂

VUOI CREARE IL TUO SITO O BLOG WORDPRESS?

Scegli uno tra i migliori hosting per WordPress

HOSTING

Scegli uno tra i migliori hosting per WordPress

Hosting

Scegli uno tra i migliori temi WordPress professionali

GRAFICA

Scegli uno tra i migliori temi WordPress professionali

Grafica

Guide e risorse per gestire il sito WordPress a 360°

GESTIONE

Guide e risorse per gestire il sito WordPress a 360°

Gestione
  
con le dita sempre in costante, frenetico movimento sulla tastiera… vengo spesso trascinato e catturato “in rete” per colpa delle mille idee che mi girano per la testa (prima o poi troverò quella giusta)… dal futuro incerto (nonostante una laurea, e chi non lo è?..siamo in tanti!) .. credo fortemente nella condivisione della conoscenza!
8 Commenti
  • Molto tecnico questo articolo: lo terrò presente quando ne sarò all’altezza;)
    Ma visto che l’argomento è Il tema, volevo chiederti se è possibile eliminare la funzione (commenti) da un tema che mi piace.
    Il mio sito non sarà un blog, ma in alcuni temi che mi piacciono vedo sempre la possibilità di lasciare commenti: c’è un modo per eliminarla oppure devo scegliere temi ad hoc che non contengano questa funzione.
    Un’ultima cosa: parlo da ignorante: quando si sceglie un tema dalla sua anteprima si possono vedere dei temi con i footer molto completi con richiami ai posts, articoli ecc ecc, mentre altri, si riducono ad una striscia colorata.
    Mi chiedevo se sono caratteristiche peculiari del tema scelto o se a prescindere dal tema, possa inserire nel footer dei widgets per ” riempirlo” con le funzioni che reputo opportune

    • Puoi eliminare i commenti a livello di post pagina togliendo la spunta Permetti i commenti o globalnente da Impostazioni -> Commenti

      • quando dici globalmente intendi che posso togliere del tutto la funzione o posso semplicemente chiudere i commenti?
        Mi spiego: nel mio sito non devo scrivere articoli, quindi nessuno deve scrivere su quello che c’è nella singola pagina, non è un blog, quindi per me è importante che non appaia proprio la finestra a fine pagina dei commenti o dove compare inserisci nome ecc.
        Si può fare? a me serve la pagina pulita, prima di quel ( modulo).

    • Roberto Iacono

      Ciao Francesco,
      allora, per i commenti si possono eliminare tranquillamente, in aggiunta a quello detto da Adriano (che ringrazio), puoi eliminare la funzione comments_template() oppure get_comment() nei file single.php e page.php.
      Per il footer, dipende da tema a tema, se è predisposto un footer anche nella sezione widget, questo s può “riempire” facilmente come si fa con la sidebar, altrimenti verrà caricato il file footer.php.

  • Ciao Roberto,
    complimenti hai reso semplice e capibile un argomento per veri smanettoni.

    Anche se ho diversi blog con WordPress non mi ero mai messo il problema di capire il funzionamento di quello che c’è sotto a quello che si vede.

  • grazie Roberto, tutto chiaro;)