Статьи

Добавление пользовательских полей в WordPress программно

Одна из вещей, которая делает 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 как системы управления контентом.