WordPress 技巧:用户注册时候不能含有非法关键字

我们知道 WordPress 后台 > 设置 > 讨论,可以让我们输入“评论审核”和“评论黑名单”关键字,这些关键字在用户留言的时候将用于非法关键字的检测。那么我们是否可以将这些关键字用于其他方面呢?比如用户注册的时候,用户名不能包含这些非法关键字。答案肯定是可以:

首先创建非法关键字检测函数:

<br />
function wpjam_blacklist_check($str){<br />
    $moderation_keys = trim(get_option('moderation_keys'));<br />
    $blacklist_keys = trim(get_option('blacklist_keys'));</p>
<p>    $keys = $moderation_keys ."\n".$blacklist_keys;</p>
<p>    $words = explode("\n", $keys );</p>
<p>    foreach ( (array) $words as $word) {<br />
        $word = trim($word);</p>
<p>        // Skip empty lines<br />
        if ( empty($word) )<br />
            continue;</p>
<p>        // Do some escaping magic so that '#' chars in the<br />
        // spam words don't break things:<br />
        $word = preg_quote($word, '#');</p>
<p>        $pattern = "#$word#i";<br />
        if ( preg_match($pattern, $str) ) return true;<br />
    }</p>
<p>    return false;<br />
}<br />

设置用户名不能含有待审关键字和黑名单关键字。

<br />
add_filter( 'sanitize_user', 'wpjam_sanitize_user',3,3);<br />
function wpjam_sanitize_user($username, $raw_username, $strict){<br />
    if(wpjam_blacklist_check($username)){<br />
        $username = '';<br />
    }</p>
<p>    return $username;<br />
}<br />

将上面这两段函数复制到当前主题的 functions.php 文件即可。

标签:

热门文章