//拦截评论规则
function custom_comment_validation( $commentdata ) {
// 验证评论是否包含汉字
if ( !preg_match( '/[\x{4e00}-\x{9fa5}]/u', $commentdata['comment_content'] ) ) {
echo (json_encode(array('error' => 1, 'msg' => '评论必须包含汉字!')));
exit();
}
// 验证评论不能完全由数字或英文字母组成
if ( preg_match( '/^[0-9]+$/', $commentdata['comment_content'] ) || preg_match( '/^[a-zA-Z]+$/', $commentdata['comment_content'] ) ) {
echo (json_encode(array('error' => 1, 'msg' => '评论不能完全由数字或英文字母组成!')));
exit();
}
// 验证评论不能包含连续出现3次及以上的相同字符
if ( preg_match( '/(.)\\1{2}/u', $commentdata['comment_content'] ) ) {
echo (json_encode(array('error' => 1, 'msg' => '评论不能包含连续出现3次及以上的相同字符!')));
exit();
}
// 验证评论不能包含日文
if ( preg_match( '/[\x{3040}-\x{30ff}]/u', $commentdata['comment_content'] ) ) {
echo (json_encode(array('error' => 1, 'msg' => '评论不能包含日文!')));
exit();
}
return $commentdata;
}
add_filter( 'preprocess_comment', 'custom_comment_validation' );