Одна из вещей, которая делает WordPress настолько мощным, как система управления контентом, заключается в том, что таблица post_meta начинается практически с чистого листа, в который можно легко добавлять собственные мета-поля.
Как вы его используете, может быть определено с помощью плагина для конкретного случая, такого как WooCommerce, или с помощью плагина пользовательских полей, такого как Custom Fields Suite или Pod, для создания собственных полей.
В некоторых случаях вы можете управлять метаданными WordPress самостоятельно, используя множество функций, которые WordPress предоставляет для добавления мета-полей записей и заполнения их данных. В этом посте я расскажу об основах передачи данных в таблицу post_meta.
То, что я показываю в этой статье, ограничено намерением. Чтобы сделать что-то более сложное, вам нужно либо использовать класс WPDB
либо использовать плагин настраиваемых полей, который может сделать для вас такую тяжелую работу.
Для многих типов плагинов или сайтов CMS, которым требуется всего несколько полей, вы можете легко создавать и управлять несколькими полями, используя несколько простых функций.
Добавление мета-поля
Вы можете добавить мета-поле к сообщению, используя add_post_meta()
. Эта функция позволяет добавить поле к конкретному сообщению. Например, чтобы добавить поле с названием «flavour» к сообщению любого типа, с идентификатором 12 и значением «vanilla», вы должны сделать это:
1
|
add_post_meta( 12, ‘flavor’, ‘vanilla’ );
|
В последнем посте я рассмотрел использование пользовательского интерфейса настраиваемого поля в редакторе постов. Важно отметить, что поля, ключи которых начинаются со знака подчеркивания, считаются закрытыми и не будут параметрами в пользовательском интерфейсе публикации, в то время как поля, которые не начинаются со знака подчеркивания, будут там доступны.
Это означает, что в нашем примере выше это поле будет доступно через пользовательский интерфейс пользовательского поля. Если, с другой стороны, вы хотите, чтобы он был закрытым, вы бы сделали имя поля _flavor.
Еще одна важная вещь, которую нужно иметь в виду, это то, что по умолчанию поля могут иметь более одного значения. Четвертый аргумент add_post_meta()
может быть установлен в true, чтобы создать поле уникального значения, которое может иметь только одно значение.
Это означает, что это:
1
2
3
|
add_post_meta( 12, ‘flavor’, ‘vanilla’ );
add_post_meta( 12, ‘flavor’, ‘mint’ );
print_r( get_post_meta( 12, ‘flavor’ );
|
Возвращает массив, содержащий ‘vanilla’ и ‘mint’. С другой стороны, если мы можем установить уникальное значение true, чтобы предотвратить добавление второго значения:
1
2
3
|
add_post_meta( 12, ‘flavor’, ‘vanilla’, true );
add_post_meta( 12, ‘flavor’, ‘mint’, true );
print_r( get_post_meta( 12, ‘flavor’ );
|
В этом случае возвращаемое значение будет просто ‘vanilla’.
Обновление мета-значений записей
В последнем примере я показал, как создать уникальное метаполе, где только одно значение может быть сохранено в поле. Но что, если вы хотите изменить существующее значение? Для этого мы бы использовали update_post_meta()
, вот так:
1
2
3
|
add_post_meta( 12, ‘flavor’, ‘vanilla’, true );
update_post_meta( 12, ‘flavor’, ‘mint’ );
print_r( get_post_meta( 12, ‘flavor’ );
|
Результатом этого будет «мята».
Имейте в виду, что с помощью обеих этих функций вы можете передать массив данных, и он будет сохранен как один элемент данных. WordPress автоматически обрабатывает сериализацию массива в строку.
Мета пользователя и комментария
До сих пор мы обсуждали метаданные для постов, но у пользователей и комментариев также есть метаданные. Оба имеют эквиваленты для add_post_meta()
и update_post_meta()
которые работают одинаково, но с таблицами, специфичными для этого типа контента.
Например, вы можете использовать add_user_meta()
и update_user_meta()
точно так же, как я описал выше для их пост-эквивалентов, чтобы добавить или обновить пользовательскую мету. Для комментариев вы можете использовать add_comment_meta()
и update_comment_meta()
.
Вывод
В этой серии статей я дал вам базовое введение в добавление и обновление метаданных записей с использованием пользовательского интерфейса настраиваемого поля или функций, которые предоставляет WordPress. Наряду с моей серией по работе с метаданными , у вас теперь должно быть понимание того, как добавлять метаданные и работать с ними.
То, что вы делаете с ним, зависит от вас, и это прекрасная вещь и истинная сила WordPress как системы управления контентом.