Nella parte 1, nella parte 2 e nella parte 3 della nostra serie di modelli di modelli di meta box personalizzati, abbiamo imparato come creare una meta box riutilizzabile che recupera tutte le informazioni sul campo da una matrice facile da leggere e da duplicare. Molti dati sono semplici da utilizzare semplicemente facendo eco al campo meta nel modello o tramite una funzione, ma alcuni campi sono più complessi e richiedono un po 'più finezza per l'uso corretto. Questo tutorial ti darà un'idea di base su come utilizzare questi dati e può essere esposta in innumerevoli modi.
WordPress offre diversi modi per ottenere i metadati dei post.
Il modo più semplice per visualizzare i dati è con the_meta ()
funzione. Puoi lasciarlo direttamente nel tuo single.php modello, ma non ti darà i risultati che probabilmente stai cercando. È un output molto letterale dei dati in una lista non ordinata preceduta dalla chiave di ogni campo, come mostrato nell'immagine.
Il modo più comune per ottenere i dati salvati in un campo meta-post è con get_post_meta ()
funzione. Questo è un modo semplice per indirizzare un campo specifico e memorizzarlo in una variabile che può essere utilizzata in seguito.
$ Custom_text = get_post_meta ($ post-> ID, 'custom_text', true);
L'uso di questo codice all'interno del singolo post loop metterebbe il testo "Some text in basic text input" nella variabile $ custom_text
che potrebbe quindi essere echeggiato o filtrato, o qualsiasi altra cosa si vorrebbe fare con la stringa. Quando hai a che fare con un paio di campi, questa è probabilmente la strada da percorrere, ma nel nostro esempio, stiamo lavorando con 11 campi diversi. Chiamarli tutti individualmente con questa funzione danneggerebbe inutilmente il tuo codice poiché c'è un modo per ottenere tutti i dati contemporaneamente.
Il mio metodo preferito quando lavoro con questi molti campi è usare il get_post_custom ()
funzione. Con questa funzione, possiamo archiviare tutti i campi metadati personalizzati in un array e quindi recuperare i dati desiderati con la chiave dell'array.
$ post_meta_data = get_post_custom ($ post-> ID);
ci darà un array che assomiglia a questo:
Array ([custom_text] => Array ([0] => Qualche testo in un input di testo di base) [custom_textarea] => Array ([0] => Un paragrafo o due da una textarea. Lorem ipsum dolor sit amet, consectetur adipiscing elit, Donec tristique quam mi Sed eget ligula sit amet ante dapibus tristique Mauris vel enim mauris, tortora vitae mattis, adorante adipiscing massa Fusce quis eros vel sem pharetra consequat imperdiet ut est.) [custom_checkbox] => Array ([ 0] => on) [custom_select] => Matrice ([0] => una) [custom_radio] => Matrice ([0] => due) [custom_checkbox_group] => Matrice ([0] => a: 2: i: 0; s: 3: "one"; i: 1; s: 5: "three";) [custom_post_id] => Array ([0] => 109) [custom_date] => Array ([0 ] => 05/25/2012) [custom_slider] => Matrice ([0] => 15) [custom_image] => Matrice ([0] => 413) [custom_repeatable] => Matrice ([0] => a : 3: i: 0; s: 22: "testo da un ripetibile"; i: 1; s: 27: "più testo da un ripetibile"; i: 2; s: 33: "campi di testo ripetibili sono fantastici! ";))
Come puoi vedere da questo array, WordPress memorizza ogni campo come un array perché è possibile avere più di un valore per lo stesso campo. Probabilmente noterai anche che alcuni campi sono serializzati. Scopriamo di più nella gestione dei dati di ogni campo e spieghiamo come risolverlo.
I campi di testo e textarea sono abbastanza semplici da gestire. Puoi echo con uno dei seguenti esempi:
echo $ post_meta_data ['custom_text'] [0]; echo apply_filters ('the_content', $ post_meta_data ['custom_textarea'] [0]); $ custom_checkox = $ post_meta_data ['custom_checkbox'] [0]; if ($ custom_checkbox == 'on') do_stuff ();
La prima riga restituirà semplicemente la stringa così com'è, e la seconda riga convertirà le interruzioni di riga in paragrafi con WordPress ' il contenuto
filtro. È possibile utilizzare gli stessi metodi anche per i campi di selezione, radio, data e cursore.
L'ultima riga mostra come è possibile testare per vedere se una casella di controllo è stata selezionata o meno. Se lo è, puoi eseguire varie funzioni o un numero qualsiasi di cose.
I campi del gruppo di caselle di controllo e i campi ripetibili memorizzano gli array che vengono serializzati nel database. Prima di poter generare questi dati, dobbiamo deserializzare.
$ custom_checkbox_group = unserialize ($ post_meta_data ['custom_checkbox_group'] [0]); $ custom_repeatable = unserialize ($ post_meta_data ['custom_repeatable'] [0]);
Il unserialize ()
la funzione è una funzione PHP di base che converte i nostri dati in una matrice che è più facile da usare. Il codice sopra mi darà due array che assomigliano a questo:
Array ([0] => one [1] => tre) Array ([0] => testo da un ripetibile [1] => più testo da un ripetibile [2] => campi di testo ripetibili sono fantastici!)
Ora posso scorrere gli array, ma voglio usarli nella mia uscita. È importante notare che nel campo ripetibile, se lo rendi ordinabile anche come fa il nostro esempio nella parte 3 del nostro modello di meta box personalizzato, le chiavi nell'array verranno automaticamente archiviate nell'ordine di 0, 1, 2, 3 , ecc. e non nell'ordine in cui sono stati inseriti originariamente prima di ordinarli.
eco '
Questo esempio mostrerà un elenco non ordinato di ogni stringa salvata nel file $ custom_repeatable
schieramento.
Per i nostri campi Post List e Image, abbiamo salvato un ID. Ci possono essere alcuni casi molto rari in cui si desidera produrre solo l'ID, ma molto probabilmente si vorrà usare l'ID per ottenere maggiori informazioni.
$ custom_post_id = $ post_meta_data ['custom_post_id'] [0]; echo '' .get_the_title ($ custom_post_id). ''; $ custom_image = $ post_meta_data ['custom_image'] [0]; echo wp_get_attachment_image ($ custom_image, 'thumbnail');
Questo tutorial mostra i modi più semplici per utilizzare i dati che abbiamo archiviato con le nostre meta box personalizzate riutilizzabili. Essere in grado di salvare dati extra e usarli in temi e plugin apre un nuovo mondo di possibilità con WordPress. Per cosa lo userete??