Nelle prime due parti di questa serie, abbiamo trattato quali metadati sono in WordPress e come lavorare con gli array che vengono in genere restituiti. Ora che hai imparato a fare il lavoro investigativo necessario per trovare la struttura di un array, è ora di imparare a usare i loop per automatizzare il processo di output di un array.
Una volta acquisita questa importante abilità, non dovrai mai più scrivere un markup HTML ripetitivo.
Il ciclo standard di WordPress è a mentre
loop, come in "mentre ci sono elementi da ripetere, continua il ciclo". Spesso, quando si lavora con i metadati, è più facile lavorare con a per ciascuno
ciclo continuo.
Questi loop ci permettono di scrivere il nostro PHP come se stessimo lavorando con un singolo array, e quindi, per ogni elemento, emettere ogni elemento da un array multidimensionale attraverso lo stesso ciclo.
In precedenza abbiamo esaminato questo array:
$ heroes => array ('Luke' => array ('full_name' => 'Luke Skywalker', 'home_planet' => 'Tatooine', 'trope' => 'Unlikely Hero',), 'Leia' => array ('full-name' => 'Leia Organa', 'home_planet' => 'Alderaan', 'trope' => 'Badass Princess',), 'Han' => array ('full_name' => 'Han Solo' , 'home_planet' => 'Corell', 'trope' => 'Lovable Rouge',),);
Se volessimo rendere leggibile questo array, con il markup appropriato creeremmo un per ciascuno
ciclo continuo.
Di solito ci installiamo per ciascuno
cicli con forme plurali e singolari della variabile, cioè., foreach ($ heroes as $ hero)
e da lì possiamo usare la variabile singolare per rappresentare ogni elemento dell'array.
Possiamo quindi trattare il nostro array multidimensionale come un unico array.
$ heroes => array ('Luke' => array ('full_name' => 'Luke Skywalker', 'home_planet' => 'Tatooine', 'trope' => 'Unlikely Hero',), 'Leia' => array ('full-name' => 'Leia Organa', 'home_planet' => 'Alderaan', 'trope' => 'Badass Princess',), 'Han' => array ('full_name' => 'Han Solo' , 'home_planet' => 'Corell', 'trope' => 'Lovable Rouge',),); eco '
Questo è un esempio astratto, ma sono sicuro che puoi vedere il potere. Invece di riscrivere (e dover aggiornare) lo stesso markup tre volte basta scriverlo una sola volta, e lasciare che PHP lo attraversi tre volte.
Queste sei semplici righe di codice potrebbero facilmente gestire cinquanta messaggi in cinque che ci mostrano la potenza dei cicli foreach di scrivere codice scalabile e facile da gestire.
Nel prossimo esempio, prendiamo una serie di post ID e foreach post restituisce il nome di un campo YOUTUBE_NAME
come un collegamento che è impostato nel youtube_link
campo. Queste sei semplici righe di codice potrebbero facilmente gestire cinquanta messaggi quanti ne dimostrano la potenza per ciascuno
loop per scrivere codice facile da gestire e scalabile.
$ posts = array (5, 8, 13, 21, 34); foreach ($ post come $ post) $ link = get_post_meta ($ post, 'youtube_link', 'single'); $ name = get_post_meta ($ post, 'youtube_name', 'single'); echo ''. $ name. ''; // end foreach loop
Fino ad ora ho specificato manualmente i post ID, ma quando usato nel ciclo principale di WordPress possiamo impostare l'ID get_post_meta ()
manualmente con get_the_ID ()
. Quindi, utilizzando gli stessi campi personalizzati utilizzati nell'ultimo esempio, ma mostrandoli come parte del ciclo principale, se volessimo aggiungere il video di YouTube sotto il contenuto del post, potremmo semplicemente aggiungere, dopo, il contenuto();
qualcosa come questo:
$ link = get_post_meta (get_the_ID (), 'youtube_link', 'single'); $ name = get_post_meta (get_the_ID (), 'youttube_name', 'single'); eco '' . $ nome. '';
mentre
e per ciascuno
Ciclo continuoSpesso abbiamo un campo personalizzato che contiene una serie di dati serializzati per le informazioni correlate. Ad esempio, un campo può contenere il titolo di un video, il tipo di mimo, l'URL e la descrizione.
L'archiviazione serializzata è particolarmente utile quando più elementi possono essere aggiunti a un campo. Lavorare con questi tempi di campi può essere complicato nei principali loop di WordPress. Il modo più semplice per gestirli è con un ciclo secondario all'interno del tuo ciclo principale.
In questo esempio, ho aggiunto a un ciclo post di WordPress standard, che è un mentre
loop, un secondo ciclo, che scorre attraverso ogni campo video per costruire un video player HTML5, uno per ciascuno
video.
Non importa se c'è un video o dieci. Queste poche semplici righe di codice creeranno un giocatore per ognuna.
if (have_posts () while (have_posts ()) the_post (); the_content (); $ videos = get_post_meta (get_the_ID (), 'videos', false); foreach ($ video come $ video) ?>Quasi lì
Attraverso questa serie, finora, abbiamo coperto quali metadati sono in WordPress e applicato questa conoscenza per conoscere gli array ei loop di PHP. Abbiamo anche esaminato alcuni esempi pratici su come utilizzare questi dati o array di dati nel ciclo.
Questo è il primo passo per imparare a usare WordPress come sistema di gestione dei contenuti. Il prossimo passo è imparare come interrogare il database per meta campi, che è ciò che copriremo la prossima volta.