2012-09-04 29 views
0

我試圖建立一個函數在保存後wp_update_post添加用逗號分隔的標籤,在代碼中使用更新和添加標籤貼在節省後期使用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,'');

一個新的職位我試圖做到這一點

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

解決:

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');