В первом посте этой серии я рассказал о том, что такое настраиваемые поля и почему они важны. Я также дал обзор различных способов добавить их в посты WordPress.
Сегодня я расскажу о пользовательском интерфейсе пользовательских полей.
Что такое пользовательский интерфейс?
Пользовательский интерфейс настраиваемых полей — это способ добавления настраиваемых полей или содержимого в настраиваемые поля в сообщение WordPress из редактора сообщений.
По умолчанию пользовательский интерфейс пользовательского поля не отображается в редакторе сообщений. Вы можете показать его, нажав на вкладку «Параметры экрана» в правом верхнем углу экрана и установив флажок рядом с «настраиваемыми полями».
Использование пользовательского интерфейса для добавления полей
После включения вы увидите мета-поле пользовательских полей в редакторе сообщений где-то под основным содержанием. Этот интерфейс имеет два поля: «имя» и «значение». Одним из них является установка имени поля, а другим — установка содержимого поля.
Под селектором имени находится кнопка «Добавить настраиваемое поле». Эта кнопка позволяет добавить новое поле, которое в будущем будет добавлено к селектору имени.
Поле значения — это место, где вы вводите содержимое для поля. Я рассмотрел получение данных из пользовательских полей в моей серии о работе с метаданными WordPress, которые вы можете прочитать для получения дополнительной информации. При получении данных из этих пользовательских полей с помощью get_post_meta()
, «name» соответствует аргументу $meta_key
get_post_meta()
. Так, например, если вы добавите поле с именем «fruit» и для записи с идентификатором 853, вы установите значение «strawberry» get_post_meta( 853, 'fruit', true );
вернул бы «клубнику».
Если бы вы использовали этот же код внутри цикла, вы могли бы установить динамический идентификатор сообщения с помощью get_the_id()
например так:
<?php echo get_post_meta( get_the_id(), 'fruits', true ); ?>
Добавление массивов в поля
Вы можете хранить строки только в полях, созданных пользовательским интерфейсом пользовательских полей. Это не значит, что вы не можете хранить массивы информации. Для простых массивов вы можете хранить список значений, разделенных запятыми, в виде строки и при выводе использовать implode()
чтобы превратить его в реальный массив.
Если в вашем поле есть список элементов, разделенных запятыми, вы можете превратить его в массив, используя implode()
, например так:
1
2
3
4
5
6
7
8
9
|
<?php
//get meta value as string
$meta = get_post_meta( get_the_ID(), ‘fruits’ );
//remove spaces just in case
$meta = str_replace( ‘ ‘, », $meta );
//split strings into array on commas
$meta = implode( ‘,’, $meta );
|
implode()
принимает два параметра, первый говорит нам, на что разбивать строки, а второй — тот, из которого нужно создать строку массива для создания массива. При установке первого параметра в виде запятой строка разделяется каждый раз, когда запятая появляется в новом индексе в массиве.
Не пропустите строку с str_replace()
. Это используется для удаления любых пробелов, которые могли быть введены в поле в пользовательском интерфейсе.
Этот метод отлично подходит для простых массивов, но для более сложных массивов вам нужно будет сериализовать массив перед добавлением его в поле. Это не то, что вы можете сделать вручную, используя пользовательский интерфейс. Вместо этого это должно быть сделано через PHP, о котором я расскажу в следующей статье этой серии.
Достаточно ли пользовательского интерфейса пользовательских полей?
Пользовательский интерфейс пользовательских полей хорош, потому что он встроен в WordPress, никаких плагинов не требуется. Тем не менее, он ограничен в том, что он может сделать. Существует несколько плагинов, которые создают улучшенный пользовательский интерфейс для настраиваемых полей, включая все типы полей.
Вы также можете добавлять и заполнять поля программно, что является следующей темой в этой серии.