Come ottenere i valori delle meta box - Tutorial WP

2 mar 2012, 10:42:31
Visualizzazioni: 36K
Voti: 2

Ho seguito questi tre tutorial per creare delle metabox personalizzate.

  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-1-intro-and-basic-fields/
  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-2-advanced-fields/
  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-3-extra-fields/

ma non so come richiamare i valori dai singoli campi. Ho usato questo script PHP

// Recupera il valore del meta field
$meta = get_post_meta($post->ID, $field['id'], true);
echo $meta;

ma non funziona. Qualcuno sa dirmi cosa sto sbagliando?

qui c'è il mio functions.php http://www.4shared.com/file/8jmKqGFY/functions.html?

e qui c'è il mio index.php http://www.4shared.com/file/iAWwZim7/index.html?

6
Commenti

sostituisci $field['id'] con l'ID effettivo che hai assegnato al campo

Bainternet Bainternet
2 mar 2012 12:06:32

L'ho fatto, ma non mostra nulla

Itachi Itachi
2 mar 2012 12:12:29

Puoi mostrarci il codice completo del tuo loop?

Alex Older Alex Older
2 mar 2012 12:56:41

ecco il mio functions.php http://www.4shared.com/file/8jmKqGFY/functions.html?

e qui c'è il mio index.php

http://www.4shared.com/file/iAWwZim7/index.html?

Itachi Itachi
4 mar 2012 17:08:29

Sei sicuro di avere la meta key corretta? Prova con print_r( get_post_custom_keys($post_id) ); e vedrai tutte le meta key associate a quel post. (Inoltre per condividere il codice, ti suggerirei qualcosa come Pastie)

Cristian Cristian
7 mar 2012 10:59:02

Per favore incolla il tuo codice direttamente nella domanda -- almeno le parti rilevanti.

chrisguitarguy chrisguitarguy
13 apr 2012 05:06:13
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 2
3

Dopo aver esaminato il tuo codice ci sono un paio di cose che devi modificare a seconda di dove si trova il contenuto dei metadati.

Se provi

$meta = get_post_meta( get_the_ID(), 'custom_text', TRUE );
echo 'Il contenuto del meta è: ' . $meta;`

Questo dovrebbe darti il meta appropriato.

Stai chiamando questa funzione sul contenuto della pagina, quindi a meno che il contenuto dei metadati non si trovi lì, non verrà restituito alcun output.

Spero sia utile!

7 mar 2012 11:07:34
Commenti

no non funziona ma ho risolto :) La soluzione è questa

$meta = get_post_meta($post->ID, $field['custom_text'], true); echo $meta[custom_text][0];

Grazie per il tuo aiuto

Itachi Itachi
10 mar 2012 23:05:52

Non dimenticare di accettare la risposta così in futuro le persone sapranno come arrivare alla soluzione che hai trovato. È anche un gesto educato.

Joshua Joshua
21 mag 2012 05:52:46

Per favore pubblica il tuo commento come risposta. Mi è stato molto utile!

Cedric Ipkiss Cedric Ipkiss
9 dic 2017 14:41:40
0

Se non ti trovi in un file template dove non puoi utilizzare get_the_ID() (ad esempio sei in un file di un plugin), prima ottieni un riferimento all'oggetto post associato al contenuto meta e poi usa $post->ID.

Ad esempio, se hai utilizzato add_meta_box per definire una funzione che visualizza il meta box (diciamo display_meta_box), puoi recuperare il valore del meta box in questo modo:

function display_meta_box( $post ) {
  // Recupera il valore meta associato al post
  $meta = get_post_meta($post->ID, "meta_key", true); 
  // Mostra un campo input con il valore meta
  echo "<input name='x' value='$meta' />";
}
9 dic 2017 14:53:19