0

ワードプレス用の非常に単純なコンテンツフィルターを作成しています。基本的に、投稿にセット配列の単語が含まれている場合、投稿が作成されないようにします。フィルターは、ユーザーに誤投稿を通知する必要はありません。投稿がデータベースに保存されるのを止める必要があるだけで、これまでのところ私はこれを持っています: 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 に答える