我需要以编程方式为用户通过仪表板创建或更新的每个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参数会导致根本不检索子帖子。如果没有category参数,则会返回子帖子,并且它们具有类别set属性。但是,似乎没有检索到完整列表,并且结果因运行而异。
如果随后从仪表板编辑了自动发布的内容,则上述查询不会返回此编辑的帖子。为什么呢?
有关如何解决不一致行为并使其正常工作的任何建议? 我是Wordpress的新手,在线帮助很少,主要针对仪表板用户。
使用Wordpress 3.0.4,php5。
答案 0 :(得分:0)
检查documentation - get_posts()接受category
参数,这是类别ID。 category_name
参数用于不同的函数query_posts()
。
要查找类别ID,请将鼠标悬停在WP类别后端的链接上。