Segnalare un articolo vecchio in modo automatico /2

Come segnalare in modo automatico che un articolo è obsoleto.

Vi pubblico una versione aggiornata della funzione per controllare l’età di un post e visualizzare un messaggio. Ne parlai tanti anni fa e, mentre stavo facendo ordine tra i miei script, ci ho voluto mettere mano. Da tempo ne conservo una copia su Gist, che oggi ho aggiornato.

Leggi tutto “Segnalare un articolo vecchio in modo automatico /2”

Crearsi un plugin per le funzioni personalizzate

Non aggiungete funzioni personali al file functions.php del tema, ma createvi un vostro plugin che le contenga. È davvero facile farlo.

Ricorderete che nel mio post precedente consigliavo di aggiungere una funzione personalizzata in un plugin apposito, destinato a raccogliere tutte le funzioni che volete aggiungere al vostro blog. Dovrete creare da voi stessi questo plugin e non è per nulla difficile. In questo modo, quando vorrete aggiungere una nuova funzione globale del blog (per “globale” intendo che non sia legata specificamente al tema che state usando), vi basterà aggiungerla in coda alle altre e sarà subito disponibile. In aggiunta, se cambiate tema, le funzioni saranno sempre disponibili e, se dovete disattivarle, vi basterà disattivare il plugin.

Vediamo come si fa.

Leggi tutto “Crearsi un plugin per le funzioni personalizzate”

Visualizzare il numero di post trovati in un archivio o una ricerca

Può rivelarsi utile per chi cerca qualcosa nel nostro blog sapere quanti articoli sono stati trovati in un determinato archivio.

Restando ancora in tema di variabili di WordPress relative alle pagine, vorrei spendere una parola su una funzionalità che mi piace quando navigo in un archivio, quella cioè di sapere quanti post sono stati trovati se consulto l’archivio di un tag o di una categoria o se effettuo una ricerca. Questa funzionalità è implementata da tempo, ovviamente, in questo blog: ad esempio la trovate se cercate “Linux” o se visitate questa pagina d’archivio. Mi sembra, tra l’altro, un piccolo servizio in più per chi visita il nostro blog.

Implementare questa funzionalità è semplice e basta incollare poche righe nel proprio plugin contenente tutte le funzioni personalizzate o, al limite, nel file functions.php del proprio tema. Evitate, però, di usare questo file, perché esso serve per quelle caratteristiche proprie del tema: se lo cambiate, perdete le funzioni che vorreste avere anche nel nuovo.

Leggi tutto “Visualizzare il numero di post trovati in un archivio o una ricerca”

Query personalizzate e paginazione dei post

Come far funzionare i link alle pagine successiva e precedente in una query personalizzata di WordPress.

Avete creato un query personalizzata per tirare fuori dal database tutti i vostri post archiviati sotto un certa categoria. I post sono circa 200 e per evitare di caricare una pagina con così tanti articoli decidete saggiamente che sarebbe bene mostrarne un certo quantitativo per pagina o, magari, tanti quanti avete scelto di mostrarne nelle preferenze di WordPress. Subito dopo il loop, quindi, inserite la riga:

next_posts_link( 'Pagina precedente' );

e poi questa:

previous_posts_link( 'Pagina successiva' );

Però vi accorgete che i link non appaiono.

Leggi tutto “Query personalizzate e paginazione dei post”

Offuscare le email: lo shortcode per WordPress

Proteggere gli indirizzi email in WordPress offuscandoli agli spambot tramite l’uso di shortcode.

WordPress ha una funzione poco nota, messa alcuni giorni fa in evidenza da WP Recipes e poi ripresa da Panese. La funzione si chiama antispambot e serve ad offuscare gli indirizzi email ai crawler finalizzati allo spam.

Vorrei spendere, però, qualche parola in più sul suo funzionamento.
Leggi tutto “Offuscare le email: lo shortcode per WordPress”

Le variabili relative alle pagine in WordPress

Le variabili globali di WordPress relative alla paginazione di articoli e pagine statiche.

Visto che per l’ennesima volta mi sono scordato di appuntarmi in Tomboy il contenuto di queste variabili, lo faccio adesso anche sul blog, così magari vi tornano utili.

Si tratta di alcune variabili globali di WordPress relative alla paginazione di post (quando leggete “post” intendo dire articolo e pagina statica) e di pagine d’archivio. Trovate segnalato se la variabile va usata all’interno del loop; per dichiararla globale si usa global $variabile;.

