WordPress 默認會在循環(huán)(Loop)中顯示置頂文章,但是在主題開發(fā)中,也許為了布局需求,你需要在 WordPress 循環(huán)中排除置頂文章。
取消置頂,按普通方式輸出文章
<?php
$args = array(
'posts_per_page' => 10, //每頁顯示10篇文章
'ignore_sticky_posts' => 1 //取消文章置頂
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
//在這里插入循環(huán)內(nèi)部代碼
endwhile; //結(jié)束while
endif; //結(jié)束if
?>
‘ignore_sticky_posts’ => 1 就是關(guān)鍵參數(shù),取消文章置頂(即不在頂部顯示),按照普通方式輸出文章
徹底排除置頂文章,不輸出
<?php
$the_query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
//在這里插入循環(huán)內(nèi)部代碼
endwhile; //結(jié)束while
endif; //結(jié)束if
?>
‘post__not_in’ => get_option( ‘sticky_posts’ ) 是關(guān)鍵參數(shù),徹底排除置頂文章(凡是置頂文章都不輸出)。假如你在已經(jīng)在首頁的其他地方(比如幻燈中)顯示了置頂文章,那么,接下來的主循環(huán)中排除置頂文章,這樣就可以避免重復(fù)顯示。
更多示例,可以參考 WP_Query#Pagination_Parameters 一節(jié)。
聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。





徹底刪除置頂?shù)姆椒m然有效,但是影響分頁功能,導(dǎo)致最后面的分頁是空白,不知道有什么方法可以解決
loop尾巴用wp_reset_query();重置查詢
測試后發(fā)現(xiàn)一個很嚴(yán)重的問題,翻頁失效了,博主應(yīng)該予以說明或者給出解決辦法才是
下一頁功能失效了怎么辦? ?
注意WP_Query結(jié)束后要使用wp_reset_postdata(),否則可能會影響其他Query
還有,樓下兩個人的問題確實存在,我遇到的問題也是列表分頁無效
首先感謝昌萌提供這么好的教程,但是我需要提出的是,不懂php的同學(xué)需要注意php語句,有可能是這樣寫的:
<?php
$the_query = new WP_Query( array( ‘post__not_in’ => get_option( ‘sticky_posts’ ) ) );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
?>
//在這里插入循環(huán)內(nèi)部代碼
<?php
endwhile; //結(jié)束while
endif; //結(jié)束if
?>
顯示文章數(shù)量控制無效
我想用下面的方法,然后設(shè)置幾個改變文章數(shù)的按鈕來實現(xiàn)動態(tài)改變首頁文章顯示數(shù)量,文章是找到了, 但發(fā)現(xiàn)這樣會使分頁按鈕失效, 也就是說每個分頁內(nèi)容都是一樣的,自己折騰不出來, 你能給點指示么??(感覺翻頁的時候會重新查詢一次。。。)
$perNum = $_COOKIE[‘num’]!=”? $_COOKIE[‘num’]: 20;
$the_query = new WP_Query( array( ‘posts_per_page’ => $perNum ) );