Skip to main content

WordPress: personalizzare (o rimuovere) l’Infinte Scroll Footer di Jetpack

Con il rilascio della v4.1 di WordPress e il  relativo tema Twenty Fifteen molti blog si sono trovati improvvisamente compatibili con il modulo Infinite Scroll presente in Jetpack, il noto contenitore di plugin sviluppato da WordPress.com. Nel presente articolo darò per scontato che siate a conoscenza delle funzionalità del modulo, in caso contrario vi invito a leggere qui.

Il modulo prevede un Footer standard che si compone di una parte sinistra, nella quale troviamo il nome del sito o blog su cui è installato, e di una parte destra, contenente la frase “Proudly powered by WordPress theme <nome del tema>“.

Per modificare i contenuti della parte destra è sufficiente aggiungere il seguente Filter personalizzato (se non sapete cos’è un Filter o come aggiungerlo, leggete qui):

 

Per cambiare la parte sinistra è necessaria qualche riga di codice aggiuntiva:

Come si può vedere, in questo caso il Filter che andremo ad aggiungere richiama una funzione personalizzata che ha il compito di ricreare l’intero contenuto del Footer.

Nel caso in cui non vogliate alterare il codice sorgente del vostro template potete ottenere un effetto analogo utilizzando la seguente funzione JavaScript (richiede jQuery) da inserire nel blocco <head> della pagina (Appearance -> Edit > header.php):

 

Se invece volete sopprimere del tutto l’Infinite Footer vi basterà aggiungere la seguente linea di codice css (Appearance -> Edit CSS > style.php):

Insomma, ce n’è per tutti i gusti.

 

WordPress: come aggiungere Actions e Filters personalizzati

Una delle caratteristiche più interessanti della piattaforma WordPress è data dalla possibilità di aggiungere i cosiddetti Hook (letteralmente “uncini”) per modificare le funzionalità del codice sorgente. Gli Hook non sono altro che dei punti specifici in cui è possibile intervenire manualmente per alterare il comportamento delle funzioni che li espongono e si dividono in due tiplogie: Action e Filter.

Per una trattazione completa si rimanda all’apposita documentazione ufficiale presente nel WordPress Codex (con particolare riguardo alle sotto-sezioni dedicate ad Actions e Filters): ai fini di questo articolo ci limiteremo a dire che le Action sono funzioni generiche che vengono eseguite a seguito di determinati eventi, mentre i Filter sono funzioni a cui  viene passato un contenuto (source) e che restituiscono a loro volta un risultato (result), il quale verrà utilizzato in luogo del source.

Questo è un esempio di Action, che determina l’invio di una e-mail a una lista predefinita di destinatari a seguito della pubblicazione di ciascun nuovo articolo sul blog:

 

Questo è un esempio di Filter, in base al quale il contenuto dei nostri articoli viene controllato alla ricerca di termini non appropriati i quali, se trovati, vengono sostituiti da un testo di tipo #?*!:

 

Ora che abbiamo definito cosa si intende per Action e Filter, non resta che vedere come aggiungerli al nostro blog.

Il modo più rapido (e utilizzato) è inserirli all’interno del file functions.php del proprio tema, accessibile tramite il pannello di Amministrazione di WordPress (Appearance -> Theme -> Editor). E’ sufficiente aprire il file e aggiungere la Action o il Filter desiderato in coda alle funzioni già presenti. Questo metodo presenta però il grosso svantaggio che provoca la modifica permanente dei file del tema installato, costringendo ad aggiungere o rivedere gli Hook inseriti in questo modo ad ogni aggiornamento del tema.

Per questo motivo consigliamo di adottare un metodo più efficace come quello fornito da appositi plugin come Add Actions and Filters, così da inserire le nostre modifiche in un contenitore separato.

Add Actions and Filter Plugin - Screenshot

 

Ecco una screenshot che mostra come si presenta. Buona personalizzazione!

 

PHP & WinCache: come visualizzare statistiche e informazioni d’uso

Se avete installato WinCache sul vostro web server (magari grazie alla nostra guida) e volete dare un’occhiata a quello che succede dietro le quinte vi consigliamo di installare questo comodo script che vi consentirà di visualizzare, attraverso le API dell’estensione, una serie di informazioni relative ai vari aspetti delle sue molteplici funzionalità.

Lo script non è farina del nostro sacco, è infatti presente nel pacchetto ufficiale dell’estensione (potete controllare se lo avete già sul vostro sistema consultando questa pagina) ma tende a non essere molto conosciuto e, di conseguenza, poco utilizzato. Un vero peccato, considerando la mole di informazioni utili che consente di ottenere!

Ecco come si presenta:

WinCache Control Script

Niente male, vero?

IMPORTANTE: Se il vostro web server supporta la Basic Authentication lo script è configurato per richiedere un Nome utente e una Password. Le credenziali predefinite sono wincache / wincache e possono essere cambiate modificando le prime linee di codice PHP presente all’interno:

Per disabilitare del tutto l’autenticazione e la richiesta di credenziali è sufficiente impostare la costante USE_AUTHENTICATION a 0.

 

 

PHP: Guida all’installazione di WinCache su IIS

Il principale collo di bottiglia della maggior parte dei software basati su PHP è quasi sempre legato all’utilizzo della memoria da parte dell’interprete dei comandi. Nel caso di siti poco frequentati questo può essere un problema trascurabile, ma quando un blog in WordPress o un sito commerciale in Joomla comincia a diventare popolare i nodi cominciano a venire al pettine: pagine che caricano sempre più lentamente, request che si accavallano e un senso generalizzato di lentezza che verrà puntualmente confermato da strumenti di monitor come Yslow (se ancora non lo utilizzate, correte a installarlo!), Analytics etc.

