Задать вопрос
muhammadislom
@muhammadislom
PHP Laravel

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

Доброго времени.
$post_data = array(
    'post_type' => 'proconnect',
	'post_title'    => 'testPost',
	'post_status'   => 'publish',
	'post_author'   => 1,
	'post_category' => array( 146 )
);
$post_id = wp_insert_post( $post_data );

Хочу создать костюмный тип запись и добавить к определённой категории.
К примеры категория "Прочитал" id 146 запись создаётся но не добавляется в категорию "Прочитал".
Данный код попробовал для записи post. Всё работает отлично.
Может не так зарегистрировал тип записи ?
Регистрация костюмной записи.
add_action( 'init', '_register_types' );
 function _register_types(){
 
    register_post_type( 'proconnect', [
        'labels' => [
            'name'               => 'proconnect', // основное название для типа записи
            'singular_name'      => 'proconnect', // название для одной записи этого типа
            'add_new'            => 'Добавить новую Post', // для добавления новой записи
            'add_new_item'       => 'Добавить новую Post', // заголовка у вновь создаваемой записи в админ-панели.
            'edit_item'          => 'Редактировать Post', // для редактирования типа записи
            'new_item'           => 'Новая Post', // текст новой записи
            'view_item'          => 'Смотреть Post', // для просмотра записи этого типа.
            'search_items'       => 'Искать Post', // для поиска по этим типам записи
            'not_found'          => 'Не найдено', // если в результате поиска ничего не было найдено
            'not_found_in_trash' => 'Не найдено в корзине', // если не было найдено в корзине
            'parent_item_colon'  => '', // для родителей (у древовидных типов)
            'menu_name'          => 'Post', // название меню
        ],
        'public'              => true,
        'menu_position'       => 20,
        'menu_icon'           => 'dashicons-smiley',
        'taxonomies'          => ['custom-slug-tax'],
        'hierarchical'        => false,
        'supports'            => [],
        'has_archive' => true
    ]);

    register_taxonomy('custom-slug-tax', ['proconnect'], [
       'labels'                => [
           'name'              => 'proconnect_taxsanomy',
           'singular_name'     => 'proconnect_taxsanomy',
           'search_items'      => 'Найти taxonomy',
           'all_items'         => 'Все taxonomy',
           'view_item '        => 'Посмотреть taxonomy',
           'edit_item'         => 'Редактировать taxonomy',
           'update_item'       => 'Обновить',
           'add_new_item'      => 'Добавить день недели',
           'new_item_name'     => 'Добавить день недели',
           'menu_name'         => 'Все taxonomy',
       ],
       'description'           => '',
       'public'                => true,
       'hierarchical'          => false
   ]);
}

Спасибо за ответ.
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 2
@weart
wp_set_post_terms($post_id, array( 146 ), 'proconnect_taxsanomy');
Ответ написан
Комментировать
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Для таксономий нужно использовать 'tax_input', а не 'post_category'

$post_data = array(
	'post_type' => 'proconnect',
	'post_title' => 'testPost',
	'post_status' => 'publish',
	'post_author' => 1,
	'tax_input' => array( 'taxonomy_name' => array( 'term', 'term2', 'term3' ) ),
);
$post_id = wp_insert_post( $post_data );
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы