Nei primi due articoli di questa serie, ho scritto su quali sono le pagine di benvenuto e come stanno aiutando i prodotti a migliorare l'esperienza dell'utente collegando i punti, dopo di che ho scritto sull'API WordPress Transients che intendo utilizzare durante la creazione della pagina di benvenuto.
Codificare una pagina di benvenuto per il tuo plugin WordPress può essere un processo complicato. L'intero concetto ruota attorno al reindirizzamento degli utenti ad una particolare pagina impostando i transienti e infine cancellandoli. Iniziamo a costruire la pagina di benvenuto.
Ho intenzione di creare una pagina di benvenuto per WordPress sotto forma di un plugin che può essere utilizzato all'interno del tuo prodotto WordPress. La forma finale di questo plugin è ospitata su GitHub all'indirizzo WP-Welcome-Page-Boilerplate-For-TutsPlus.
A questo punto, presumo che tu abbia la seguente configurazione:
Creerò un semplice plug-in che visualizza una pagina di benvenuto quando un utente installa e attiva il plug-in. Discutiamo l'architettura dei plugin:
È possibile visualizzare il seguente screenshot per verificare l'architettura.
Il plugin funziona nel modo seguente:
Cominciamo la nostra discussione con il contenuto del file di base, che è wp-welcome-page-boilerplate.php
. Ecco il codice completo:
La sezione header PHPDoc del plugin dice a WordPress che un file è un plugin. I parametri definiti indicano come vengono gestiti i dati. Come minimo, un'intestazione può contenere solo un nome di plugin, ma diversi pezzi possono e di solito dovrebbero essere inclusi. Puoi leggere i requisiti dell'intestazione nel Manuale per gli sviluppatori di Plugin WordPress.
Il prossimo set di codice esegue un controllo di sicurezza. Se qualcuno tenta di accedere direttamente a questo file, esegue il file
ABSPATH
controllare, che termina lo script se vi si accede da WordPress esterno.Dopodiché, il codice ha il seguente aspetto:
// Versione plugin. if (! defined ('WPW_VERSION')) define ('WPW_VERSION', '1.0.0'); // Nome della cartella del plug-in. if (! defined ('WPW_NAME')) define ('WPW_NAME', trim (dirname (plugin_basename (__FILE__)), '/')); // Directory dei plugin, inclusa la cartella. if (! defined ('WPW_DIR')) define ('WPW_DIR', WP_PLUGIN_DIR. '/'. WPW_NAME); // URL del plug-in, inclusa la cartella. if (! defined ('WPW_URL')) define ('WPW_URL', WP_PLUGIN_URL. '/'. WPW_NAME); // Plugin root file. if (! defined ('WPW_PLUGIN_FILE')) define ('WPW_PLUGIN_FILE', __FILE__);Ho definito alcune costanti globali che definiscono i dettagli della versione del plugin, della cartella radice, dell'URL e del file principale del plugin.
Ognuno di questi contiene un
if (! defined ())
dichiarazione, che aiuta a evitare eventuali errori dovuti alla ridefinizione di una costante globale. Raccomando di definire le costanti globali con il nome del pacchetto come prefisso. Il nome del pacchetto in questo plugin èWPW
, Ad esempio, WordPress Welcome. Quindi, ogni costante ha un prefisso diWPW_
.Le costanti del plugin definite sono:
WPW_VERSION
: Versione plug-inWPW_NAME
: Nome della cartella del plug-inWPW_DIR
: Directory dei pluginWPW_URL
: URL del pluginWPW_PLUGIN_FILE
: Plugin Root FileUna volta definite tutte queste costanti, inizieremo con i contenuti del nostro file di benvenuto.
Infine, ho richiesto l'inizializzatore di benvenuto e la logica di benvenuto.
if (file_exists (WPW_DIR. '/welcome/welcome-init.php')) require_once (WPW_DIR. '/welcome/welcome-init.php'); if (file_exists (WPW_DIR. '/welcome/welcome-logic.php')) require_once (WPW_DIR. '/welcome/welcome-logic.php');
Mi piace mantenere il mio codice minimo, preciso e ben documentato. Quindi, invece di aggiungere ogni blocco di codice in un singolo file, preferisco creare singoli file, ognuno con un solo scopo. Ecco perché abbiamo un file di inizializzazione che inizializzerà tutto ciò che riguarda la pagina di benvenuto.
Il require_once ()
la dichiarazione richiede il welcome-init.php
file, ma prima di richiedere un file, lo controllo sempre con il file esiste()
Funzione PHP per evitare eventuali errori fatali nel caso in cui il file venga eliminato.
Gli stessi principi si applicano alla logica di benvenuto, che vedremo più avanti nella prossima parte della serie.
Puoi controllare il codice finale di wp-welcome-page-boilerplate.php
file su GitHub.
Per gestire tutti i file relativi alle pagine di benvenuto, ho creato una cartella separata denominata benvenuto e ha aggiunto un welcome-init.php
file. L'intero codice di questo file controlla l'inizializzazione della pagina di benvenuto.
Studiamo il codice completo di questo file:
Il codice inizia con la documentazione incorporata sul file e un file
ABSPATH
dai un'occhiata. Ora avevo bisogno di un modo per aggiungere ed eliminare il transitorio quando il plugin è attivato e disattivato rispettivamente.Fortunatamente WordPress ci fornisce due ganci per questo scopo preciso.
register_activation_hook (string $ file, richiamabile $ funzione)
: Questo hook viene attivato quando il plugin viene attivato. Prende come parametri il file $ principale del plugin e una funzione $ richiamabile.register_deactivation_hook (string $ file, richiamabile $ funzione)
: Questo hook viene attivato quando il plugin viene disattivato. Prende il plugin $ file principale e una funzione $ richiamabile come parametri.Quindi, ora abbiamo bisogno di usare questi ganci. Ho creato un transitorio per la pagina di benvenuto. Il set_transient ()
la funzione è chiamata all'interno dell'abitudine wpw_welcome_activate ()
funzione. Nel precedente articolo, abbiamo appreso che il impostato
l'operazione richiede a chiave, valore e un data di scadenza come i suoi parametri.
Pertanto, la chiave _welcome_redirect_wpw
è impostato su un valore vero
per 60
secondi. Questo definisce l'età massima dopo la quale il transitorio scade.
Il prossimo è il gancio di attivazione, e come sappiamo questo hook funziona solo quando viene attivato un plugin. Aggiunge il nostro transitorio al database. Una volta che il transitorio è nel database, significa che possiamo controllarlo e reindirizzare l'utente alla nostra pagina di benvenuto. Come reindirizzare l'utente? Questo è ciò che studieremo nel prossimo articolo.
Dopo di ciò, ho scritto il codice che viene eseguito alla disattivazione del plug-in. Vogliamo una funzionalità in cui il transitorio viene eliminato quando un utente disattiva il plug-in. Per farlo, ho chiamato il delete_transient ()
funzione, che prende la chiave _welcome_redirect_wpw
come il suo parametro. Poi c'è il wpw_welcome_deactivate ()
funzione, che viene aggiunta al hook di disattivazione del plugin.
Questa parte è facoltativa, ma voglio che i miei utenti visualizzino la pagina di benvenuto ogni volta che attivano il plug-in. Se non lo fai, puoi sicuramente ignorare la cancellazione del tuo transitorio.
Finora, ho discusso la parte del codice che è necessaria per creare ed eliminare un transitorio. Ma manca ancora il codice per la logica di benvenuto, che reindirizza gli utenti alla pagina di benvenuto. Lo affronteremo dopo.
Questo è per oggi. Quindi, siamo a metà strada. Il file di base e l'inizializzatore per la nostra pagina di benvenuto sono pronti. Ora dobbiamo creare la logica e visualizzare i file, che è il piano per il prossimo articolo.
Infine, puoi prendere tutti i miei corsi ed esercitazioni sulla mia pagina del profilo, e puoi seguirmi sul mio blog e / o raggiungere Twitter @mrahmadawais dove scrivo dei flussi di lavoro di sviluppo nel contesto di WordPress.
Come al solito, non esitare a lasciare qualsiasi domanda o commento qui sotto e cercherò di rispondere a ciascuno di essi.