WordPress於2015年8月19日發佈4.3版,並命名為「Billie」,也加入了許多新的功能。
但是最近更新後發現,首頁文章列表的文章擷取內容會全部都顯示出來,而不會按照後臺所設定的擷取文字數量來顯示。
最後發現是因為4.3版中的擷取內容只有計算英文字元的數量,而將中文字元的數量省略了,所以整篇的文章內容就會被抓取出來。
在WordPress官方還沒有更新修正這個問題期間,可以使用下面的方法來解決這一項問題。
解決方法:
第一步:
打開 wp-includes 目錄下的formatting.php
第二步:
搜尋
1 |
function wp_trim_words( $text, $num_words = 55, $more = null ) |
找到下面幾行的程式碼 (應該是在2862行)
1 2 3 4 5 6 7 8 9 |
if ( strpos( _x( 'words', 'Word count type. Do not translate!' ), 'characters' ) === 0 && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) { $text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' ); preg_match_all( '/./u', $text, $words_array ); $words_array = array_slice( $words_array[0], 0, $num_words + 1 ); $sep = ''; } else { $words_array = preg_split( "/[\n\r\t ]+/", $text, $num_words + 1, PREG_SPLIT_NO_EMPTY ); $sep = ' '; } |
第三步:
將第一行的 ‘words‘ 修改成 ‘characters_excluding_spaces‘ 或者是 ‘characters_including_spaces‘
characters_excluding_spaces 是不包含空白字元
characters_including_spaces 則是包含空白字元
最後變成像下面這樣就可以囉!
1 2 3 4 5 6 7 8 9 |
if ( strpos( _x( 'characters_excluding_spaces', 'Word count type. Do not translate!' ), 'characters' ) === 0 && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) { $text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' ); preg_match_all( '/./u', $text, $words_array ); $words_array = array_slice( $words_array[0], 0, $num_words + 1 ); $sep = ''; } else { $words_array = preg_split( "/[\n\r\t ]+/", $text, $num_words + 1, PREG_SPLIT_NO_EMPTY ); $sep = ' '; } |
作者:月影星痕
轉載請註明本文網址:https://www.chkaja.com/sloved-wordpress-43-more-content/
版權所有 © KJ資訊站 | 本文章採用 BY-NC-SA 進行授權。
發佈留言