Comment afficher la valeur des champs personnalisés dans la page

17

J'ai un type de message personnalisé appelé `` logiciel '', contenu dans divers champs personnalisés tels que les sous-titres, le prix, les captures d'écran, le lien de téléchargement, etc. J'ai créé une fonction pour permettre l'utilisation de la fenêtre d'édition de tinyMCE pour certains de ces champs personnalisés. J'ai essayé d'afficher ces champs sur la page, mais sans succès.

La méthode que j'utilise est la suivante:

<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>

Voici un lien vers la page.

Sous le <hr/> page, vous trouverez une liste de toutes les méta créées. Le seul des champs qui s'affichera est «prix» pour une raison étrange.

Quelqu'un a une idée de ce qui me manque?

dvmac01
la source
c'est en effet la get_post_meta()fonction, et si vous l'appelez à l'intérieur de la boucle, cela devrait fonctionner ... A moins que vous n'utilisiez pas le bon nom de champ personnalisé. Ils viennent souvent avec un préfixe s'ils sont implémentés via un plugin comme la méta-box. Pouvez-vous publier le code de déclaration de vos champs personnalisés? Une solution serait d'ouvrir la table wp_postmeta dans PhpMyAdmin et de rechercher dans la colonne meta_keyLIKE% ...% et de spécifier "subtitle" comme valeur meta_key. Vous verrez exactement sous quel nom Wordpress stocke votre champ personnalisé.
pixeline
Je sais que c'est ancien, mais j'utilise ce SQL pour obtenir une liste de tous les champs méta dans phpmyadmin: SELECT m.meta_key FROM wp_postmeta m GROUP BY m.meta_key
ssaltman

Réponses:

17

Eh bien, vous utilisez:

get_post_meta(get_the_ID(), 'subtitle', TRUE);

Donc, vous dites à Wordpress d'obtenir la méta-valeur du champ "sous-titre" et que la valeur retournée soit au format chaîne. Voir le docu get_post_meta () .

Pour obtenir toutes les métadonnées d'une publication, vous devez plutôt utiliser la fonction get_post_custom () . Par exemple, si vous êtes dans la boucle:

$custom = get_post_custom();
foreach($custom as $key => $value) {
     echo $key.': '.$value.'<br />';
}

Cela renverra toutes les métadonnées de la publication. Si vous souhaitez vérifier, par exemple, le méta-champ "prix":

if(isset($custom['price'])) {
    echo 'Price: '.$custom['price'][0];
}
cybmeta
la source
Il manque le dernier bloc de code a)
carbure20
1
il semble que $custom['price']renvoie un tableau que vous devrez peut-être faire$custom['price'][0]
wal
3

utilisez ce code pour résoudre votre problème.

$key_name = get_post_custom_values($key = 'Key Name');
echo $key_name[0];
sharma prempal
la source