Как я могу отобразить свои пользовательские метабоксы в пользовательском шаблоне публикации?


Я довольно новичок в PHP/wordpress, и на самом деле это первый раз, когда я не смог ответить на вопрос через Google! Я работаю над тем, чтобы в целом ускорить работу с PHP/WP, но, похоже, я не могу учиться достаточно быстро, чтобы успевать за тем, что нам уже нужно выполнить. Пожалуйста, наберитесь терпения к моему невежеству. Я был бы признателен за любой совет или толчок в правильном направлении.

В принципе, я следовал нескольким учебным пособиям и использовал CMB Джареда Датча сценарий для создания пользовательского типа записи ("отчет"), который теперь содержит серию метабоксов, пользовательскую таксономию и пользовательские возможности, позволяющие пользователям определенной роли получать доступ только к этому типу записи. Все выглядит так, как должно быть в серверной части WP (на данный момент) - данные из ящиков сохраняются и извлекаются, и т. Д.

Http://pastebin.com/Ba82Fzbs

Затем я создал single-report.php шаблон, за которым следует content-report.php шаблон (я использую двадцатилетняя детская тема), и, как я понимаю, мне нужно что-то сделать в content-report.php шаблон для отображения информации из пользовательских метабоксов на отдельных страницах.

Я хочу отобразить все метабоксы, связанные с моим пользовательским типом записи "отчет", таким образом, чтобы обеспечить дальнейший стиль/компоновку. До сих пор я экспериментировал с do_meta_boxes() и get_post_meta(), и я думаю, что просто не понимаю правильного использования ни того, ни другого очень фундаментальным образом, потому что ни одна информация не отображается.

Я верю, что get_post_meta() даст мне то, что мне нужно (возможность передавать данные из отдельных метабоксов, чтобы я мог их упорядочить), и вот как я вставил это в шаблон своей страницы:

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

, который не отображает ничего, кроме "массива" в этом месте при просмотре с внешнего интерфейса. У меня была та же проблема с моими "практическими" версиями пользовательских типов сообщений и метабоксов, поэтому я предполагаю, что это больше, чем опечатка, - что я что-то упускаю очень простой.

Я был бы очень признателен за любую помощь в этом, и любезно благодарю вас даже за то, что вы дочитали до этого места!

Author: Fiddler, 2013-02-15

1 answers

Глядя на ваш код, кажется, что все мета-ключи имеют префикс _cmb_. Ваш ключ времени начала text_datetime_timestamp, поэтому в сочетании с префиксом вы хотите получить:

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

Обратите внимание на третий параметр, который будет извлекать одно значение, если установлено значение true, так как можно сохранить несколько значений под одним ключом, что приведет к массиву значений.

Самый простой способ просмотреть все ключи, под которыми сохранены ваши метаданные, - это get_post_custom_keys:

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

Вставьте это в цикл, и он сообщит вам имена всех ключей, под которыми сохранены ваши метаданные.

 0
Author: Milo, 2013-02-15 17:30:27