精品久久久久久无码专区_久久精品国产99久久久古代_久久精品人妻无码一区二区三区_久久婷婷综合色丁香五月_老色鬼久久亚洲AV综合_两个人看的WWW在线观看_麻豆精产国品一二三产区区_最近中文字幕免费MV在线视频_影音先锋女人AA鲁色资源_男人扒开女人内裤强吻桶进去,国产精品自在拍首页,AV高潮娇喘抽搐喷水视频,日韩av片无码一区二区不卡电影

推廣 熱搜: 后臺(tái)  帝國(guó)cms  位置  網(wǎng)站  Wordpress教程  帝國(guó)cms建站  內(nèi)容  DESTOON  郵箱  destoon7.0 

WordPress如何使用the_title()與the_title_attribute()函數(shù)

   日期:2019-04-20     瀏覽:122    違規(guī)舉報(bào)
 
騰訊云服務(wù)器優(yōu)惠

WordPress 提供了一個(gè)非常簡(jiǎn)單方便的函數(shù)來顯示當(dāng)前文章的標(biāo)題,,那就是:the_title(),。

這個(gè)函數(shù)經(jīng)常被開發(fā)者在 header,post,,page,,loop,,footer 里使用,這幾乎是開發(fā)主題里最常用的Wordpress函數(shù)之一,,然而許多開發(fā)者并沒有意識(shí)到這里有個(gè)地方并不應(yīng)該使用此函數(shù),,那就是在 attributes 里,如:

<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">繼續(xù)閱讀 <?php the_title(); ?></a>

很多開發(fā)者在 loop,,page,,post 里使用這樣的寫法設(shè)置一個(gè)超鏈接到指定的文章,看起來似乎并沒有什么問題,,但其實(shí)正確安全的寫法應(yīng)該把title=”<?php the_title();?>”改寫成title=”<?phpthe_title_attribute();?>”

為什么要這樣寫,,大家看看 WordPress 源文件中的相關(guān)函數(shù)核心文件便知了:

the_title() 源代碼:

function the_title($before = '', $after = '', $echo = true) {        $title = get_the_title();        if ( strlen($title) == 0 )                return;        $title = $before . $title . $after;        if ( $echo )                echo $title;        else                return $title;}

這個(gè)函數(shù)并沒有提供給我們有效的信息,只是執(zhí)行了get_the_title()函數(shù),我們?cè)倏聪逻@個(gè)函數(shù)的相關(guān)文件.

function get_the_title( $post = 0 ) {        $post = get_post( $post );        $title = isset( $post->post_title ) ? $post->post_title : '';        $id = isset( $post->ID ) ? $post->ID : 0;        if ( ! is_admin() ) {                if ( ! empty( $post->post_password ) ) {                        $protected_title_format = apply_filters( 'protected_title_format', __( 'Protected: %s' ) );                        $title = sprintf( $protected_title_format, $title );                } else if ( isset( $post->post_status ) && 'private' == $post->post_status ) {                        $private_title_format = apply_filters( 'private_title_format', __( 'Private: %s' ) );                        $title = sprintf( $private_title_format, $title );                }        }        return apply_filters( 'the_title', $title, $id );}

這個(gè)函數(shù)非常簡(jiǎn)單,,它用get_post()取回了post object,,然后把它傳遞給一個(gè)叫做the_title的filter,返回$post->post_title

這個(gè)函數(shù)最重要的地方就是apply_filters( ‘the_title’, $title, $id );

這個(gè) filter 可以提供給開發(fā)者自定義標(biāo)題的輸出形式,,比如添加額外的 html 標(biāo)簽。

the_title_attribute() 源代碼:

function the_title_attribute( $args = '' ) {        $title = get_the_title();        if ( strlen($title) == 0 )                return;        $defaults = array('before' => '', 'after' =>  '', 'echo' => true);        $r = wp_parse_args($args, $defaults);        extract( $r, EXTR_SKIP );        $title = $before . $title . $after;        $title = esc_attr(strip_tags($title));        if ( $echo )                echo $title;        else                return $title;}

