SQL触发器失败,返回POST_CONTENT

时间:2016-11-01 作者:Dave

让我告诉你我的故事。。。我对Â 帖子内容中可见的字符。我没有编辑每一个,而是传递了一个简单的查询:

UPDATE wp_posts SET post_content = REPLACE( post_content, binary \'Â\', \'\' );
到目前为止一切都很好,但是,在添加新帖子后,问题又出现了,所以我认为触发是关键!所以我写了一个如下:

CREATE TRIGGER watch_posts 
  AFTER INSERT ON wp_posts 
  FOR EACH ROW 
  UPDATE wp_posts SET post_content = REPLACE( post_content, binary \'Â\', \'\' );
从这一点来看,在我现在发布的大多数帖子中blank edit page 其中字数等于0。但是数据库仍然包含post\\u内容,这些内容不是空的。如何防止现有帖子不再是空白?

1 个回复
SO网友:CodeMascot

我为你写了一个过滤器。它将在帖子保存到数据库之前过滤字符,并使用WordPress 方法如果你用这个,我想你就不需要扳机了。给你-

add_filter( \'wp_insert_post_data\' , \'the_dramatist_filter_content_before_insert\' , \'99\', 2 );

function the_dramatist_filter_content_before_insert( $data , $postarr ) {

    $search  = array(\'Â\'); // You can add other replacement finding here also
    $replace = array(\'\'); // The replacements

    $data[\'post_content\'] = str_replace($search, $replace, $data[\'post_content\']);

    // Now just return the data
    return $data;
}
希望这有帮助。