Variabili globali di post e pagina

$multipage
Dice se un post è suddiviso in più pagine o no. Va usata nel loop.
Ad esempio, se un post è suddiviso in 5 pagine, il valore sarà true.

$numpages
Contiene il numero di pagine di un post suddiviso in più pagine. Va usata nel loop.
Ad esempio, se un post è suddiviso in 5 pagine, il valore sarà 5.

$page
Contiene il numero di pagina visualizzata di un post suddiviso in più pagine.
Ad esempio, se stiamo visualizzando la pagina 3 di un post suddiviso in 5 pagine, il valore sarà 3.

$pages
È un array contenente tanti elementi quante sono le pagine di un post. Va usato nel loop.
Ad esempio, se un post è suddiviso in 3 pagine, l’array conterrà 3 elementi (0, 1, 2) e ciascun elemento conterrà una parte del post.

Variabili globali d’archivio

$paged
Contiene il numero di pagina visualizzata di un archivio.
Ad esempio, se stiamo vedendo la pagina 5 dell’archivio del tag “wordpress”, il valore sarà 5.

$wp_query->max_num_pages
Contiene il numero totale di pagine in cui un archivio è suddiviso. Non è una variabile globale, ma un elemento dell’array $wp_query, che quindi andrà dichiarato globalmente (global $wp_query;)
Ad esempio, se abbiamo impostato WordPress per mostrare 5 post per pagina e abbiamo 20 post con tag “wordpress”, il valore sarà 4 per la pagina d’archivio del tag “wordpress”.

Autenticazione multifattoriale con Perfect Paper Passwords

Come impostare un sistema OTP (One Time Password) su WordPress in maniera semplice e veloce col plugin Perfect Paper Passwords.

Qualche mese fa ho scritto un post sul plugin One-Time Password che ha lo scopo di rendere più sicura l’autenticazione nella propria area amministrativa di WordPress mediante l’uso dell’omonima tecnica detta One-Time Password. In breve, con questo sistema possiamo autenticarci alla Bacheca di WordPress usando una password usa-e-getta che può sostituire la password di WordPress (ottimo in caso di utilizzo in un Internet Cafè) o aggiungersi ad essa.

Oltre a questo plugin, ne esiste un altro che fa qualcosa di molto simile: Perfect Paper Passwords. Con esso avrete a disposizione una password usa-e-getta che si aggiunge (e non si sostituisce) a quella di WordPress.

Autenticazione forte

