如何給wordpress創(chuàng)建動(dòng)態(tài)的置頂文章?
置頂文章的作用是希望長時(shí)間引起讀者注意,可以表明站點(diǎn)的簡介、版權(quán)聲明、友情鏈接的交換原則等;本文將介紹如何給WordPress創(chuàng)建動(dòng)態(tài)的置頂文章,需要了解的朋友可以參考下
??推薦:《wordpress教程》
從WordPress 2.7 開始加入了“置頂文章(Sticky Posts)”。置頂文章的作用是希望長時(shí)間引起讀者注意,可以表明站點(diǎn)的簡介、版權(quán)聲明、友情鏈接的交換原則等。但太長時(shí)間的不變也會(huì)引起閱讀反感。本文將介紹如何給wordpress創(chuàng)建動(dòng)態(tài)的置頂文章。?
從wordpress help forums關(guān)于多重循環(huán)的各種討論中讓我想到一個(gè)使用兩次循環(huán)的方法。一個(gè)用來查詢并僅顯示某個(gè)分類中的文章。另一個(gè)用來查詢?cè)谒蟹诸愔械乃械奈恼隆5谝粋€(gè)查詢是從the codex中復(fù)制來的,很容易理解:?
代碼如下:
$my_query?=?new?WP_Query('category_name=frontpage&showposts=1');? while?($my_query->have_posts())?:? $my_query->the_post();? $do_not_duplicate?=?$post->ID;
上述代碼的意思是,變量my_query賦值為查詢分類名為frontpage的所有文章的結(jié)果,并僅得到一篇文章。關(guān)鍵點(diǎn)在最后部分,給變量 do_not_duplicate賦值為返回的單獨(dú)文章的ID值。我們?cè)谙乱徊叫枰@個(gè)值。?
下面一段代碼是很重要很標(biāo)準(zhǔn)的,可以在許多主題中找到。它能獲取所有日志:?
代碼如下:
if?(have_posts())?:?while?(have_posts())?:?the_post();?//do?stuff?like?format?each?postendwhile;
這段代碼獲取所有的日志,并根據(jù)//do stuff這行(依賴于模板)的格式顯示。如果僅僅這樣編寫代碼,就會(huì)發(fā)生你所選的文章(置頂文章)被顯示兩次的情況(一次在置頂區(qū)域,另一次則是在所有其他文章區(qū)域)。顯示這樣并不好,所以這里要使用到do_not_duplicate函數(shù)了。添加到一個(gè)if語句中阻止制定文章顯示兩次。下面是代碼:?
代碼如下:
if?(have_posts())?:?while?(have_posts())?:?the_post();? if(?$post->ID?==?$do_not_duplicate?)? continue;//do?stuff?like?format?each?post?endwhile;
代碼中的第二個(gè)if語句的意思是,獲取所有日志,且當(dāng)發(fā)現(xiàn)一篇文章的ID值與do_not_duplicate的值相等時(shí)中斷執(zhí)行(continue語句),否則顯示根據(jù)//do stuff這行的格式顯示所有其他的文章。記住,do_not_duplicate函數(shù)值所代表的文章已經(jīng)被顯示過了。?
就這樣當(dāng)你把所有內(nèi)容放到一起得到了什么?一個(gè)動(dòng)態(tài)的置頂文章!且最棒的部分是當(dāng)置頂文章被新的一篇代替,之前的文章會(huì)在下面所有文章的區(qū)域顯示出來(取決于你選擇了多少文章顯示以及文章的發(fā)表頻率)。