顯示多個分類下的文章可以這樣提取:
<?php query_posts(array('posts_per_page'=>10,'orderby'=>'rand','category__and'=>array(67,70)));?>
<?php if(have_posts()):while(have_posts()):the_post(); ?>
首先把要讀取的分類目錄的ID找出,放在array數組中。
借助強大的query_posts函數實現隨機(’orderby’ => ‘rand’)讀取十篇(’showposts’ =>10)在指定分類目錄(’category__in’ => array(7,17))下的文章。
最後調用wp_reset_query();因為query_posts指定規則後不止是對它下一個LOOP生效,可能導致全站其他LOOP調用失效,wp_reset_query可以用來清空wp_query規則。
下面詳細介紹wordpress下使用率最高的分類目錄系列參數(
cat:分類ID
根據ID顯示單個分類
舉例:分類ID4(以及該分類目錄下的子分類目錄)的文章:
query_posts('cat=4');
根據ID顯示多個分類
舉例:分類ID1、2、3下的文章:
query_posts('cat=1,2,3');
排除某一分類中的文章
舉例:顯示除分類ID為3的文章外的所有文章,被排除的分類ID以減號(’-')作為前綴。
query_posts('cat=-3');
category_name:分類名稱
query_posts('category_name=Staff Home');
category__and:同時存在於多個分類裡
舉例:既是分類ID1,也是分類ID5的文章:
query_posts(array('category__and' =>
舉例:獲取當前分類與分類ID5的文章
query_posts(array('category__and'=>array(get_cat_id(single_cat_title('',false)),5)));
single_cat_title():用於顯示或返回當前頁面的分類名稱,不能用於LOOP循環。有兩個參數可以使用。前綴$prefix用於在分類名稱前加入相應的內容,比如文字、圖片等,例句中就是在分類名稱前加入了“當前分類:”。是否顯示$display,是布爾值,為TRUE則直接用於顯示標題,而FALSE則用於PHP操作,下面例句將最能說明問題。(如果使用了漢字,請用 UTF8格式保存,使用ANSI時,漢字為亂碼)。
get_cat_ID():用於獲取指定分類的ID,參數只有一個$cat_name,如果錯誤返回0,否則返回分類ID。這裡拿做讀取當前分類列表裡的例子作為說明。.’<br />’是為了方便查看效果而設置的換行。第一句是獲取分類ID的關鍵所在。這句話只能使用在是分類的頁面中,也就是is_category為返回為真(1)才能生效。
category__in:存在於一系列分類之中
舉例:屬於分類ID1或分類ID5的文章:
query_posts(array('category__in' =>
category__not_in:不存在一系列分類之中
舉例:不屬於分類ID1,且不屬於分類ID5的文章:
query_posts(array('category__not_in' => array(1,5)));