2011-08-01 15 views
0

公開された投稿の内容を編集するプラグインを作成しようとしています。私はこれを使用しようとしました:投稿をプラグイン経由で公開した後で投稿を編集していますか?

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

私は、関数が呼び出されたかどうかを追跡する関数に静的変数を持たなければならないと思います。また、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'); 
関連する問題