在通过插件发布后编辑帖子?

时间:2011-08-01 13:51:28

标签: wordpress plugins post edit

我正在尝试编写一个编辑已发布帖子内容的插件。我试过用这个:

function edit( $post_ID ) {
    $content = "Hello. This is a test.";

    $post_info = get_post($post_ID);    
    $post_info->post_content = "$content";

    wp_update_post( $post_info );
}

add_action('publish_post', 'edit');

虽然那不起作用。它进入一个循环(因为它再次发布)并且只在它超时时结束。还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

我认为你必须在函数中有一个静态变量来跟踪函数是否被调用。此外,wp_update_post采用的是数组而不是对象 - 至少这是我的方式。

function edit( $post_ID ) {
    static $plugin_has_updated = false;
    if ($plugin_has_updated) return;
    $plugin_has_updated = true;
    $content = "Hello. This is a test.";
    $post_arr = array("ID"=>$post_ID, "post_content"=>$content);
    wp_update_post( $post_arr );
}

add_action('publish_post', 'edit');