這個(gè)函數(shù)也使用了get_the_title()函數(shù)來取回文章的標(biāo)題,,但是最后返回的數(shù)據(jù)卻與the_title()函數(shù)不同,。這里過濾掉了許多轉(zhuǎn)義字符與html標(biāo)簽,能夠更加安全的在元素屬性里進(jìn)行使用,。

詳細(xì)例子:

假設(shè)你的$post->post_title是這樣的

<span class="title">這是有span標(biāo)簽的標(biāo)題</span>

當(dāng)你使用the_title()函數(shù),,輸出將保持不變,還是如下

<span class="title">這是有span標(biāo)簽的標(biāo)題</span>

但是當(dāng)你使用the_title_attribute(),,你的輸出是如下的

這是有span標(biāo)簽的標(biāo)題

注意這里的span標(biāo)簽已經(jīng)被移除掉了.

又假如如果你的標(biāo)題里有雙引號(hào),如下

這是一個(gè)帶 "雙引號(hào)" 的標(biāo)題

當(dāng)你使用the_title()函數(shù),,輸出如下

這是一個(gè)帶 "雙引號(hào)" 的標(biāo)題

但是當(dāng)你使用the_title_attrubute()函數(shù),輸出卻如下

這是一個(gè)帶 \"雙引號(hào)\" 的標(biāo)題

注意到這里自動(dòng)把雙引號(hào)替換成轉(zhuǎn)義字符了,,這樣就保證了html標(biāo)簽屬性的安全使用,。

如果我們?cè)趆tml標(biāo)簽屬性里使用the_title()函數(shù),則會(huì)破壞掉屬性原有的形式

<span title="<?php the_title(); ?>"><?php the_title(); ?></span>

輸出將會(huì)如下:

<span title="這是一個(gè)帶 "雙引號(hào)" 的標(biāo)題">這是一個(gè)帶”雙引號(hào)”的標(biāo)題</span>

注意到了這里的title屬性的引號(hào),html標(biāo)簽對(duì)引號(hào)的使用是非常嚴(yán)格的,,禁止這樣的形式出現(xiàn),,一旦出現(xiàn)將導(dǎo)致頁面嚴(yán)重的顯示問題.

經(jīng)過以上的分析,希望開發(fā)者們?cè)谝院蟮拈_發(fā)過程中能注意到這些小細(xì)節(jié),,在html標(biāo)簽屬性里一定要使用the_title_attribute()函數(shù)而不是the_title()函數(shù),!

所以正確的用法應(yīng)該是:

<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">繼續(xù)閱讀 <?php the_title(); ?></a>

注:原文作者墨魚

免責(zé)聲明:
1、本站所收集的部分公開資料來源于互聯(lián)網(wǎng),,轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享,,并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),也不構(gòu)成任何其他建議,。
2,、本站部分作品內(nèi)容是由網(wǎng)友自主投稿和發(fā)布,、編輯整理上傳,對(duì)此類內(nèi)容本站僅提供交流平臺(tái),,不為其版權(quán)負(fù)責(zé),,更不為其觀點(diǎn)承擔(dān)任何責(zé)任。
3,、因行業(yè)及專業(yè)性有限,,故未能核驗(yàn)會(huì)員發(fā)布內(nèi)容的真實(shí)性及有效性,不為其負(fù)責(zé),,如有虛假或違規(guī)內(nèi)容敬請(qǐng)準(zhǔn)備材料圖片發(fā)郵件到info@n#舉報(bào),,本站核實(shí)后積極配合刪除。
4,、如果您發(fā)現(xiàn)網(wǎng)站上有侵犯您的知識(shí)產(chǎn)權(quán)的作品,,請(qǐng)與我們?nèi)〉寐?lián)系,我們會(huì)及時(shí)處理或刪除,。
 
打賞
 
更多>同類網(wǎng)站技術(shù)
0相關(guān)評(píng)論

推薦圖文
推薦網(wǎng)站技術(shù)
點(diǎn)擊排行
網(wǎng)站首頁  |  關(guān)于我們  |  聯(lián)系方式  |  使用協(xié)議  |  免責(zé)聲明  |  版權(quán)隱私  |  信息發(fā)布規(guī)則  |  網(wǎng)站地圖  |  排名推廣  |  廣告服務(wù)  |  積分換禮  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報(bào)  |  粵ICP備2020081222號(hào)
Powered By DESTOON