WordPress как добавить свои поля

Как добавить удобные кастомные поля к записям в WordPress

Сегодня я постараюсь ответить на, довольно часто задаваемый, вопрос: как добавить кастомные поля к записям, на пример изображения, текстовые поля, или выпадающий список.

Если вы знакомы с CMS 1C Bitrix, то знаете, на сколько бы она не была костыльна, она обладает очень удобной системой наборов элементов — инфоблоками, и не менее удобными кастомными свойствами у элементов инфоблока. Как же сделать столь же удобные поля в WordPress, давайте разберёмся.

Настройка полей в админке

«Из коробки» WordPress не обладает подобным функционалом, однако мы можем легко его добавить при помощи плагина «Advanced Custom Fields» (Страница плагина на wordpress.org). Для установки плагина вам необходимо в административной части своего сайта перейти на страницу «Плагины», воспользоваться поиском и установить необходимый плагин.

После установки в боковом меню административной части сайта появится пункт «Произвольные поля». Для настройки своих кастомных полей, переходите в него.

Для начала, необходимо добавить группу полей, это можно сделать при помощи кнопки в верхней части страницы, рядом с заголовком:

Добавление группы полей

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

Типы кастомных полей

Я покажу создание полей на примере этого блога, я создам поля для вывода приложенных к посту файлов и дополнительных изображений.

Для создания поля жмём на кнопку «Добавить поле», и вводим необходимые данные:

  • Ярлык поля — название поля, которое вы будете видеть в админке сайта,
  • Имя поля — символьный код поля, по нему вы сможете получить доступ к полю в коде шаблона сайта,
  • Тип поля — текст, файл и так далее,
  • Инструкции по полю — небольшой комментарий, так же будет отображаться в админке,
  • Обязательно — указываем, будет ли wordpress требовать обязательного заполнения этого поля,
  • Условная логика — вы можете задать условие, при котором поле будет отображаться или скрываться

После выбора параметров необходимо нажать на кнопку «Закрыть поле», для его сохранения. У меня получился следующий список полей:

Теперь следует выбрать условия, по которым WordPress будет понимать где отображать наши кастомные поля, это можно сделать на этой же странице, в разделе «Расположения». Вы можете сделать фильтрацию по типам полей или по группе активного пользователя. На пример, при установке такого правила:

Правило группы полей

поля из этой группы будут видны только пользователям с ролью «Администратор». Думаю, суть ясна, попробуйте выставить собственные правила и посмотрите как это работает.

Ниже, на этой странице, вы можете настроить правила отображения полей в админке. Я не буду на этом останавливаться. Для сохранения всех изменений в группе жмём «Сохранить».

Далее, создайте новую или откройте старую запись, которая удовлетворяет условиям, установленным в группе полей. И заполняете все необходимые поля, если требуется корректируете их.

Использование полей в коде сайта (вывод полей на странице)

Всего есть несколько основных функций для получения кастомных полей записи:

  • get_field() — получение значения конкретного поля в виде массива
  • get_fields() — получение значений списка полей в виде массива
  • get_field_object() — получение значения конкретного поля в виде объекта
  • get_field_objects() — получение списка значений полей в виде объекта
Читайте также:  Картридж или картридж 178

Вы можете использовать тот, который удобен вам. Более подробно о функциях для работы с полями вы можете узнать на странице официальной документации к плагину.

Вот пример отображения ссылки на оригинал статьи, если она является переводом:

Источник

Произвольные поля. Счётчик просмотров

Содержание

Сейчас в WordPress вы можете спокойно задавать дополнительные параметры к различным сущностям сайта:

  • записям, страницам и другим постам произвольного типа,
  • рубрикам, меткам и другим таксономиям,
  • пользователям,
  • комментариям.

Эти дополнительные параметры и называются мета-поля, дополнительные поля, кастомные поля (custom fields), сейчас они чаще называются именно мета-поля.

«Произвольные поля» – это название метабокса для постов, где можно было как раз эти мета-поля устанавливать.

Что в видеоуроке?

В этом видеоуроке мы при помощи произвольных полей создадим счётчик просмотров для постов.

