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
Internet Servizi Web

Le Migliori Estensioni di Google Chrome per il Blogging e per WordPress (2019)

Ho scavato nella categoria Developer Tools (e in qualche altra categoria) delle estensioni di Google Chrome, alla ricerca di estensioni che potessero essere di aiuto nel lavoro quotidiano con WordPress. Ce ne sono centinaia, e provarle tutte è impossibile, ma, leggendo anche le opinioni di altri sviluppatori, mi sono ridotto ad una lista delle estensioni di Google Chrome che possono costituire un valido aiuto nelle attività quotidiane online, soprattutto per quel che riguarda WordPress.

Categorie
Internet

Cosa È il DNS e Come Puntare i Record DNS Verso il Proprio Host

DNS è l’acronimo di Domain Name System. In italiano sarebbe sistema dei nomi di dominio. Viene definito da Wikipedia come un sistema per la risoluzione di nomi dei nodi della rete (host) in indirizzi IP.

Cosa vuol dire in parole semplici?

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 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…