Как добавить настраиваемое поле в сообщение, созданное программно?

Как добавить настраиваемое поле в мой пост при создании программно?

Я пытаюсь создать сообщение программно и сохранить значение в столбце, создаваемом непосредственно из PhpMyAdmin.

введите описание изображения здесь

Вот как я создаю сообщение:

$post_title = $post->title->rendered; $post_content = $post->content->rendered; $post_check = get_page_by_title($post_title); $post = array( 'post_type' => 'post', 'post_title' => $post_title, 'post_content' => $post_content, 'post_status' => 'publish', 'post_author' => 1, 'post_slug' => $post_title, 'post_imported_id' => 3 ); $post_id = wp_insert_post($post); if ($post_id) { add_post_meta( $post_id, 'post_imported_id', 3 ); } 

Почта создается, и все поля по умолчанию хорошо сохраняются.

Проблема в том, что мой post_imported_id не учитывается.

Solutions Collecting From Web of "Как добавить настраиваемое поле в сообщение, созданное программно?"

Вы создали настраиваемое поле, изменив таблицу сообщений в базе данных. Пользовательские поля в WordPress API считаются мета-полями; такие поля хранятся в таблице wp_postmeta и это таблица, используемая такими функциями, как add_post_meta() и остальные функции и методы, связанные с почтовыми пользовательскими / мета полями.

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

PD: Изменение таблиц базы данных ядра считается очень плохой практикой.

Когда вы используете метод add_post_meta() , мета-значение настраиваемого сообщения будет автоматически сохранено в таблице wp_postmeta которая имеет четыре столбца: ID, post_id, meta_key и meta_value. Поэтому, по моему мнению, нет причин для создания дополнительного столбца вручную и сохранения там своего настраиваемого значения.

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

Надеюсь, это поможет.