Мы рассмотрим такие моменты:

  • Как сделать так, чтобы слово «просмотров» склонялось в зависимости от цифры – «1 просмотр», «2 просмотра», «5 просмотров».
  • Как сделать так, чтобы счётчик просмотров прекрасно работал с установленными кэширующими плагинами на сайте, например WP-Super-Cache.
  • Добавим в админку метабокс, в котором вы вручную сможете изменять значение количества просмотров для каждого поста индивидуально. Двумя способами – ручками и при помощи плагина Carbon Fields.

Чтобы скачать тему WordPress, которая получилась у нас в процессе этого урока, необходимо приобрести курс.

Как создать значения произвольных полей?

Итак, задавать значения произвольных полей в WordPress можно тремя способами:

  1. Стандартный способ через админку, метабокс «Произвольные поля».
  2. При помощи функций.
  3. При помощи метабоксов, которые мы либо написали сами, либо создали при помощи плагина, например Carbon Fields.

Используя метабокс «Произвольные поля»

Этот способ будет работать только для Записей, Страниц и других произвольных типов записей, у которых при регистрации в параметре supports указано значение custom-fields , например ‘supports’ => array( ‘custom-fields’ ) .

С приходом редактора Gutenberg этот метабокс с настройками полей считается устаревшим и мы обычно используем сайдбары Gutenberg для этих целей.

При помощи функций

Практически всегда мне было достаточно одной-единственной функции для этой цели – update_<сущность>_meta() , то есть для каждой сущности функция выглядит немного по-другому, но работает примерно одинаково.

  • update_post_meta() – для постов,
  • update_term_meta() – для таксономий,
  • update_comment_meta() – для комментариев,
  • update_user_meta() – для пользователей,
  • update_site_meta() – для сайтов сети WordPress мультисайт.

Например мы хотим установить значение количества просмотров поста на 10000, тогда мы можем использовать этот код:

При помощи метабоксов

Метабоксы кстати могут быть сами разными, например на недавнем проекте у нас был такой метабокс:

Метабокс с повторяющимися полями (репитер).

Если вы хотите кодить эти метабоксы сами, то рекомендую это руководство, если при помощи плагина, то мне очень нравится Carbon Fields. В любом случае, в видеоуроке мы рассмотрели оба варианта.

Вывод произвольных полей на сайте

В основном вывод осуществляется при помощи одних и тех же функций, если только вы не используете для этого какой-то плагин для создания метабоксов, например Carbon Fields.

Вот эти функции:

Принцип действия всех этих функций примерно одинаков, для того, чтобы его понять, вам нужно понять, что любое мета-поле состоит из трёх частей:

  1. ID сущности.
  2. Ключ meta_key .
  3. Значение meta_value .

Скриншот из базы данных WordPress:

И тогда в коде это будет выглядеть примерно так:

Источник

WordPress как добавить свои поля

WordPress позволяет авторам добавлять произвольные поля к записям. Содержимое этих полей называют meta-data. Поля могут включать некоторое количество дополнительной информации. Например:

  • Настроение: Счастлив
  • Читаю: Золушка
  • Слушаю: Modern Talking
  • Погода: Солнечно и жарко
Читайте также:  Linux huawei at commands

С помощью программирования можно добавить к произвольным полям более сложные функции. Например, они могут содержать «срок годности» записи.

Данные хранятся парами — ключ/значение. Ключ — это название произвольного поля. А значение — это содержимое поля, которое будет индивидуальным для каждой записи.

Один и тот же ключ может быть использован в записи несколько раз. Например, если вы читаете две разные книги (техническое руководство на работе и фантастику дома), вы могли бы создать поле «Читаю» и использовать его дважды в одной записи (по одному разу для каждой книги).

Вот пример того, как эта информация может выглядеть в записи:

Настроение: Бодр и весел

Справочник по функциям

Добавить, обновить, удалить
  • add_post_meta()
  • update_post_meta()
  • delete_post_meta()
Вернуть значение ключа/значения
  • get_post_custom()
  • get_post_custom_values()
  • get_post_custom_keys()
Теги шаблона
  • the_meta()
  • get_post_meta()

Использование

