J'essaie de placer un petit code dans mon fichier modèle header.php
. Je veux obtenir une valeur de champ personnalisé.
J'essaie d'appeler des champs personnalisés à partir de la page en cours outside of loop, btw.
Je n’ai aucun problème à faire cela lorsque j’ai besoin d’obtenir des valeurs de champ personnalisées à partir de posts, mais je ne peux pas sembler le faire pour les pages.
Voici mon code:
global $wp_query;
$postid = $wp_query->post->ID;
echo get_post_meta($postid, 'teaser-text', true);
Je ne suis pas sûr de ce que je fais mal. J'ai essayé de changer $wp_query->post->ID;
à ce $wp_query->page->ID;
sans succès.
Toute aide est appréciée, merci!
essayez d'utiliser
get_metadata('post', $postid, 'teaser-text, true);
ces deux mêmes. ne devrait faire aucune différence. plus tôt, j'ai donné de mauvais arguments. var_dump () va vous montrer ce qu'il est en train de faire. assurez-vous que l'ID est correct, il existe un texte "teaser". Vous pouvez également essayer d’utiliser un autre nom de méta (à des fins de test uniquement).
Ceci n’a pas été testé, mais essayez:
if ( is_page() ){
$page_id = get_queried_object_id();
$meta = get_post_meta( $post_id, 'teaser-text',true)
}
Vous devrez soit commencer la boucle, puis la rembobiner:
$wp_query->the_post(); // Now $post is the first post (page) in the loop
echo get_post_meta( $post->ID, 'teaser-text', true );`
$wp_query->rewind; // This rewinds the query so the loop functions normally
Ou simplement extraire l'ID du premier article de la requête:
echo get_post_meta( $wp_query->posts[0]->ID, 'teaser-text', true );