我正在尝试编写一个编辑已发布帖子内容的插件。我试过用这个:
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');
虽然那不起作用。它进入一个循环(因为它再次发布)并且只在它超时时结束。还有其他办法吗?
答案 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');