Основываясь на примере выше, попробуем его в действии. Добавим два настраиваемых поля, одно называется «Читаю сейчас», а другое «Сегодняшнее настроение». Следующие инструкции покажут, как добавить эту информацию в публикацию используя «Произвольные поля».

  1. After you have written your post, scroll down to the area titled Custom Fields.
    Note: As of WordPress version 3.1, some screen options on the Post & Page edit Administration Panels are hidden by default. Custom Fields are hidden by default if they have not been used before.
  2. To create a new Custom Field called «Currently Reading», enter the text «Currently Reading» (without the quotes) in the text entry field titled Name.
  3. The newly created Key («Currently Reading») should now be assigned a Value, which in our case is the name of the book currently being read, «Calvin and Hobbes». Type «Calvin and Hobbes» in the Value field, again without the quotes.
  4. Click Add Custom Field button to save this custom information for that post.

To add your «Today’s Mood», repeat the process and add «Today’s Mood» to the key and a description of your mood in the value text boxes and click Add Custom Field to save this information with the post.

On your next post, you can add a new book and mood to your meta-data. In the Custom Fields section, the Key will now feature a pull down list with the previously entered Custom Fields. Choose «Currently Reading» and then enter the new book you are reading in the value. Click Add Custom Field and then repeat the process to add «Today’s Mood».

You only need to create a new «KEY» once, after which you can assign a value to that key for every post, if you so desire. You can also assign more than one Value to a key, for a post. This will come in handy for people who read more than one book at a time.

Displaying Custom Fields

With a Custom Field added to the post, it’s time to display your books and mood to the world. To display the Custom Fields for each post, use the the_meta() template tag. The tag must be put within The Loop in order to work. Many people add the_meta() template tag to the end of their post or in their Post Meta Data Section. Here is a basic example of using the tag:

It might look like this in the source code:

The template tag automatically puts the entire meta-data into a CSS style called post-meta. The key is in a span called post-meta-key so you can style it in your style sheet. All of this is showcased in an unordered list.

Читайте также:  Linux как сделать raid

To customize the look of the post-meta list, change the characteristics in your style sheet. For instance, let’s add some style to our example from the top. The style sheet elements would look like this:

  • Currently Reading : Calvin and Hobbes
  • Today’s Mood : Jolly and Happy

There are also many WordPress Plugins in the Official WordPress Plugin Directory that add some nice features to the job of displaying meta tags. A search for Custom Field plugins at Google should help you find even more.

To register support for custom fields within a custom post type, simply list it in your ‘supports’ $args using ‘custom-fields’.

Advanced Techniques for Custom Fields

The following are more advanced techniques for getting and customizing meta-data and custom fields.

Getting Custom Fields

To fetch meta values use the get_post_meta() function:

  • $post_id is the ID of the post you want the meta values for. Use $post->ID to get a post’s ID within the $post variable scope. Use get_the_ID() to retrieve the ID of the current item in the WordPress Loop.
  • $key is a string containing the name of the meta value you want.
  • $single can either be true or false. If set to true then the function will return a single result, as a string. If false, or not set, then the function returns an array of the custom fields.

Implementation Details

The PostMeta information is stored in a new table, $wpdb->postmeta. This table has four fields:

meta_id‘ — A unique id for each entry. ‘post_id‘ — The ID of the post for this metadata. ‘meta_key‘ — The name of the ‘key’. ‘meta_value‘ — The value associated with the key.

The values from this table are pulled into a structured multi-dimensional array called $post_meta_cache, just after the $posts array is fetched in wp-blog-header.php. This variable will only contain values for the list of posts fetched for the current page build. The structure of the array will look something like this:

So, if you wanted to fetch the «reading» values from post number 256, you use this PHP code:

Note: Don’t forget that $readinglist will be an array, not a single value.

PostMeta Functions

Internal Functions

These functions are intended for use inside The Loop, and all return arrays.

get_post_custom() Get all key/value data for the current post. get_post_custom_keys() Get a list of all key names for the current post. get_post_custom_values($key) Get the list of values for a particular key on the current post. get_post_meta($post_id, $key, $single = false) In WP 1.5 and beyond, this function returns the meta information without cache problems. The function requires the post id, the key, and if $single is set to TRUE, it returns only the first result (NOT as an array) for PHP use.

Template Functions

Any Post Meta function can be used in WordPress template files. For example:

the_meta() Echoes an unordered list containing the current post’s meta-data with a class for the UL as post-meta and the LI as post-meta-key. ID, 'key', true); ?> will echo the value for a single key as a string wherever it is used in a template file.

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector