Начало работы с пользовательскими полями WordPress

Опубликовано: 2021-01-19

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

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

Итак, как вы можете добавить свои собственные метаданные к своим сообщениям или страницам? Легко… используя настраиваемое поле WordPress!

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

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

Давайте начнем!

Что такое настраиваемые поля и метаданные?

Контент, такой как сообщения, страницы, пользователи, комментарии и пользовательские типы сообщений, включает метаданные, которые хранятся в вашей базе данных в таблице postmeta в паре ключ/значение.

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

Настраиваемое поле — это дополнительное поле, в которое вы можете добавить дополнительную информацию для своего сообщения, а также оно является частью метаданных сообщения.

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

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

Добавьте настраиваемые поля с помощью настраиваемых полей WordPress

Встроенные настройки настраиваемых полей WordPress по умолчанию скрыты, что объясняет, почему вы могли не знать о существовании этой функции. Чтобы использовать его, нам сначала нужно включить его.

Если вы используете классический редактор WordPress (т. е. не Гутенберг), откройте новый пост и перейдите к началу этого поста. Справа вы увидите поле с надписью «Параметры экрана». Нажмите на нее, и появится раскрывающееся меню с флажками. В этом вы должны увидеть тот, который говорит «Пользовательские поля». Отметьте это, чтобы включить их.

Если вы используете Гутенберг, щелкните значок «три точки», который появляется в правом верхнем углу публикации. Появится меню, и в нижней части этого меню должно быть написано «Параметры». Нажмите на нее, и появится новое всплывающее меню с флажками. В этом списке вы должны увидеть тот, который говорит «Пользовательские поля». Установите этот флажок, а затем закройте всплывающее меню.

Следующие шаги — добавление настраиваемых полей

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

Вы увидите два поля в разделе «Пользовательские поля»: «Имя» и «Значение». В поле «Имя» есть некоторые предварительно заполненные значения по умолчанию, которые относятся к существующим полям, которые были добавлены на ваш веб-сайт WordPress. В нашем случае мы хотим добавить собственное новое поле. Для этого нажмите на текст «Ввести новый», расположенный под полем «Имя».

Разместите свой сайт с Pressidium

60- ДНЕВНАЯ ГАРАНТИЯ ВОЗВРАТА ДЕНЕГ

ПОСМОТРЕТЬ НАШИ ПЛАНЫ

В этом примере мы хотим создать ссылку на внешний веб-сайт, который использовался в качестве источника для статьи, которую мы написали. Мы назовем это поле «Источник». Нажмите «Ввести новый» текст, а затем введите «Источник», а затем URL-адрес веб-сайта по вашему выбору в разделе «Значение». Это будет выглядеть так:

В следующий раз вам не нужно будет нажимать текст «Ввести новый» и вручную вводить «Источник». Теперь он появится в раскрывающемся списке значений.

Если у вас есть доступ к вашей базе данных (например, через phpMyAdmin), вы можете открыть таблицу postmeta, отфильтровать таблицу по идентификатору сообщения, которое вы отредактировали, и вы должны увидеть новое настраиваемое поле с его значением.

Теперь, когда мы подтвердили, что настраиваемое поле правильно сохранено для сообщения, давайте посмотрим, как мы можем отобразить его в передней части нашего сообщения, где посетители нашего веб-сайта смогут его увидеть!

Отображение значений настраиваемых полей

Чтобы отобразить наше новое значение настраиваемого поля в нашем сообщении, нам нужно добавить некоторый код в наш файл шаблона отдельных сообщений. Обычно это можно найти в файле singular.php , который находится в главной папке темы. В нашем случае (тема Twenty Twenty) он находится в файле /wp-content/themes/twentytwenty/template-parts/content.php .

Мы будем использовать основную функцию get_post_meta , которую WordPress предоставляет для извлечения метаполя сообщения из базы данных. Структура функции следующая:

 get_post_meta( $post_id, $key, $single )

Единственный обязательный аргумент — это $post_id . Аргумент $key — это мета-ключ для извлечения, а аргумент $single определяет, будет ли возвращаться одно значение, и бесполезен, если $key вообще не определен.

Если объявлен только $post_id , результатом будет массив со всеми ключами, относящимися к конкретному посту. Итак, если вы просто вставите get_post_meta( $post_id ) , вы получите что-то вроде этого:

 Array ( [field1_key] => Array ( [0] => value1 ) [field2_key] => Array ( [0] => value2 ) [field3_key] => Array ( [0] => value3 ) )

Если вы используете get_post_meta( $post_id, 'filed1_key' ) , вы получите что-то вроде Array ( [0] => value1 ) , а если вы используете get_post_meta( $post_id, 'filed1_key', true ) как мы делали раньше, вы просто получите value1 .

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

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

 $source = get_post_meta( get_the_ID(), 'source', true); if( !empty( $source ) ) { echo '<h3>Source: ' . $source . '<h3>'; } ?>

Мы вставим код сразу после содержимого поста, чтобы внутри HTML-div с классом «entry-content» код выглядел так:

 <div class="entry-content"> <?php if ( is_search() || ! is_singular() && 'summary' === get_theme_mod( 'blog_content', 'full' ) ) { the_excerpt(); } else { the_content( __( 'Continue reading', 'twentytwenty' ) ); } $source = get_post_meta( get_the_ID(), 'source', true); if( !empty( $source ) ) { echo '<h3>Source: ' . $source . '<h3>'; } ?> </div><!-- .entry-content -->

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

вывод пользовательского поля

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

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

Добавление настраиваемых полей с помощью плагина

расширенный плагин настраиваемых полей

Плагин Advanced Custom Fields — один из лучших доступных плагинов, который позволяет быстро добавлять настраиваемые поля на ваш веб-сайт WordPress и обеспечивает дополнительный контроль над данными ваших настраиваемых полей. Используя его конструктор, вы можете легко создавать настраиваемые поля, которые затем можно добавлять к вашим сообщениям, пользователям, таксономиям, медиа, комментариям и даже страницам настраиваемых параметров.

Создайте свои настраиваемые поля с помощью ACF

После установки и активации плагина ACF перейдите в «Пользовательские поля > Группы полей», где отображаются зарегистрированные поля.

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

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

Кроме того, есть еще несколько доступных настроек, которые позволяют вам изменить внешний вид поля (очень полезно) и список флажков, чтобы вы могли определить, что должно быть скрыто на соответствующих экранах редактирования.

Потрясающе, правда?

Кроме того, в меню «Инструменты ACF» вы можете экспортировать или импортировать группы полей в формате JSON, чтобы ускорить работу, если они уже были созданы в другом месте.

Рабочий пример с использованием расширенных настраиваемых полей

Допустим, мы создали настраиваемый тип сообщений с именем «Книги» и хотели бы добавить некоторые настраиваемые поля в каждое сообщение о книге, такие как «Жанр», «Автор книги» и «Год публикации». Первое, что мы должны сделать, это создать группу полей и содержащие поля следующим образом:

Как видите, не все поля используют один и тот же тип.

  • Поле «Автор» — это простое текстовое поле, в котором мы будем указывать полное имя автора.
  • Поле «Жанр» является полем выбора и должно принимать несколько значений. Книга может относиться к более чем одному жанру.
  • Предопределенные варианты для жанра необходимо вставить в поле «Выборы», каждый в отдельной строке.

Поле обложки должно быть полем выбора одного значения с предопределенными вариантами выбора.

Теперь давайте отредактируем сообщение о книге. Поля будут хорошо сгруппированы на боковой панели.

Если вы хотите изменить положение группы полей, перейдите в соответствующие настройки:

Заполните поля, а также тестовый контент для статьи и обновите пост. На этом этапе, если вы посетите вид спереди Book Post, вы заметите, что по-прежнему ничего не отображается в отношении наших настраиваемых полей.

Отображение настраиваемых полей ACF

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

  • get_field() — возвращает значение определенного поля.
  • the_field() — отображает значение определенного поля.

Это наиболее часто используемые функции с плагином ACF. Если вы хотите увидеть полный список функций плагина, вы можете посетить официальную документацию, чтобы узнать больше.

Таким образом, для вывода вашего настраиваемого поля в шаблон представления записи вам потребуется добавить некоторый код так же, как мы делали это при использовании настраиваемых полей WordPress по умолчанию. Однако вместо этого на этот раз мы будем использовать функции плагина ACF. Поскольку мы используем тему Twenty Twenty, нам нужно отредактировать файл content.php в папке двадцать двадцать twentytwenty/template-parts/ . Сразу после закрытия внутренней секции мы добавили следующие строки:

 <div class="entry-content"> <?php if( get_field( 'author' ) ) { echo '<p><b>Author:</b> ' . get_field( 'author' ) . '<p>'; } if( get_field( 'genre' ) ) { echo '<p><b>Genre:</b> ' . get_field( 'genre' ) . '<p>'; } if( get_field( 'cover' ) ) { echo '<p><b>Cover:</b> ' . get_field( 'cover' ) . '<p>'; } ?> </div>

На виде спереди мы теперь можем видеть настраиваемые поля.

Однако поле жанра отображается неправильно. Это потому, что он содержит несколько значений, поэтому функция get_field возвращает массив. Чтобы исправить это, нам нужно будет преобразовать массив в серию его значений. В PHP это легко сделать с помощью функции implode() .

 <div class="entry-content"> <?php if( get_field( 'author' ) ) { echo '<p><b>Author:</b> ' . get_field( 'author' ) . '<p>'; } if( get_field( 'genre' ) ) { echo '<p><b>Genre:</b> ' . implode( ", ", get_field( 'genre' ) ) . '<p>'; } if( get_field( 'cover' ) ) { echo '<p><b>Cover:</b> ' . get_field( 'cover' ) . '<p>'; } ?> </div>
просмотреть настраиваемые поля, созданные шорткодом

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

 [acf field="MY_CUSTOM_FIELD"/]

Замените MY_CUSTOM_FIELD именем поля, и это должно работать отлично.

Как мы видим, использование плагина Advanced Custom Fields дает нам фантастическую гибкость для создания настраиваемых полей и их отображения там, где мы хотим.

Вывод

Разработчики во всей отрасли полагаются на функцию настраиваемых полей в WordPress, чтобы обеспечить лучшую структуру и удобочитаемость своих веб-сайтов. Это еще одна выдающаяся функция WordPress, которая еще раз помогает объяснить, почему WordPress так популярен. Надеюсь, эта статья дала вам информацию, необходимую для добавления собственных настраиваемых полей на ваш веб-сайт. Удачной разработки!

Смотрите также

Таблицы списка администратора WordPress: добавление пользовательских фильтров
Добавление настраиваемых полей в пункты меню WordPress