添加操作wp_UPDATE_POST不更新WYSWIAG编辑器

时间:2018-10-16 作者:David Eisen

当我们使用wp\\u update\\u post函数并执行pre\\u post\\u更新操作时,它会在数据库中得到更新,但WYSWIAG编辑器会显示刚刚进行的修订,而不是已处理的修订。

例如,post\\u内容="test 1 test2"

保存帖子草稿Post\\u内容,如wp admin WYSWIAG中所示/text="test 1 test2"

保存Post草稿Post\\U内容,如数据库中所示="test <span style=\'color : #0e9a46\'>one</span> test2"

然后,如果刷新页面,WYSWIAG编辑器将显示="test <span style=\'color : #0e9a46\'>one</span> test2" (呈现HTML)

代码如下:

function regexcheck($post_id){
    $post_type = get_post_type();

if ( $post_type == \'story\'  ) {

    remove_action(\'pre_post_update\', \'regexcheck\');
    require_once(\'regex.php\');

    global $post;
    $content = $post->post_content;
    $post_id = $post->ID;
    $response_array = regex($content);
    $update_post = $response_array[\'finalString\'];

    $my_post = array(\'ID\'=>$post_id, \'post_content\'=> $update_post);
    wp_update_post($my_post);

    return $response_array;
    add_action(\'pre_post_update\', \'regexcheck\');

}
}
add_action(\'pre_post_update\', \'regexcheck\');
我尝试将操作移动到init,但这并不能解决问题。我也试过睡觉,但没用。不知道我在这里错过了什么。

1 个回复
SO网友:David Eisen

不太清楚为什么会这样做,但它做到了:

function modify_post_content( $content ) {

    $screen =  get_current_screen();
    $post_type = $screen->post_type;
        if ($post_type == \'story\'){
        require_once(\'regex.php\');
        $response_array = regex($content);
        $content = $response_array[\'finalString\'];
        }
        return $content;    
    }


add_filter(\'content_save_pre\', \'modify_post_content\', 10, 1);

结束

相关推荐

从unctions.php调用的Add_Actions未返回好值

我正试图通过这些功能为我的网站添加一些安全/访问防护。php。然而,每当我尝试通过函数添加时。php(而不是作为插件,我以前做过)失败(总是返回false)。例如:add_action(\"parse_query\", checkaccess()); // in functions.php 以及function checkaccess() { $allowAccess = false; if(is_admin()||is_front_page()||i