この記事は最後に更新してから1年以上経過しています。
説明
日本のユーザーを対象にサービス(情報)展開しているサイトの場合、英文のみのコメントはあまりうれしくない。ましてやスパムコメントの対応は時間の無駄でしかない。そんなわけで、日本語を含んでいないコメントを無効化することにした。さっそくだが、日本語を含んでいないコメントを無効化するには次のように自テーマのfunctions.phpに以下のコードを追加する。
add_action( 'pre_comment_on_post', 'mytheme_pre_comment' );
function mytheme_pre_comment( $comment_post_ID ) {
if ( isset( $_POST['comment'] ) && !preg_match( "/[あ-ん]+/u", $_POST['comment'] ) )
wp_die( __('<strong>ERROR</strong>: please type a comment in Japanese.') );
}
コメント投稿時に実行されるアクションはいくつか存在しているが、ここではpre_comment_on_postアクションを使用している。このアクションは、対象の投稿情報がコメント可能になっているか調べた後、投稿されたコメント情報をチェックを行う前に実行されるアクションで、今回の対応を行うには都合のよい。
アクションの処理内容は、まずコメントが入力されているか調べ、入力されている場合はひらがなが含まれているか調べて日本語のコメントかどうかを判断している。そして、ひらがなが含まれていない場合は、 wp_die関数にてエラーメッセージを表示し、コメントの登録処理は行わない。日本語のコメントかの判断について、ここでは単純にひらがなが含まれているかどうかで判別しているが、この判別内容については適宜調整してほしい。
最終更新 : 2012年01月31日 21:45
関連
お勧め
get_next_comments_link(2024年12月18日 更新)
string get_next_comments_link( [ string $label = '' [ , int $max_page = 0 [ , int $page = null ] ] ] )
次のコメントリンクを取得する。
add_dashboard_page(2022年6月27日 更新)
mixed add_dashboard_page( string $page_title, string $menu_title, mixed string $capability, string $menu_slug [ , mixed $function = '' ] )
ダッシュボードメニューにサブメニューを登録する。
use_block_editor_for_post(2023年4月24日 更新)
bool use_block_editor_for_post( int | WP_Post $post )
投稿がブロックエディターに対応しているか調べる。
wp_image_editor_supports(2012年12月20日 更新)
bool wp_image_editor_supports( [ mixed $args = array() ] )
イメージエディタがサポートしているか調べる。
wp_check_filetype_and_ext(2019年2月23日 更新)
array wp_check_filetype_and_ext( string $file, string $filename [ , array $mimes = null ] )
ファイルタイプと拡張子を調べる。