Per migliorare le sorti di un sito in PHP molto trafficato che gira sotto IIS è possibile installare una delle estensioni gratuite di cache attualmente a disposizione: in questo articolo parleremo del sistema di cache proprietario messo a punto dalla Microsoft e chiamato WinCache, installabile gratuitamente e incluso nel pacchetto base delle versioni di PHP per Windows dalla 5.2 in poi. Questa estensione garantisce un notevole incremento prestazionale grazie a una cache a 5 livelli:

  • OPCode Cache: Caching degli script compilati a livello di bytecode, per evitare che il sistema processi più volte lo stesso identico script.
  • File Cache: Caching dei file php veri e propri, risparmiando al sistema numerosi accessi al disco per leggere più volte gli stessi identici file.
  • Resolve File Path Cache: Caching dei path assoluti degli script, in molti casi costruiti grazie a funzioni di risoluzione ripetute decine di volte nel corso del codice. Il sistema memorizza il mapping tra path relativi e assoluti evitando così di eseguire le operazioni di risoluzione.
  • User Cache: Caching degli oggetti e variabili create a livello di singolo utente, per evitare di dover ricreare le stesse cose di processo in processo.
  • Session Cache: Un vero e proprio session manager che consente di memorizzare le informazioni di sessione dell’utente evitando le frequenti operazioni sul file-system tipicamente richieste dal sistema di sessioni normalmente utilizzato da PHP (la classica cartella /sessiondata/), velocizzando inoltre il recupero dei dati di sessione.

Installare WinCache è estremamente semplice. Per prima cosa occorre assicurarsi che il file dll relativo all’estensione sia incluso nell’installazione PHP presente sul nostro sistema. In altre parole, il file php_wincache.dll dev’essere presente nella sottocartella /ext/ contenuta nella directory di installazione di PHP. Nel caso in cui non ci fosse è possibile scaricare una versione aggiornata della libreria dal sito ufficiale di WinCache (assicurandovi di selezionare il file compatibile con la vostra versione di PHP) e copiarla manualmente nella cartella suddetta.

Una volta fatto questo occorre abilitare l’estensione aggiungendo le seguenti due righe al proprio file php.ini, normalmente presente nella directory di installazione di PHP oppure nella cartella di installazione di Windows.

IMPORTANTE: Prima di aggiungere queste righe è consigliabile accertarsi che l’estensione non sia già abilitata effettuando una rapida ricerca di “php_wincache.dll” all’interno del file.

Se utilizzate PHP Manager per IIS (cosa altamente consigliabile) potete anche installare l’estensione anche attraverso la GUI fornita da questo ottimo programma.

Se non utilizzate PHP Manager e/o non avete idea di dove si trovi il vostro php.ini potete rintracciarlo eseguendo il comando phpinfo() sul vostro server (se non sapete cosa significa cliccate qui per ottenere uno script da caricare ed eseguire) e, una volta fatto, dare un’occhiata al parametro Loaded Configuration File:

Loaded Configuration File

Il comando phpinfo() può essere utilizzato anche per verificare che l’estensione WinCache sia stato installata correttamente. In caso affermativo troverete infatti una sezione fatta più o meno in questo modo:

Wincache configuration in PHPInfoCon tutta probabilità, come nell’immagine di cui sopra, il sistema vi informerà che le cache sono disabilitate. La cosa è del tutto normale: l’estensione è presente ed è stata correttamente installata, ma non è ancora attiva.

Per attivarla è necessario aggiungere al file php.ini una serie di parametri di configurazione nel seguente modo:

I parametri sopra elencati sono grosso modo adeguati per un server di produzione: per esigenze specifiche si consiglia di consultare la documentazione di riferimento di WinCache, che contiene una spiegazione dettagliata di ciascun parametro e le indicazioni di base su come impostare l’estensione nel modo adeguato.

Se si desidera abilitare anche la Session Cache e utilizzare WinCache come session handler è inoltre necessario modificare il seguente parametro, sempre nel php.ini:

Al termine della configurazione, e dopo un necessario riavvio di IIS, sarà possibile verificare il risultato dei propri sforzi eseguendo nuovamente il comando phpinfo():

PHPINFO: wincache enabled

 

 

ASP.NET – MantainScrollPositionOnPostback su Chrome e altri browser

Mantenere (o per meglio dire, ripristinare) la posizione della scrollbar della pagina in conseguenza di un postback è una funzionalità indispensabile per qualsiasi pagina contenente un form. Per anni in ASP.NET è stato possibile ottenere questo effetto aggiungendo un semplice parametro nella propria pagina/WebForm/MasterPage:

A livello di web.config<pages maintainScrollPositionOnPostBack="true" />

A livello di pagina<%@ Page MaintainScrollPositionOnPostback="true" %>

A livello di codicePage.MaintainScrollPositionOnPostBack = true;

Sfortunatamente questi metodi, oltre a non essere disponibili con Razor, non sono più compatibili con la maggior parte dei browser recenti. Nonostante ASP.NET consenta ancora, tramite i Browser Definition File, la possibilità di impostare funzionalità specifiche per ciascuno di essi, è senz’altro preferibile adottare una soluzione pienamente compatibile con l’aiuto di un semplice script basato sul framework jQuery.

Questa è la soluzione specifica per WinForms:

Mentre questa è quella pensata per Razor (nonché per qualsiasi altra pagina web):

Inutile dire che, in entrambi i casi, l’elemento input iniziale (asp:HiddenField nella versione WinForms) va inserito all’interno dell’elemento form su cui viene eseguito il Postback.