web-dev-qa-db-fra.com

Comment afficher mes métaboxes personnalisées sur un modèle de publication personnalisé?

Je suis assez nouveau sur PHP/wordpress, et c'est en fait la première fois que je n'ai pas été en mesure de répondre à une question via google! Je travaille avec PHP/WP en général, mais je n'arrive pas à apprendre assez vite pour suivre ce que nous devons déjà accomplir. S'il vous plaît ayez de la patience avec mon ignorance. J'apprécierais n'importe quel conseil, ou une poussée dans la bonne direction.

En gros, j'ai suivi un certain nombre de tutoriels et utilisé le script CMB de Jared Datch pour créer un type de publication personnalisé ("rapport") contenant désormais une série de métaboxes, une taxonomie personnalisée et des fonctionnalités personnalisées permettant aux utilisateurs d'un rôle spécifique. pour accéder uniquement à ce type de message. Tout se présente comme il se doit au back-end WP (pour l'instant) - les données des boîtes sont en cours d'enregistrement et sont récupérées, etc.

http://Pastebin.com/Ba82Fzbs

J'ai ensuite créé un modèle single-report.php, suivi d'un modèle content-report.php (j'utilise un thème pour vingt-deux enfants), et si je comprends bien, je dois faire quelque chose dans le modèle content-report.php pour affiche les informations des métaboxes personnalisées sur les pages individuelles.

Je souhaite afficher toutes les métaboxes associées à mon type de rapport personnalisé "report" de manière à permettre un style/un agencement supplémentaire. Jusqu'à présent, j'ai expérimenté do_meta_boxes () et get_post_meta () et je pense que je ne comprends tout simplement pas le bon usage de l'un ou de l'autre, car aucune information ne s'affiche.

Je pense que get_post_meta () me donnera ce dont j'ai besoin (la possibilité d'écho des données de métaboxes individuelles pour que je puisse les organiser) et voici comment je les ai insérées dans mon modèle de page:

    <?php get_post_meta( get_the_ID(), 'date-time');
echo get_post_meta( get_the_ID(), 'date-time'); ?>

Qui n'affiche rien d'autre que "array" à cet endroit vu de face. J'ai eu le même problème avec mes versions "pratiques" de types de publication personnalisés et de métaboxes, donc je suppose que c'est plus qu'une faute de frappe - qu'il me manque quelque chose de très fondamental.

J'apprécierais énormément toute aide à cet égard, et merci de bien vouloir avoir lu jusqu'à présent!

2
Fiddler

En regardant votre code, il apparaît que toutes les clés méta sont préfixées par _cmb_. Votre clé d’heure de début est text_datetime_timestamp; vous devez donc combiner ce préfixe avec le préfixe:

get_post_meta( get_the_ID(), '_cmb_text_datetime_timestamp', true );

Notez le troisième paramètre, qui extraira une valeur unique s'il est défini sur true, car il est possible d'enregistrer plusieurs valeurs sous une clé unique, ce qui donnerait lieu à un tableau de valeurs.

Le moyen le plus simple de voir toutes les clés dans lesquelles vos métadonnées sont sauvegardées est via get_post_custom_keys :

$custom_field_keys = get_post_custom_keys();
foreach( $custom_field_keys as $key => $value ) {
    echo $key . " => " . $value . "<br />";
}

Mettez cela dans la boucle et il vous dira le nom de toutes les clés sous lesquelles vos métadonnées sont enregistrées.

0
Milo