Sappiamo che per autenticarsi a un sistema informatico con ragionevole sicurezza è buona cosa utilizzare un’autenticazione a due fattori:

  • qualcosa che si sa (username e password)
  • qualcosa che si ha (un oggetto, che può essere un token, una smartcard, una chiavetta USB, la SIM del telefono, la biometria o anche un semplice taccuino con password usa-e-getta.

Questo è anche il sistema usato da molte banche per i loro servizi online. In questo modo, anche se un malintenzionato dovesse entrare in possesso delle vostre credenziali, non potrebbe accedere al sistema perché non ha il secondo fattore di autenticazione, il quale appunto cambia continuamente.

Questo plugin vi dà la possibilità di implementare in WordPress il sistema OTP in modo facile e gratuito.
Leggi tutto “Autenticazione multifattoriale con Perfect Paper Passwords”

Evitare il texturize di WordPress

Come fare per evitare che WordPress trasformi un carattere in un altro, come virgolette, apici e così via? Una funzione con un filtro può farlo.

Nel cantiere continuamente aperto, che è questo blog, ho trasferito tutti gli shortcode che andavo copiando di tema in tema in un plugin apposito, UBN Shortcodes, in modo da averli sempre disponibili anche su temi che intendo solo provare. Si tratta di funzioni che mi aiutano parecchio nella stesura degli articoli; unito poi all’uso di AddQuicktag 1 la cosa diventa straordinaria.

Mentre facevo questa operazione, ho aggiunto uno shortcode dedicato all’elemento pre e mi sono accorto che WordPress cambiava le virgolette diritte " in quelle tipografiche “. Mi chiedevo come mai, visto che se usavo direttamente quell’elemento il cambio non veniva operato. Era chiaro che bisognava dare uno sguardo al file /wp-includes/formatting.php e, di preciso, alla funzione wptexturize($text), una vecchia conoscenza per chi ha a che fare con la creazione di temi e plugin. Questa funzione, che appunto trasforma alcuni caratteri in altri, non viene eseguita su quei caratteri che si trovano all’interno di alcuni elementi HTML prestabiliti, e cioè:

$default_no_texturize_tags = array('pre', 'code', 'kbd', 'style', 'script', 'tt');

Come vedete, troviamo anche il nostro pre. Alla riga successiva, troviamo un altro array, ma stavolta dedicato agli shortcode da non “texturizzare”. L’array, però, contiene solo code:

$default_no_texturize_shortcodes = array('code');

Per questo motivo il mio shortcode [pre] subiva gli effetti "nefasti" di wptexturize.

Per includere in un tema o in un plugin anche altri shortcode all'array, è sufficiente aggiungere un filtro. Infatti, se nel file formatting.php guardiamo un po' oltre, vediamo questa riga:

$no_texturize_shortcodes = '(' . implode('|', apply_filters('no_texturize_shortcodes', $default_no_texturize_shortcodes) ) . ')';

dove la presenza di apply_filters ci consente di ampliare gli shortcode che non subiscono alcuna modifica al loro contenuto. Più tecnicamente, dobbiamo creare un array di elementi HTML da assegnare a no_texturize_shortcodes che verranno quindi aggiunti all'array principale $default_no_texturize_shortcodes.

Basta così creare una funzione apposita nel proprio tema o plugin che può suonare più o meno così:

add_filter('no_texturize_shortcodes',  'ubn_no_texturize_shortcodes');

function ubn_no_texturize_shortcodes( $shortcodes_array ) {
	$shortcodes_array = array( 'pre', 'tt' );

	return $shortcodes_array;
}

Ho inserito sia pre che tt, cioè due shortcode che uso io: potete sostituirli con quelli che volete o aggiungerne d altri. Questa semplice funzione vi garantisce che il testo inserito all'interno rimarrà intatto. Con questa tecnica si può allargare, ovviamente, pure l'array dedicato ai "tags", anche se comunque non vedo necessità di farlo.

Note

  1. Scrissi qualcosa su AddQuicktag in questo post.

Password OTP (usa e getta) per WordPress

Come impostare un sistema OTP (One Time Password) su WordPress in maniera semplice e veloce.

Se vi è mai capitato di voler accedere al vostro blog mentre vi trovavate in un ambiente non sicuro e non lo avete fatto perché giustamente non vi fidavate, sappiate che potete far uso del metodo della One Time Password 1 (OTP), oggi disponibile anche per WordPress. Probabilmente conoscerete già questo sistema perché molte banche lo fanno usare ai loro clienti (mi riferisco a quelle specie di chiavette che generano numeri). In breve, si tratta di accedere a un ambiente amministrativo (nel nostro caso alla Bacheca di WordPress) usando non l’unica password che abbiamo precedentemente scelto noi, ma una password che può essere usata una sola volta, quindi una password “usa e getta”. La volta successiva che ci vogliamo autenticare alla Bacheca inseriremo un’altra password, diversa dalla precedente.

È evidente la scomodità di dover sempre digitare una password diversa e non memorizzabile, ma è un piccolo prezzo da pagare se si vuole accedere senza paura in ambienti non sicuri al pannello amministrativo di WordPress. Se il keylogger 2 del PC condiviso che stiamo usando nell’Internet Café ha memorizzato la One Time Password, possiamo stare sicuri che essa è ormai inservibile.

Un sistema del genere certamente può dare una mano per aumentare la garanzia di sicurezza della nostra Bacheca anche se vi accediamo sempre e solo dalla nostra Linux box (su cui non girano malware 3 di sorta), ma tornerà utile soprattutto a chi è sempre in viaggio e fa uso del PC in ambienti non adeguatamente protetti (o di cui noi non ci fidiamo).

Leggi tutto “Password OTP (usa e getta) per WordPress”

Shortcode per YouTube rivisto e migliorato

Uno shortcode per pubblicare un video da YouTube, potendo specificare dimensioni e punto di partenza, mentre nel feed visualizza il suo poster frame.

Ho rimesso mano a uno shortcode di cui vi avevo già scritto e che si è rivelato davvero comodo, quello per l’inserimento di un video di YouTube in un post. Le modifiche che ho apportato rispetto a quello già pubblicato riguardano due aspetti:

  1. la possibilità di far partire il video da un punto preciso;
  2. l’inserimento del poster frame del video se il post viene letto via feed.

Niente di particolarmente complicato, quindi, ma mi pare sempre interessante condividere con voi quanto combino.

Leggi tutto “Shortcode per YouTube rivisto e migliorato”