サポート » 使い方全般 » 投稿 禁止ワード設定

  • 解決済 shiro99

    (@shiro99)


    誰でも投稿できる設定の場合ですが、
    投稿本文に禁止ワードを設定したいのですが、可能でしょうか
    そのワードが入っていた場合、そのワードを消す、もしくは
    ワードが入っていたら、投稿ごと表示させない

    どなたか分かる方いましたらアドバイスおねがいします

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    shiro99さん、こんにちは。

    禁句を出力時に消すといった処理ならば、下記のようにthe_contentでフィルタリングすることはできます。(下記の例は、コメントのブラックリストを本文に適用した例)

    function check_banned_words( $content ) {
    	$banned_words = trim( get_option( 'blacklist_keys' ) );
    	if ( ! empty($banned_words ) ) {
    		$banned_words = explode( "\n", $banned_words );
    		foreach ( $banned_words as $key => $word ) {
    			$banned_words[$key] = '/' . preg_quote( trim( $word ), '/' ) . '/i';
    		}
    		$content = preg_replace( $banned_words, '', $content );
    	}
    	return $content;
    }
    add_filter( 'the_content', 'check_banned_words' );

    ただし、このフィルタリング方式には少々問題があり、fooという禁句を設定した場合、footなどにマッチしてしまい、tだけが残るといった事態になります。英語などのように単語を切り分けやすい言語はまだ良いのですが、日本語は文字が連続しているため、上記のような問題がつねにつきまといます。
    また、当て字たや絵文字など逃げ道がいくらでも存在するため、際限がありません。

    あまりに問題化しているようなら、サイトの運用方法から考えた方がよいかもしれません。

    スレッド開始 shiro99

    (@shiro99)

    jim912様 ありがとうございます

    テーマフォルバの
    function.php に書けば良いですか?

    例えば、fooという禁句を設定したい場合
    ‘blacklist_keys’ を ’foo’
    と書けばよいのでしょうか

    すみませんが、宜しくお願いします

    スレッド開始 shiro99

    (@shiro99)

    すみません、しっかり読んでませんでした
    解決しました
    ありがとうございました

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「投稿 禁止ワード設定」には新たに返信することはできません。