Редактировать пост после его публикации через плагин? - PullRequest
0 голосов
/ 01 августа 2011

Я пытаюсь написать плагин, который редактирует содержание опубликованного поста. Я пытался использовать это:

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 голосов
/ 01 августа 2011

Я думаю, у вас должна быть статическая переменная в функции, которая отслеживает, была ли вызвана функция.Кроме того, 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...