怎么截取文章摘要內容和標題字數? – 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 反饋,我們將盡快處理。
    ?
    購物車
    優惠劵
    搜索
    主站蜘蛛池模板: 无码喷水一区二区浪潮AV| 中文字幕乱码一区久久麻豆樱花| 一本AV高清一区二区三区| 日本一区午夜艳熟免费| 伊人久久大香线蕉av一区| 久久婷婷色一区二区三区| 糖心vlog精品一区二区三区| 亚洲乱码av中文一区二区| 无码精品久久一区二区三区 | 色一情一乱一区二区三区啪啪高| 男人的天堂av亚洲一区2区| 亚洲av区一区二区三| 国产高清视频一区三区| 亚洲另类无码一区二区三区| 乱中年女人伦av一区二区| 人妻AV一区二区三区精品| 毛片无码一区二区三区a片视频| 无码欧精品亚洲日韩一区夜夜嗨| 久久久久99人妻一区二区三区| 亚洲国产欧美一区二区三区| 亚洲AV无码一区二区三区国产 | 日本精品视频一区二区| 国产一区三区二区中文在线| 精品欧洲AV无码一区二区男男| 日韩精品一区二区三区影院| 人妻无码久久一区二区三区免费 | 国产未成女一区二区三区| 日本在线视频一区二区| 欧美激情一区二区三区成人| 97精品国产一区二区三区| 一区二区三区四区无限乱码| 麻豆国产在线不卡一区二区| 消息称老熟妇乱视频一区二区| 无码毛片视频一区二区本码| 色窝窝无码一区二区三区 | 91在线视频一区| 一本大道东京热无码一区| 亚洲一区二区三区在线视频| 亚洲电影一区二区| 国产MD视频一区二区三区| 人妻无码第一区二区三区|