Vieu 主題評論字數限制 200 修改方法,字數限制太少了!純代碼修改

 

320印象,用的vieu主題。

 

問題描述

Vieu 主題評論字數限制在了 200。這個所謂 200 ,其實指的是 200 個位元組。在 UTF-8 編碼下,英文字符占 1 個位元組,而中文字符占 3 個位元組。

英文字母和中文漢字在不同字符集編碼下的位元組數
英文字母中文漢字
位元組數 : 1;編碼:GB2312
位元組數 : 1;編碼:GBK
位元組數 : 1;編碼:GB18030
位元組數 : 1;編碼:ISO-8859-1
位元組數 : 1;編碼:UTF-8
位元組數 : 4;編碼:UTF-16
位元組數 : 2;編碼:UTF-16BE
位元組數 : 2;編碼:UTF-16LE
位元組數 : 2;編碼:GB2312
位元組數 : 2;編碼:GBK
位元組數 : 2;編碼:GB18030
位元組數 : 1;編碼:ISO-8859-1
位元組數 : 3;編碼:UTF-8
位元組數 : 4;編碼:UTF-16
位元組數 : 2;編碼:UTF-16BE
位元組數 : 2;編碼:UTF-16LE

這意味着,限制的 200 位元組需要除以三,只能寫 66 個漢字(包含中文標點符號)。你要再去去標點符號,也就只能寫 50 個左右的字。這樣及其影響和用戶交流。

話不多說,3 2 0,我們開始吧~

 

 解決方法

主題限制了評論字數,我們可以自己改啊~但是你在網上可能會搜索到這樣的解決方法,代碼如下:

/**
www.320nle.com
 **/
function set_comments_length($commentdata) {
	$minCommentlength = 5; //最少字數限制,建議設置為5-10個字
	$maxCommentlength = 220; //最多字數限制,建議設置為150-200個字
	$pointCommentlength = mb_strlen($commentdata['comment_content'],'UTF8'); //mb_strlen 一個中文字符當做一個長度
	if ( ($pointCommentlength < $minCommentlength) && !is_user_logged_in() ){
	err('抱歉,您的評論字數過少,最少輸入' . $minCommentlength .'個字(目前字數:'. $pointCommentlength .')【登錄後無此限制】');
	exit;
	}
	if ( ($pointCommentlength > $maxCommentlength) && !is_user_logged_in() ){
	err('抱歉,您的評論字數過多,最多輸入' . $maxCommentlength .'個字(目前字數:'. $pointCommentlength .')【登錄後無此限制】');
	exit;
	}
	return $commentdata;
}
add_filter('preprocess_comment', 'set_comments_length');

 

把這段代碼加到主題目錄下的 function.php 你會發現,根本不起作用!並不適用 Vieu 主題。

這是因為 Vieu 主題自己在 fn-theme.php 設置了評論字數限制。而且!fn-theme.php 是 SG 加密的,也就說你不能通過修改源碼。只能修改 function.php

於是,我就找到了這串代碼——

/**評論字數限制 www.320nle .com**/
function blogginglove_comment_limit($comment)
{
    if (strlen($comment['comment_content']) > 600) {
        err('評論字數過多,請刪減一些,最多不超過600個字符,謝謝合作~');
    }
    if (strlen($comment['comment_content']) < 6) {
        err('評論字數不能低於6個字符,請再寫一點吧~');
    }
    return $comment;
}
add_filter('preprocess_comment', 'blogginglove_comment_limit');

將上述代碼放到主題目錄下的 function. php 中即可。如代碼所示,我把評論字數的限制改為了 600 字符,這樣的話除以三就是 200 個字了,理論上已經足夠了。

我不知道評論字數限制 200 是怎麼來的,我感覺是沒有考慮中文字符的情況,直接抄的國外的代碼吧?所以大家都在 WP 的評論字數限制都在 200 位元組了,而非 200 個字。要知道英文 1個字母才佔一個位元組啊!

 

好了,本次教程就到這裡。如有問題,請評論去留言,也可以查看我整理的 Vieu 問題合集。

「Vieu常見問題 」 合集貼,常見問題收錄與匯總

 

收集的所有資源均來自網絡,僅供私下交流學習之用,任何涉及到商業目的的均不能使用,否則產生的一切後果由您自行承擔,提供資源但是不對任何資源負法律責任,所有資源請在你下載後24小時刪除。 如有侵權,聯繫 admin#mail.320nle.com
320印象 » Vieu 主題評論字數限制 200 修改方法,字數限制太少了!純代碼修改

發表評論