我正在尝试构建一个函数,用于保存帖子wp_update_post以添加用逗号分隔的标记,如代码中所示
//Create the post array
$post = array(
'ID' => 5,
'tags_input' => 'foo,bar,baz');
// Update the post
wp_update_post($post);
代码在我的function.php主题中运行正常,但是我想启动一个函数,只在帖子或版本中运行,使用add_filter ('wp_update_post','');
或save_post('wp_update_post,'');
创建新帖子p>
我试图这样做
function add_tags($post) {
global $post;
$idpost = $post->ID;
$tags = 'tag1, tag2, tag3, tag4';
$post = array(
'ID' => $idpost,
'tags_input' => $tags);
wp_update_post($post);
return $post;
}
add_filter( 'wp_update_post', 'add_tags');
save_post( 'wp_update_post', 'add_tags');
放入并且不会遇到
之间的无限循环我能做错什么
答案 0 :(得分:0)
解决:
function my_function(){
if ( ! wp_is_post_revision( $post_id ) ){
// unhook this function so it doesn't loop infinitely
remove_action('save_post', 'my_function');
// update the post, which calls save_post again
$post = array(
'ID' => 5,
'tags_input' => 'foo,bar,baz');
wp_update_post( $post );
// re-hook this function
add_action('save_post', 'my_function');
}
}
// hook the function
add_action('save_post', 'my_function');