博客 / WordPress/ WordPress纯代码控制文章回复/评论最少字数

WordPress纯代码控制文章回复/评论最少字数

WordPress纯代码控制文章回复/评论最少字数

我们辛苦收集的内容免费开放下载,仅仅只需评论应该不过分吧?但是我发现很多朋友评论一两个字,特别的敷衍,就这样完全不管我的想法,所以我就想要限制文章评论当中的最少字数。

我在网上搜索到一些代码,自己也使用过,确实有效果,现在分享出来:

方法一:限制评论最少字数

将以下代码添加到当前 WordPress 主题的 functions.php 文件中:

add_filter( 'preprocess_comment', 'minimal_comment_length' );
function minimal_comment_length( $commentdata ) {
    $minimalCommentLength = 40;
    if ( strlen( trim( $commentdata['comment_content'] ) ) < $minimalCommentLength ) {
        wp_die( '抱歉,您的评论太短了,请至少输入 ' . $minimalCommentLength . ' 个字!' );
    }
    return $commentdata;
}

代码说明

  • $minimalCommentLength = 40;:定义了评论内容的最小字符数。这里的“字符”是指字节数,一个中文字符通常占 3 个字节。
  • strlen( trim( $commentdata['comment_content'] ) ):计算用户提交的评论内容(去除首尾空格后)的字节长度。
  • wp_die():如果评论长度不达标,则直接终止页面加载并显示错误信息。
  • 此方法对所有用户(包括登录用户)生效。

方法二:限制评论最少与最多字数(区分登录状态)

以下代码提供了更精细的控制,可以同时设置最少和最多字数,并且对已登录用户放宽限制。同样添加到 functions.php 文件中:

function lxtx_set_comments_length($commentdata) {
    $minCommentlength = 100; // 最少字数限制
    $maxCommentlength = 2200; // 最多字数限制
    // 使用 mb_strlen 正确计算中文字符数,一个中文算一个长度
    $pointCommentlength = mb_strlen($commentdata['comment_content'], 'UTF8');
    // 仅对未登录用户进行最少字数检查
    if ( ($pointCommentlength < $minCommentlength) && !is_user_logged_in() ){
        wp_die('抱歉!您说的内容太少了,请至少输入 ' . $minCommentlength . ' 个字(当前字数:'. $pointCommentlength .')。【登录后无此限制】');
    }
    // 仅对未登录用户进行最多字数检查
    if ( ($pointCommentlength > $maxCommentlength) && !is_user_logged_in() ){
        wp_die('对不起,您的评论太长了,请控制在 ' . $maxCommentlength . ' 字以内(当前字数:'. $pointCommentlength .')。【登录后无此限制】');
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'lxtx_set_comments_length');

代码说明与修正

  • 重要修正:原文中的 err() 函数并非 WordPress 核心函数,会导致错误。已将其替换为标准函数 wp_die()
  • $minCommentlength$maxCommentlength:分别定义评论的最小和最大字符数。这里的“字符”由 mb_strlen 计算,一个中文字符计为 1,更符合中文使用习惯。
  • is_user_logged_in():用于判断用户是否已登录。此代码中的限制仅对未登录用户生效,已登录用户不受限制。
  • mb_strlen($commentdata['comment_content'], 'UTF8'):使用多字节字符串函数正确计算包含中文的字符串长度,确保准确性。

使用方法总结

  1. 选择上述任一方法(或根据需求修改)。
  2. 登录 WordPress 后台,进入 外观 → 主题文件编辑器
  3. 在右侧文件列表中找到并点击 主题函数 (functions.php)
  4. 将代码粘贴到文件末尾的 ?> 标签之前(如果该文件没有 ?>,则直接粘贴到文件末尾)。
  5. 点击“更新文件”保存。
  6. 重要提示:修改主题文件前,建议先创建子主题或在修改前备份原文件,以免主题更新时丢失更改。

1 条评论

  1. 厉害

发表评论

您的邮箱不会公开。必填项已用 * 标注。