Categorie
Sviluppo

Come Interrogare il Database di WordPress (WP_Query, pre_get_posts, get_posts)

Cosa succede quando un visitatore richiede una pagina del vostro sito?

Si attiva una complessa procedura che vede coinvolto il client (il browser dell’utente), il server, il CMS e infine di nuovo il client, che riporterà all’utente la risorsa richiesta oppure, se qualcosa non è andato come avrebbe dovuto, un messaggio di errore del server.

A seguito dell’invio di una richiesta da parte del client, WordPress carica svariati file del core, tra cui wp-config.php, wp-settings.php, wp-includes/functions.php, ecc. (per una descrizione dettagliata, si veda Query Overview).
Ad un certo punto, cioè quando è stato caricato l’oggetto $wp, in WordPress si attiva una sequenza di operazioni:

  1. WordPress analizza l’URL della richiesta e lo scompone in una serie di parametri. Questi parametri costituiscono la query specification.
  2. Vengono definite le variabili is_ utilizzate dai conditional tag, ossia quelle funzioni di WordPress che verificano la sussistenza di determinate condizioni (ad es. la funzione is_home() verifica se la pagina richiesta dall’utente sia la home page del sito). Queste funzioni dipendono dalle variabili presenti nella query specification.
  3. La query specification viene convertita in una query MySQL, che viene eseguita sul database. All’interno di un Loop, la risposta viene memorizzata in un oggetto $wp_query, mentre se la richiesta viene dalla funzione get_posts(), la risposta sarà memorizzata in un array di oggetti $post.
  4. WordPress gestisce, quindi, gli errori 404, invia gli header HTTP, inizializza alcune variabili del Loop e seleziona il template da utilizzare per visualizzare la risorsa richiesta in base alle variabili della query specification
  5. WordPress carica il Template secondo l’ordine della gerarchia dei template.
  6. WordPress esegue il Loop.
Categorie
Sviluppo

Sublime Text: Scorciatoie da Tastiera e Funzionalità Nascoste

Sublime Text è un potente editor di testo che permette di semplificare l’editing dei testi e del codice e di velocizzare al contempo il proprio flusso di lavoro. Si tratta di un editor estremamente completo e avanzato, che permette di lavorare sia su più schede nella stessa finestra che su finestre separate.

Categorie
Sviluppo

Sicurezza e Prestazioni: Le Keyword noopener e noreferrer

La documentazione ufficiale di Google Lighthouse individua due punti critici nei link web esterni (cross-origin) delle pagine web: prestazioni e sicurezza. Ecco cosa ci dice Google a proposito delle prestazioni:

Quando aprite un’altra pagina utilizzando target="_blank", l’altra pagina potrebbe essere eseguita sullo stesso processo della vostra pagina, a meno che non sia abilitato l’isolamento del sito. Se l’altra pagina esegue una gran quantità di codice JavaScript, ne potrebbe soffrire anche la vostra pagina. Si legga The Performance Benefits of rel=noopener

Ed ecco, invece, quanto si afferma a proposito della sicurezza:

L’altra pagina può accedere al vostro oggetto window con la proprietà window.opener. Questo espone una superficie di attacco in quanto l’altra pagina può potenzialmente reindirizzare la vostra pagina ad un URL malevolo. Si legga About rel=noopener.

Categorie
Sviluppo

Le Relazioni tra le Risorse: l’Attributo rel="alternate"

L’attributo rel stabilisce la relazione tra il documento corrente e un documento collegato e incide su diversi ambiti della gestione di un sito web: sicurezza, prestazioni, indicizzazione, informazioni di vario tipo e molto altro. In pratica, l’attributo rel si presta a numerosi impieghi e per questo motivo può assumere un numero considerevole di valori.

Categorie
Sviluppo

WordCamp Torino 2019: Tipi di Post, Tassonomie e Campi Personalizzati

Lascio in questo post la presentazione dell’intervento al WordCamp Torino 2019 in cui ho parlato di custom post type, custom taxonomy e custom field, oltre all’elenco delle risorse che ho citato durante lo speech. Chi volesse approfondire questi argomenti o chiedermi altre informazioni, non deve far altro che lasciarmi un commento qui sotto 🙂

Il codice utilizzato è disponibile su Gist.

Risorse citate:

Risorse interne a questo sito:

Risorse del Codex:

I plugin di cui ho parlato al WordCamp Torino 2019:

Categorie
Sviluppo

Come Installare WordPress in Locale su Mac OS con MAMP 5.2 (2019)

Quando si comincia a sviluppare un sito web è molto probabile che sia necessario fare numerosi test sui plugin e sui temi che si utilizzeranno quando il sito sarà in funzione. Scegliere un plugin, ad esempio, è un’attività che può richiedere del tempo, varie installazioni, dei confronti che sarebbe comodo effettuare sul proprio computer prima di andare online. Oltre ai plugin, potrebbe essere opportuno provare le funzionalità di diversi temi.

Se, poi, dobbiamo sviluppare plugin o child themes personali, allora le modifiche possono diventare continue e il salvataggio e l’upload dei file ad ogni modifica diventa un’operazione alquanto noiosa. Per questo è utile dotare il proprio computer di un ambiente in cui sviluppare e testare senza inutili tempi di attesa.

Categorie
Sviluppo

Come Installare WordPress su Docker

Docker è un software open-source che automatizza il deployment di applicazioni utilizzando le funzionalità di isolamento delle risorse del kernel Linux per generare un sistema di container che eseguono processi in ambienti isolati. Un container non include un sistema operativo separato, come una Virtual Machine, ma sfrutta l’isolamento delle risorse propria del kernel Linux.
Docker opera, quindi, una virtualizzazione a livello di sistema operativo e non a livello di macchina, come invece avviene per le Vistual Machine. Ma di cosa si tratta precisamente?

Categorie
Sviluppo

Come impostare il mobile debugging su Android con Google Chrome

Il Mobile Debugging non è assolutamente operazione complessa. Tutto ciò che occorre è una periferica Android, un cavo USB, la macchina su cui si sviluppa, e l’ultima versione di Google Chrome o di Chrome Canary.

Categorie
Sviluppo

Come inserire il form di login di WordPress nel front-end

È spesso necessario portare nel front-end il form di login di WordPress, specialmente quando avete blog e siti che differenziamìno i servizi e i contenuti per gli utenti iscritti.

La funzione wp_login_form() fa proprio questo: genera un semplice form di login di WordPress da collocare dove si desidera all’interno di un template.

Se non siamo sviluppatori di temi WordPress, però, possiamo comunque aggiungere il nostro form di login attraverso uno shortcode che permetta di inserire il form in qualunque articolo o pagina del sito, o anche in un widget di una barra laterale.

Categorie
Sviluppo

Aggiungere il nome utente ad un custom menu in WordPress

A volte potrebbe essere utile (o necessario) creare una voce di menu che abbia come etichetta il nome dell’utente corrente. Nell’articolo precedente ho fornito il codice che utilizzo per creare uno shortcode che genera una stringa con il dato desiderato. Ad esempio:

[userdata user_email]

Ovviamente, lo shortcode non può essere inserito come etichetta di una voce di menu, dato che WordPress elimina le parentesi quadre.

Però si può aggirare l’ostacolo…