Как получить значения мета-полей - Руководство WP tuts

2 мар. 2012 г., 10:42:31
Просмотры: 36K
Голосов: 2

Я прошел эти три руководства по созданию пользовательских метабоксов.

  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-1-intro-and-basic-fields/
  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-2-advanced-fields/
  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-3-extra-fields/

но я не знаю, как получить значения из отдельных полей. Я использовал этот PHP скрипт

$meta = get_post_meta($post->ID, $field['id'], true);
echo $meta;

но он не работает. Кто-нибудь знает, что я делаю неправильно.

вот мой файл function.php http://www.4shared.com/file/8jmKqGFY/functions.html?

а вот мой index.php http://www.4shared.com/file/iAWwZim7/index.html?

6
Комментарии

замените $field['id'] на фактический идентификатор, который вы присвоили полю

Bainternet Bainternet
2 мар. 2012 г. 12:06:32

Я сделал это, но ничего не отображается

Itachi Itachi
2 мар. 2012 г. 12:12:29

Можете показать нам ваш полный цикл кода?

Alex Older Alex Older
2 мар. 2012 г. 12:56:41

вот мой functions.php http://www.4shared.com/file/8jmKqGFY/functions.html?

а вот мой index.php

http://www.4shared.com/file/iAWwZim7/index.html?

Itachi Itachi
4 мар. 2012 г. 17:08:29

Вы уверены, что используете правильный meta key? Попробуйте print_r( get_post_custom_keys($post_id) ); и вы увидите все meta keys, связанные с этим постом. (Также для обмена кодом я бы предложил что-то вроде Pastie)

Cristian Cristian
7 мар. 2012 г. 10:59:02

Пожалуйста, вставьте ваш код напрямую в вопрос — хотя бы соответствующие части.

chrisguitarguy chrisguitarguy
13 апр. 2012 г. 05:06:13
Показать остальные 1 комментариев
Все ответы на вопрос 2
3

После проверки вашего кода есть несколько моментов, которые нужно изменить в зависимости от того, где хранятся метаданные.

Если попробуете:

$meta = get_post_meta( get_the_ID(), 'custom_text', TRUE );
echo 'Содержимое метаданных: ' . $meta;`

Это должно вернуть вам нужные метаданные.

Вы вызываете эту функцию для контента страницы, поэтому если метаданные не хранятся там, ничего не будет выведено.

Надеюсь, это поможет!

7 мар. 2012 г. 11:07:34
Комментарии

нет, это не работает, но я разобрался :) Решение такое

$meta = get_post_meta($post->ID, $field['custom_text'], true); echo $meta[custom_text][0];

Спасибо за помощь

Itachi Itachi
10 мар. 2012 г. 23:05:52

Не забудьте принять ответ, чтобы в будущем люди знали, как прийти к решению, которое помогло вам. Это также вежливо.

Joshua Joshua
21 мая 2012 г. 05:52:46

Пожалуйста, опубликуйте ваш комментарий как ответ. Он мне очень помог!

Cedric Ipkiss Cedric Ipkiss
9 дек. 2017 г. 14:41:40
0

Если вы не находитесь в файле шаблона, где нельзя использовать get_the_ID() (например, в файле плагина), сначала получите указатель на объект записи, связанный с мета-контентом, а затем используйте $post->ID.

Например, если вы использовали add_meta_box для определения функции, отображающей метабокс (скажем, display_meta_box), вы можете получить значение метабокса следующим образом:

function display_meta_box( $post ) {
  $meta = get_post_meta($post->ID, "meta_key", true); 
  echo "<input name='x' value='$meta' />";
}
9 дек. 2017 г. 14:53:19