TheJoe.it Into the (open) source

1lug/130

WordPress: segnalare al lettore un articolo datato

clocky

Oggi illustro un piccolo procedimento, che consiglio vivamente a quei blogger legati allo sviluppo di un certo argomento, per segnalare automaticamente al lettore che l'articolo che sta leggendo è più vecchio di un lasso di tempo a nostra scelta, ed eventualmente appartenente a una certa categoria. Sto pensando soprattutto al mio blog, in cui un'informazione tecnica può andare bene oggi, ma potrebbe già essere obsoleta con il successivo rilascio di un software, non più supportata o ingetrata dal sistema operativo.

Il risultato sarà del tutto personalizzabile: apparira un blocco (DIV) in testa all'articolo, con una classe a nostra scelta. Saremo poi noi a dare uno stile al DIV.

Innanzitutto è necessario modificare il tema che stiamo usando dal pannello amministrazione WordPress, andando su "Aspetto" - "Editor". Selezioniamo dal menù laterale destro il file "single.php".

wp_editor

All'interno del file "single.php" troveremo tutte le varie funzioni PHP corrispondenti alle chiamate verso le diverse sezioni del template, quest'ordine è diverso per tutti i temi quindi non esiste una regola precisa. Abbiate l'accortezza di posizionare il codice dopo la chiusura della testata del blog, subito prima dell'inizio dell'articolo, o subito sotto il titolo. Sempre meglio in testa all'articolo in modo che il lettore veda subito che quello che sta per leggere è un articolo già di qualche tempo.

Il codice PHP da inserire è questo:

<?php
    // date('U')        = data attuale in secondi dal 1 gennaio 1970 (tempo Unix)
    // get_the_time('U')    = data pubblicazione articolo in secondi dal 1 gennaio 1970 (tempo Unix)
    // 31557600     = secondi in un anno (365 giorni e 6 ore)
    if ((date('U') - get_the_time('U')) >= 31557600) { ?>
        <div class="avviso">
        Attenzione! Questo è un articolo di almeno un anno fa!<br />
        Le istruzioni contenute potrebbero non essere più adeguate!
        </div>
<?php } ?>

C'è ben poco da spiegare. La quarta riga calcola a ritroso 315.57.600 secondi da ora (un anno esatto), se sono di più mostra il DIV corrispondente alle righe successive.

Per specificare invece la categoria alla quale assegnare il DIV sarà necessario modificare la quarta riga in questo modo:

<?php
    // date('U')        = data attuale in secondi dal 1 gennaio 1970 (tempo Unix)
    // get_the_time('U')    = data pubblicazione articolo in secondi dal 1 gennaio 1970 (tempo Unix)
    // 31557600     = secondi in un anno
    if ((date('U') - get_the_time('U')) >= 31557600 && in_category('4')) { ?>
        <div class="avviso">
        Attenzione! Questo è un articolo tecnico di almeno un anno fa!<br />
        Le istruzioni contenute potrebbero non essere più adeguate!
        </div>
<?php } ?>

Così non applicheremo il DIV di obsolescenza agli articoli "eterni", che sappiamo non avranno mai bisogno di revisioni.

About

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.