У меня есть пользовательский тип записи, называемый «программное обеспечение», в котором содержатся различные настраиваемые поля, такие как субтитры, цена, снимки экрана, ссылка на скачивание и т. Д. Я создал функцию, позволяющую использовать окно редактирования tinyMCE для некоторых из этих настраиваемых полей. Я пытался отобразить эти поля на странице, но безуспешно.
Метод, который я использую, таков:
<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>
Вот ссылка на страницу.
Ниже <hr/>
на странице находится список всех созданных мета. Единственное из полей, которое будет отображаться, это «цена» по какой-то странной причине.
Кто-нибудь есть идеи, что я скучаю?
get_post_meta()
функция, и если вы вызываете ее внутри цикла, она должна работать ... Если только вы не используете правильное имя настраиваемого поля. Они часто поставляются с префиксом, если они реализованы через плагин, такой как метабокс. Можете ли вы опубликовать код, как вы объявляете свои пользовательские поля? Решением было бы открыть таблицу wp_postmeta в PhpMyAdmin, найти в столбцеmeta_key
LIKE% ...% и указать «subtitle» в качестве значения meta_key. Вы точно увидите, под каким именем Wordpress хранит ваше настраиваемое поле.Ответы:
Ну, вы используете:
Итак, вы говорите Wordpress, чтобы получить мета-значение поля 'subtitle' и вернуть возвращаемое значение в формате строки. Смотрите документ get_post_meta () .
Чтобы получить все метаданные поста, вы должны использовать функцию get_post_custom () . Например, если вы находитесь внутри цикла:
Это вернет все метаданные поста. Если вы хотите проверить, например, метаполе «цена»:
источник
$custom['price']
возвращает массив, так что вам, возможно, придется сделать$custom['price'][0]
используйте этот код для решения вашей проблемы.
источник