以编程方式将子帖子插入Wordpress

时间:2011-02-10 02:56:14

标签: php wordpress parent-child taxonomy

我需要以编程方式为用户通过仪表板创建或更新的每个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。

1 个答案:

答案 0 :(得分:0)

检查documentation - get_posts()接受category参数,这是类别ID。 category_name参数用于不同的函数query_posts()

要查找类别ID,请将鼠标悬停在WP类别后端的链接上。