Собственно эта статья — вольный перевод Using custom fields в Codex’е c некоторыми дополнениями.
Прежде всего, отмечу, Custom fields — это пары ключ-значение которые вы самостоятельно определяете при создании статьи в WordPress. Для чего их можно применять? — как ваша фантазия повернется.
В стандартных темах для WP (вернее практически во всех) Custom Fields не выводятся нигде. И соответственно люди ими не пользуются. Исключение составляют некоторые плагины, которые их используют, может быть даже незаметно от вас. Но предположим, вы решили для каких-то целей использовать их в своем блоге. Возникает вопрос как вывести Custom fields на страницах блога?
Первый и самый простой вариант использование шаблонного тега the_meta (), который вызывается внутри цикла (The Loop). Вот пример:
[code lang=»php»][/code]
А вот что получится в исходном коде страницы:
[code lang=»html»]
[/code]
Этот шаблонный тег автоматически устанавливает CSS стиль post-meta, который вы можете определить в своей таблице стилей.
Данный тег выводит все CF, которые вы определили для определенной статьи. Иногда возникает необходимость использования только некоторых полей. В данном случае Вы можете воспользоваться следующими функциями:
get_post_meta ($post_id, $key, $single);
- $post_id — идентификатор текущей статьи
- $key — строка с именем поля
- $single — может быть true или false. Если вы устанавливаете в true, то функция выдает единственное значение в виде строки, если false — выдает массив значений полей
get_post_custom ()
Возвращает все пары ключ/значение для текущей статьи.
get_post_custom_keys ()
Возвращает имена всех ключей для текущей статьи.
get_post_custom_values ($key)
Возвращает список значений ждя определенного ключа текущей статьи.
Вот собственно и все
Ну а теперь пример того, как использовать эту функциональность:
Прежде всего в процессе редактирования статьи вы должны добавить пары ключ-значение, в русской версии WP добавление происходит в блоке «Произвольные поля». Добавим (и соответственно присвоим какое-либо значение) поле Price.
Затем нам необходимо вывести введенные значения при выводе текста всей статьи. Достигается это путем редактирования single.php (в большинстве тем, a в К2 — theloop.php), вот пример кода который необходимо добавить для вывода значения ключа Price (т.к. the_meta () выводит все пары ключ-значение, то воспользуемся функцией get_post_meta () для вывода значения единственного ключа) :
[code lang=»php»]$value_result=get_post_meta ($id,’Price’,true); if ($value_result!=”»){ print $value_result; } else{ print ‘No results found’;
}[/code]
Читайте также: