怎么截取文章摘要內容和標題字數? – WordPress開發

    獲取Wordpress的各種摘要

    方法一:

    使用WP內置函數wp_trim_words()截取

    WordPress內置的wp_trim_words()函數,專門用來截取限定字數的內容,比如文章摘要、內容、標題等。

    <?php
    echo?wp_trim_words(?get_the_content(),?66?);?//?文章內容
    echo?wp_trim_words(?get_the_excerpt(),?66?);?//?文章摘要
    echo?wp_trim_words(?get_the_title(),?30?);?//?文章標題
    ?>
    

    wp_trim_words()函數默認用法:

    <?php?$trimmed?=?wp_trim_words(?$text,?$num_words?=?55,?$more?=?null?);??>
    

    參數說明:

    • $text(字符串) (必需) 要截取的內容,默認: 無;
    • $num_words(整數) (可選) 限定的字數,默認: 55;
    • $more(字符串) (可選) 截取后加在尾部的字符,默認: ‘&hellip;’

    示例說明:

    <?php
    $content?=?get_the_content();
    $trimmed_content?=?wp_trim_words(?$content,?30,?'<a?href="'.?get_permalink()?.'">?...閱讀更多</a>'?);
    echo?$trimmed_content;
    ?>
    

    注:可以修改上面的數字30來設定長度。

    方法二:

    使用php函數mb_strimwidth()截取

    mb_strimwidth是超輕量級的php函數,用來獲取指定的寬度截斷字符串。

    mb_strimwidth()函數默認用法:

    mb_strimwidth??(??string?$str??,??int?$start??,??int?$width??[,??string?$trimmarker??[,??string?$encoding??]]?)
    

    參數說明:

    • $str //指定字符串
    • $start //指定從何處開始截取
    • $width //截取文字的寬度
    • $trimmarker //超過$width數字后顯示的字符串

    示例說明:

    平時我們調用文章標題都是這樣:

    <?php?the_title();??>
    

    現在我想控制標題的輸出字數,只需要使用mb_strimwidth函數后變成這樣:

    <?php?echo?mb_strimwidth(get_the_title(),?0,?30,"...");??>
    

    注:可以修改上面的數字30來設定長度。

    方法三:

    使用原生函數customTitle ()截取

    將下面的代碼添加到主題的functions.php文件最后一個 ?> 的前面:

    function?customTitle($limit)?{
    ????$title?=?get_the_title($post->ID);
    ????if(strlen($title)?>?$limit)?{
    ????????$title?=?substr($title,?0,?$limit)?.?'...';
    ????}
    ????echo?$title;
    }
    

    然后在需要調用的地方添加下面的代碼即可:

    <?php?customTitle(30);??>
    

    注:可以修改上面的數字30來設定長度。

    方法四:

    使用自定義函數cut_str ()截取

    將下面的代碼添加到主題的functions.php文件最后一個 ?> 的前面:

    //標題截斷
    function?cut_str($src_str,$cut_length){$return_str='';$i=0;$n=0;$str_length=strlen($src_str);
    ????????while?(($n<$cut_length)?&&?($i<=$str_length))
    ????????{$tmp_str=substr($src_str,$i,1);$ascnum=ord($tmp_str);
    ????????if?($ascnum>=224){$return_str=$return_str.substr($src_str,$i,3);?$i=$i+3;?$n=$n+2;}
    ????????elseif?($ascnum>=192){$return_str=$return_str.substr($src_str,$i,2);$i=$i+2;$n=$n+2;}
    ????????elseif?($ascnum>=65?&&?$ascnum<=90){$return_str=$return_str.substr($src_str,$i,1);$i=$i+1;$n=$n+2;}
    ????????else?{$return_str=$return_str.substr($src_str,$i,1);$i=$i+1;$n=$n+1;}
    ????}
    ????if?($i<$str_length){$return_str?=?$return_str?.?'...';}
    ????if?(get_post_status()?==?'private'){?$return_str?=?$return_str?.?'(private)';}
    ????return?$return_str;};
    

    然后在需要調用的地方添加下面的代碼即可:

    <?php?echo?cut_str($post->post_title,30);??>
    

    注:可以修改上面的數字30來設定長度。

    方法五:

    使用CSS代碼來“截取”

    其實這不是截取,而是隱藏了溢出的字符。我們可以在主題CSS文件style.css中對標題所在的選擇器 id 或 class 添加下面的樣式:

    .post-title{
    width:250px;?/*?限制寬度(可選)?*/
    whitewhite-space:nowrap;?/*?禁止自動換行?*/
    word-break:keep-all;/*?這個也是禁止自動,二選一即可?*/
    overflow:hidden;?/*?隱藏溢出的內容?*/
    text-overflow:ellipsis;?/*?溢出文本使用...代替?*/
    }
    

    Boke112使用心得:

    文中分享的五種方法都可以實現自動截取WordPress文章的內容、摘要和標題字數,至于那個方法比較好用就是仁者見仁智者見智了,boke112在使用的過程中都是結合幾種方法來使用的,比如同時使用方法二、四、五,有些地方可能是用方法二,有些地方可能是用方法五,關鍵還是看自己喜歡吧。

    拓展思路:

    參考來源:詳情

    wordpress 內置函數 the_excerpt() 是個使用頻率較高的函數,它是用來獲取當前文章摘要的,以[…]結尾,如果在文章中沒有編輯內容摘要字段,則默認截取文章的前55個字的內容,默認截取的字段去掉HTML標簽和圖形,并且一定要在循環內使用。

    the_excerpt() 函數使用的方法也非常簡單,用法如下:

    這個標簽沒有任何的參數,直接使用即可,但函數默認的設置有時候并不能滿足用戶的需要,比如國內用戶以 以[…]結尾就很不習慣,另外截取前 55 個字符有時候會太少了,還有文章摘要的結尾是不是我們可以自定義加個更多的鏈接呢,這些自定義只需要在主題 functions.php 文件中加入相應的代碼就可以了,下面夏日博客教大家如何進行更自定義 wordpress 文章摘要的內容。

    控制摘要的字數:

    /*控制摘要字數*/
    function?new_excerpt_length($length) {
    return?150;
    }
    add_filter("excerpt_length",?"new_excerpt_length");
    

    return 150 是返回的字符了,兩個字符一個漢字,這個可以根據自己的需要進行設置。

    更改摘要末尾的默認顯示樣式:

    function?new_excerpt_more($excerpt) {
    return?str_replace("[...]",?"...",?$excerpt);
    }
    add_filter("wp_trim_excerpt",?"new_excerpt_more");
    

    the_excerpt() 函數默認是以[…]結尾的,這里我們利用 php 的替換函數 str_replace 將其替換成 …,也可以改成你自己想要的符號。

    添加自定義結尾:

    function?new_excerpt_more($more) {
    global?$post;
    return?" ID) . "">閱讀更多";
    }
    add_filter("excerpt_more",?"new_excerpt_more");
    

    在文章摘要的未端添加一個 閱讀更多 的鏈接,這樣看起來更符合用戶的閱讀習慣了,閱讀更多可以改成自己想要的內容。

    上面的代碼均添加到主題 functions.php 文件中即可,另外,the_excerpt() 函數只能用在循環體內,否則的話會出現錯誤。

    給TA贊賞
    共{{data.count}}人
    人已贊賞
    ??
    Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    ?
    購物車
    優惠劵
    搜索
    主站蜘蛛池模板: 久久免费区一区二区三波多野| 午夜福利一区二区三区高清视频 | 国产精品视频一区二区三区无码| 久久久久人妻一区二区三区vr | 无码免费一区二区三区免费播放| 国产伦精品一区二区三区免.费 | 中文字幕VA一区二区三区| 亚洲中文字幕一区精品自拍| 国产精品日本一区二区在线播放| 国产精品 一区 在线| 国产成人一区二区动漫精品| 亚洲AV无码一区二区三区久久精品 | 亚洲第一区二区快射影院| 一区二区三区四区精品| 成人一区专区在线观看| 亚洲国产福利精品一区二区| 无码人妻精品一区二区三区夜夜嗨| 国产精品美女一区二区三区 | 色欲AV蜜桃一区二区三| 91精品福利一区二区三区野战| 免费精品一区二区三区第35| 中文字幕av无码一区二区三区电影| 韩日午夜在线资源一区二区| 中文字幕在线无码一区二区三区 | 亚洲一区二区三区在线观看网站| 亚洲国产一区在线| 无码人妻品一区二区三区精99| 国产一区二区三区久久精品| 日韩视频一区二区三区| 欧洲无码一区二区三区在线观看| 色妞色视频一区二区三区四区| 久久久精品人妻一区二区三区蜜桃| 久久久精品人妻一区二区三区| 久久久综合亚洲色一区二区三区| 一区二区三区亚洲| 亚洲av乱码中文一区二区三区| 日韩精品一区二区三区中文版| 精品一区二区高清在线观看| 色噜噜AV亚洲色一区二区| 久久99精品一区二区三区| 男插女高潮一区二区|