我偶尔会收到这样的评论:
苍天有眼啊,让我在有生之年得以观得如此精彩绝伦的帖子。
它们对我毫无用处。我甚至不知道是不是中文/日文/韩文/。。。
如何让WordPress自动删除(而不仅仅是垃圾邮件)这些邮件?
我偶尔会收到这样的评论:
苍天有眼啊,让我在有生之年得以观得如此精彩绝伦的帖子。
它们对我毫无用处。我甚至不知道是不是中文/日文/韩文/。。。
如何让WordPress自动删除(而不仅仅是垃圾邮件)这些邮件?
您在此处引用的字符是汉(中文使用),因为它们与unicode character property \\p{Han}
.
您可以在如下插件中执行正则表达式搜索:
<?php
/**
* Plugin Name: Drop comments by chars
* Description: Delete comments which includes unicode characters of Han, Hangul and Cyrillic.
* Version: 2014.02.18
* Author: David Naber
* Licence: MIT
* Licence URI: http://opensource.org/licenses/mit-license.php
* Copyright: (c) 2014 David Naber
* @see http://wordpress.stackexchange.com/q/116973/31323
*/
/**
* check for the occurence of Han, Hangul and Cyrillic characters
*
* @param string $content
* @return bool
*/
function wpse_116973_has_unallowed_char( $content ) {
return (bool) preg_match( \'~\\p{Hangul}|\\p{Han}|\\p{Cyrillic}~u\', $content );
}
/**
* @wp-hook comment_post
* @param int $comment_ID
* @param array $approved
* @return void
*/
function wpse_116973_trash_unallowed_comments( $comment_ID, $approved ) {
$comment = get_comment( $comment_ID );
if ( ! wpse_116973_has_unallowed_char( $comment->comment_content ) )
return;
wp_trash_comment( $comment_ID );
}
add_action( \'comment_post\', \'wpse_116973_trash_unallowed_comments\', 10, 2 );
控制功能wpse_116973_has_unallowed_char()
搜索汉语(Han)、韩语(Hangul)和俄语(Chyrillic)语言的所有字符。插件将这些注释移动到垃圾箱。如果有人只想将其标记为垃圾邮件,请使用过滤器pre_comment_approved
像这样:
/**
* @wp-hook pre_comment_approved
* @param bool $approved
* @param array $commentdata
* @return bool|string Returns FALSE, TRUE, or \'spam\'
*/
function wpse_116973_allow_comment( $approved, $commentdata ) {
if ( wpse_116973_has_unallowed_char( $commentdata[ \'comment_content\' ] ) )
return \'spam\';
return $approved;
}
add_filter( \'pre_comment_approved\', \'wpse_116973_allow_comment\', 10, 2 );
您可以在中使用内置的黑名单功能Dashboard > Settings > Discussion http://www.example.com/wp-admin/options-discussion.php
, 从要排除的字母表中添加几个字符,这样就不会再困扰您了。。。我想是吧。
我有以下代码:function pietergoosen_persoonlike_kommentaar_velde($fields) { $commenter = wp_get_current_commenter(); $req = get_option( \'require_name_email\' ); $aria_req = ( $req ? \" aria-required=\'true\'\" : \'\' );