В этой статье собрано пошаговое руководство по Произвольным полям в WordPress.
Материал будет очень полезен для начинающих и продвинутых разработчиков WordPress. Мы постарались собрать самые полезные вещи, с помощью которых, можно расширить функционал этой знаменитой CMS.
Что такое Произвольные поля в WordPress?
Произвольные поля это некая форма мета-данных, которая позволяет хранить любую текстовую информацию для каждой записи WordPress. Каждое поле представлено парой имя/значение. Имя — это то как мы будем идентифицировать то или иное произвольное поле, а значение — то, что это поле содержит. Вся мощь такого функционала в том, что вы можете указывать любые текстовые имена и значения и получать доступ ко множеству полей, лишь зная имя. Также плюс в том, что определенные поля вы можете использовать в определенных темах.
Теперь давайте посмотрим на рабочий пример работы Произвольных полей. Когда вы редактируете запись, внизу редактора вы видите раздел Произвольные поля. Если вы немного прокрутите вниз, то увидите подраздел Добавить новое поле. Мы добавим поле с именем “Today’s Mood”, а затем значение для него Happy, Sad, Excited и т.д.
После того, как вы добавите это поле и сохраните запись, то в базе данных появится дополнительная информация, связанная с этой записью. И теперь вы можете использовать это поле в вашей теме.
Например, вы хотите отображать, какое у вас настроение в статье блога. Для этого вам нужно открыть файл single.php и добавить следующий код внутрь цикла WordPress:
1 |
<?php the_meta(); ?> |
В результате отобразится следующее:
Today’s Mood: Happy
Используя хук the_meta, вы можете отображать все поля, ассоциированные вашей записью. Это хорошо, когда у вас одно поле, но если у вас 5 различных полей, то вам, наверняка, нужно отображать их в разных частях темы. Таким образом нам на помощь прийдет хук get_post_meta.
Для того, чтобы отобразить поле с определенным именем просто вставьте следующую строку в single.php в цикл записи:
1 |
<?php echo get_post_meta($post->ID, 'key', true); ?> |
Примечание: не забудьте заменить key на ваше имя поля.
А что, если у вас есть произвольные имена с одинаковыми именами, но с разными значениями. Например, имя поля будет ‘songs’, а значения — названия разных песен. Для этого вставьте в цикл записи следующий код:
1 2 3 4 5 6 7 |
<?php $songs = get_post_meta($post->ID, 'songs', false); ?> <h3>This post is inspired by:</h3> <ul> <?php foreach($songs as $song) { echo '<li>'.$song.'</li>'; } ?> </ul> |
Вся фишка в третьем параметре, у нас он равен “false”. Изменяя его на false, вы говорите функции, что надо возвращать массив значений для определенного ключа. Это очень полезный трюк для отображения множественных значений ключа.
Источник: Jeff Starr at Perishable
Расширенные возможности произвольных полей
Вы, наверное, будете удивлены, но большинство плагинов используют произвольные поля в своих целях. Так почему же вы не видите их при редактировании статьи? Дело в том, что плагины специально скрывают такие поля от глаз пользователя, потому как их заполнение вручную очень трудоемко. Чаще всего для облегчения управления такими полями к плагинам идут соответствующие интерфейсы.
Если вы разработчик тем, плагинов или дизайна для WordPress, то вам будет интересно, как скрывать поля от глаз редакторов. Все что нужно сделать, это добавить символ подчеркивания ‘_’ перед именем поля. Имя станет таким “_wpbeginner-trending”, а значит его значение можно будет получить через пользовательский интерфейс или через код. И так, если вы хотите добавить поле в вашей теме или плагине, то нужно прописать следующий код:
1 |
add_post_meta($id, '_name', 'value'); |
Обратите внимание, что подчеркивание нужно для того, чтобы поле оставалось скрытым для прямого редактирования пользователем. Часто, когда вы имеете дело с клиентами, которые технически не очень сильно подкованы, дополнительные интерфейсы будут необходимы, как воздух. И это очень важно, особенно, когда в вашей теме или плагине присутствует много настроек, как в примере ниже:
В изображении явно показывается, что можно выжать из произвольных полей. В следующем уроке мы вас научим создавать похожие пользовательские интерфейсы, облегчающие работу редактора.
Как спрятать произвольные поля от ваших пользователей
Откройте ваш файл functions.php и добавьте следующие строки:
1 2 3 4 5 |
add_action('admin_init','remove_custom_meta_boxes'); function remove_custom_meta_boxes() { remove_meta_box('postcustom','post','normal'); remove_meta_box('postcustom','page','normal'); } |
Читайте продолжение...
Очень полезно, спасибо большое. Тучу сайтов перерыла, пока не нашла ваш)
Лабуда! такова в интернете пруд пруди! лутше бы написал как добавить права пользователей на произвольное поле!
Как добавить второе и третье произвольные поля в плагин Page List вот нашел реальную тему. Все разжеваноlabcopy.ru/analytics/plag...varov-wordpress/