Wordpress: работает неправильно - wp_insert_post для пользовательского типа записи - категория не связана - PullRequest
1 голос
/ 07 декабря 2011

Я установил пользовательский тип контента под названием «фото», который работает нормально. Теперь я вставляю посты с этим типом контента с помощью wp_insert_post () и столкнулся с проблемой при добавлении категории. Это иерархические категории, которые я связал с типом записи и которые можно установить в области администратора, но я пытаюсь связать их с помощью кода PHP, это не работает.

Вот фрагмент кода:

$new_entry = array();
$new_entry['post_title'] = $_POST['submit-title'];
$new_entry['post_content'] = '';
$new_entry['post_status'] = 'pending';
$new_entry['post_type'] = 'photo';
$new_entry['post_author'] = $userID;
$new_entry['post_category'] = array(6,7); // this is the line that doesn't work
$new_entry['tags_input'] = array('nature','people','fun'); // this also doesn't work

// Insert the post into the database
$post_id = wp_insert_post( $new_entry );

Это все работает, и пользовательский пост вставляется и показывается, как и ожидалось, но ему не назначены никакие категории. (Категории 6 и 7 - это категории, которые должны быть связаны с типом записи "фото"). Более того, теги также не создаются и не связаны с этим сообщением.

У кого-нибудь есть мысли о том, что я делаю неправильно, или о других подходах, которые они рекомендуют?

1 Ответ

4 голосов
/ 07 декабря 2011

Для этого есть функция, она называется wp_set_object_terms (). http://codex.wordpress.org/Function_Reference/wp_set_object_terms

например:

wp_set_object_terms( $post_id, $category_ids, 'category');

вы можете использовать ту же функцию для добавления тегов

...