怎么截取文章摘要內(nèi)容和標(biāo)題字?jǐn)?shù)? – WordPress開(kāi)發(fā)

    獲取Wordpress的各種摘要

    方法一:

    使用WP內(nèi)置函數(shù)wp_trim_words()截取

    WordPress內(nèi)置的wp_trim_words()函數(shù),專門用來(lái)截取限定字?jǐn)?shù)的內(nèi)容,比如文章摘要、內(nèi)容、標(biāo)題等。

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

    wp_trim_words()函數(shù)默認(rèn)用法:

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

    參數(shù)說(shuō)明:

    • $text(字符串) (必需) 要截取的內(nèi)容,默認(rèn): 無(wú);
    • $num_words(整數(shù)) (可選) 限定的字?jǐn)?shù),默認(rèn): 55;
    • $more(字符串) (可選) 截取后加在尾部的字符,默認(rèn): ‘&hellip;’

    示例說(shuō)明:

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

    注:可以修改上面的數(shù)字30來(lái)設(shè)定長(zhǎng)度。

    方法二:

    使用php函數(shù)mb_strimwidth()截取

    mb_strimwidth是超輕量級(jí)的php函數(shù),用來(lái)獲取指定的寬度截?cái)嘧址?/p>

    mb_strimwidth()函數(shù)默認(rèn)用法:

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

    參數(shù)說(shuō)明:

    • $str //指定字符串
    • $start //指定從何處開(kāi)始截取
    • $width //截取文字的寬度
    • $trimmarker //超過(guò)$width數(shù)字后顯示的字符串

    示例說(shuō)明:

    平時(shí)我們調(diào)用文章標(biāo)題都是這樣:

    <?php?the_title();??>
    

    現(xiàn)在我想控制標(biāo)題的輸出字?jǐn)?shù),只需要使用mb_strimwidth函數(shù)后變成這樣:

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

    注:可以修改上面的數(shù)字30來(lái)設(shè)定長(zhǎng)度。

    方法三:

    使用原生函數(shù)customTitle ()截取

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

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

    然后在需要調(diào)用的地方添加下面的代碼即可:

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

    注:可以修改上面的數(shù)字30來(lái)設(shè)定長(zhǎng)度。

    方法四:

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

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

    //標(biāo)題截?cái)?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;};
    

    然后在需要調(diào)用的地方添加下面的代碼即可:

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

    注:可以修改上面的數(shù)字30來(lái)設(shè)定長(zhǎng)度。

    方法五:

    使用CSS代碼來(lái)“截取”

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

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

    Boke112使用心得:

    文中分享的五種方法都可以實(shí)現(xiàn)自動(dòng)截取WordPress文章的內(nèi)容、摘要和標(biāo)題字?jǐn)?shù),至于那個(gè)方法比較好用就是仁者見(jiàn)仁智者見(jiàn)智了,boke112在使用的過(guò)程中都是結(jié)合幾種方法來(lái)使用的,比如同時(shí)使用方法二、四、五,有些地方可能是用方法二,有些地方可能是用方法五,關(guān)鍵還是看自己喜歡吧。

    拓展思路:

    參考來(lái)源:詳情

    wordpress 內(nèi)置函數(shù) the_excerpt() 是個(gè)使用頻率較高的函數(shù),它是用來(lái)獲取當(dāng)前文章摘要的,以[…]結(jié)尾,如果在文章中沒(méi)有編輯內(nèi)容摘要字段,則默認(rèn)截取文章的前55個(gè)字的內(nèi)容,默認(rèn)截取的字段去掉HTML標(biāo)簽和圖形,并且一定要在循環(huán)內(nèi)使用。

    the_excerpt() 函數(shù)使用的方法也非常簡(jiǎn)單,用法如下:

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

    控制摘要的字?jǐn)?shù):

    /*控制摘要字?jǐn)?shù)*/
    function?new_excerpt_length($length) {
    return?150;
    }
    add_filter("excerpt_length",?"new_excerpt_length");
    

    return 150 是返回的字符了,兩個(gè)字符一個(gè)漢字,這個(gè)可以根據(jù)自己的需要進(jìn)行設(shè)置。

    更改摘要末尾的默認(rèn)顯示樣式:

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

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

    添加自定義結(jié)尾:

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

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

    上面的代碼均添加到主題 functions.php 文件中即可,另外,the_excerpt() 函數(shù)只能用在循環(huán)體內(nèi),否則的話會(huì)出現(xiàn)錯(cuò)誤。

    給TA贊賞
    共{{data.count}}人
    人已贊賞
    ??
    Npcink上的部份代碼及教程來(lái)源于互聯(lián)網(wǎng),僅供網(wǎng)友學(xué)習(xí)交流,若您喜歡本文可附上原文鏈接隨意轉(zhuǎn)載。
    無(wú)意侵害您的權(quán)益,請(qǐng)發(fā)送郵件至 1355471563#qq.com 或點(diǎn)擊右側(cè) 私信:Muze 反饋,我們將盡快處理。
    ?
    購(gòu)物車
    優(yōu)惠劵
    搜索
    主站蜘蛛池模板: 日韩人妻一区二区三区蜜桃视频| 亚洲欧美日韩一区二区三区 | 亚洲国产美国国产综合一区二区| 色欲AV蜜桃一区二区三| 欧美成人aaa片一区国产精品 | 国产精品一区二区久久乐下载| 国产一区二区在线视频播放| 无码精品国产一区二区三区免费 | 秋霞午夜一区二区| 国产大秀视频一区二区三区| 亚洲AV香蕉一区区二区三区 | 亚洲av不卡一区二区三区| 久久精品国产一区二区电影| 国产精品亚洲一区二区三区| 国产精品自拍一区| 亚洲av成人一区二区三区观看在线| 国产综合无码一区二区辣椒| 亚洲老妈激情一区二区三区| 一本大道东京热无码一区 | 国产一区二区不卡老阿姨| 亚洲丰满熟女一区二区v| 久久精品一区二区免费看| 日韩精品一区二区三区色欲AV| 亚洲国产精品乱码一区二区| 国产综合一区二区| 91精品一区二区| 中文字幕av日韩精品一区二区 | 精品无码中出一区二区| 高清一区二区三区视频| 精品一区二区三区免费毛片| 性色AV 一区二区三区| 一区二区三区无码高清| 韩国福利一区二区三区高清视频| 亚洲日本一区二区三区在线| 色狠狠一区二区三区香蕉| 国产精品福利一区二区| 精品国产一区二区三区久久影院| 亚洲国产激情一区二区三区 | 国产在线一区二区三区av| 精品人妻一区二区三区四区 | 多人伦精品一区二区三区视频|