我为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');
这一切都有效,我可以删除帖子一旦它存在,但我更希望它从未达到那么远。
谢谢:)
答案 0 :(得分: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,以确保在数据库写入之前停止执行。
如果帖子干净,请记住将原始内容返回到过滤器。