15 Utilizzare functions.php

functions.php è un file molto versatile che permette di modificare il comportamento di WordPress sia lato beckoned che frontend.

Può supportare i widget , può persino avere una propria pagina opzioni all’interno dell’interfaccia di amministrazione di WordPress, può arrivare a comportarsi come un vero e proprio plugin e aggiungere moltissime funzionalità.

Iniziamo con un piccolissimo esempio:

<?php 
function hellomate() { 
echo 'Ehi, come va?'; 
  }
?>

Aggiungendo il codice nel function.php, possiamo richiamare la funzione appena creata hellomate() ovunque vogliamo all’interno del tema e verrà stampata la scritta Ehi, come va?.

Se avete frammenti di codice che utilizzate spesso e desiderate che siano facilmente accessibili, questa è la soluzione.

Impostare la larghezza predefinita

L’impostazione della larghezza del contenuto è un semplice frammento di codice che viene aggiunto a functions.php, che indica a WordPress la larghezza massima che il tema può gestire, che a sua volta indica che il tema ridimensionerà l’immagine di conseguenza.

Quando caricate un’immagine in WordPress, ottenete un totale di quattro immagini, quelle elencate nella pagina di amministrazione e quella originale. Con $content_width l’immagine di grandi dimensioni si adatterà perfettamente al tema, in modo predefinito.

L’uso più importante di questa impostazione $content_width, tuttavia, è con oEmbed. Quando incollate un URL di YouTube o Vimeo, WordPress incorpora automaticamente quel video, e lo fa con un formato aperto chiamato oEmbed. La larghezza dell’elemento incorporato, che scalando controlla anche l’altezza del video, è derivata da $content_width.

Per impostare la larghezza basta aggiungere il seguente codice (dentro ai tag php) nel file function.php

$content_width = 580;

Dove 580 corrispondono ai pixel, quindi modificatelo col valore della larghezza massima che volete dare al contenuto del vostro tema.

Inserire promozioni

Molti siti mostrano elementi promozionali dopo il post, in genere per far sì che gli utenti effettuino la sottoscrizione ai feed RSS. L’operazione si può fare facilmente nei template file del tema, ma può anche essere gestita dal file functions.php e tramite alcuni hook.

Supponete di voler incoraggiare i vostri lettori a sottoscrivere i feed RSS restituendo un tag <div> con la classe promotion, e all’interno di essa un tag <h4> e una riga di testo. Diamo un po’ abbellimento con il CSS :

div.promotion {    
    background: #eee;    
    border: 1px solid #bbb;    
    padding: 10px;
}

div.promotion h4 {    
    color: #f00;    
    font-size: 14px;    
    margin: 0 0 5px 0;    
    padding: 0;
}

div.promotion p {     
    font-size: 12px;     
    color: #444;     
    margin-bottom: 0;
}

Ecco il codice HTML che dovremmo inserire alla fine di ogni post / pagina :

<div class="promotion">
    <h4>Per non perdere un colpo!</h4>
    <p>Il libro 
        <a href="http://faghy.it/feed/">RSS feed</a> 
        che vi tiene aggiornati!</p>
</div>

Si può utilizzare functions.php e associarlo al template tag the_content(), quello che restituisce il contenuto vero e proprio:

function Promotion( $content ) {
    if( ! is_feed() && ! is_home() ) {
        $content.= '<div class="promotion">';
        $content.= '<h4>Per non perdere un colpo!</h4>';
        $content.= '<p>Il libro <a href=/"http://faghy.it/feed/">RSS feed</a> che vi tiene aggiornati!</p>';
        $content.= '</div>';
    }
    return $content;
}

Il codice HTML viene memorizzato nella variabile $content . L’operatore .= serve a concatenare il contenuto della variabile, che avrei potuto mettere anche tutto d fila anziché su 4 righe di $content. La prima cosa che la funzione Promotion() effettua è il controllo se NON ( ! ) siamo sulla home tramite il tag condizionale is_home() e se la pagina caricata non è stata richiamata da un feed tramite is_feed() . Viene infine restituito il contenuto di $content.

Aggiungiamo ora il filtro al template tag the_content con add_filter

add_filter ( 'the_content', 'Promotion' );

Ecco fatto. Ogni volta che non si tratta di una home page o di un elenco di feed, restituirete la finestra promozionale che chiede al lettore di sottoscrivere il feed RSS.

Avere un set di funzioni per il contenuto più comune da restituire e poterlo associare tramite hook ai template tag quando possibile è un modo per semplificare ulteriormente i temi di WordPress.