0

我为 wordpress 制作了一个非常简单的内容过滤器。如果帖子包含集合数组中的任何单词,则基本上可以防止创建帖子。过滤器不需要通知用户错误发布。只需要停止将帖子保存在数据库中,到目前为止我有这个:function thefilter($content){

$searchfilter = array(
    '#cure-plus.org#',
    '#porn#',
    '#escort#',
    '#no prescription#',
    '#Prescription#'
);

$count=0;
foreach($searchfilter as $filter){

    preg_match_all( $filter, $content, $pics );

    $count += count($pics[0]);
}

if ( $count > 0 ) {
   return 'This post has been deleted';
}
}

add_filter('content_save_pre','thefilter');

一切正常,一旦帖子存在,我就可以删除它,但我希望它永远不会那么远。

谢谢 :)

4

1 回答 1

0

为了防止帖子被保存,您可以轻松地杀死 PHP,或重定向到某个地方。

if ( $count > 0 )
    die('You just got caught in our spam filter.');

return $content;

或者

if ( $count > 0 )
    header( 'Location: http://disney.com' );
    die('You just got caught in our spam filter.');

return $content;

即使您重定向,也要确保终止 PHP,以确保在数据库写入之前停止执行。

如果帖子是干净的,还记得将原始内容返回到过滤器。

于 2012-07-26T07:54:44.863 回答