Мне нужно программно создать пост (или страницу) для каждого поста Wordpress, созданного или обновленного пользователем через панель инструментов.Я добавил хук
add_action( 'publish_post', 'create_details_page');
Автоматическое сообщение создается, только если пользователь создает или обновляет сообщение в определенной категории, а автоматическое сообщение создается в другой категории.Каждый пост относится только к одной категории.Создайте сообщение следующим образом:
$auto_post = array(
'comment_status' => 'closed',
'post_category' => array($category->term_id),
'post_author' => $latest_post[0]->post_author,
'post_type' => 'post',
'post_title' => 'Details for ' . $latest_post[0]->post_title,
'post_parent' => $latest_post[0]->ID,
'post_content' => 'Post content'
);
$auto_post_id = wp_insert_post ( $auto_post, true );
$details = get_post( $auto_post_id );
wp_publish_post( $auto_post_id );
Результаты противоречивы: иногда я получаю одно автоматическое сообщение, иногда два, а иногда ни одного.Почему и как вставить сообщение ровно один раз?
Чтобы получить автоматическую публикацию как дочернюю запись созданной пользователем записи:
$args = array(
'post_type' => 'post',
'post_parent' => $parent_post_id,
'post_status' => 'publish'
/* 'category_name' => array('Auto Post Category') */
);
$children = get_posts( $args );
Добавление параметра category_name приводит к тому, что дочерние записи не извлекаютсясовсем.Без параметра категории возвращаются дочерние записи, и у них есть свойство набора категорий.Тем не менее, кажется, что не полный список извлекается, и результаты варьируются от запуска к запуску.
Если содержимое автоматической публикации затем редактируется с панели инструментов, эта отредактированная запись не возвращается по вышеуказанному запросу.Почему?
Есть какие-нибудь предложения о том, как устранить противоречивое поведение и заставить это работать?Я новичок в Wordpress, и онлайн-справка немногочисленна и в основном предназначена для пользователей панели мониторинга.
Использование Wordpress 3.0.4, php5.