2013-10-09 71 views
2

讓我們說我有類別的結構是這樣的:WordPress的 - 從多個父類別獲取所有職位?

food  (id = 1) 
    chicken (id = 2) 
    beef  (id = 3) 

beverage  (id = 11) 
    soft-drink (id = 12) 
    juice  (id = 13) 

branch 
    ... // not important 

我想告訴從foodbeverage的所有帖子,所以我這樣做:

$args = array('category__in' => array(1, 11)); 
get_posts($args); 

代碼不工作,因爲我只勾選子類別。

當然我可以做array(1, 2, 3, 11, 12, 13)但它不是乾的。

有沒有一種很好的方式來使用父類別的ID獲取所有文章

感謝

[我的代碼基於下面的答案]

$args = array(
    'category' => implode(",", array(1, 11)) 
); 
get_posts($args); 

回答

4

您需要使用cat代替category__incategory__in不會得到類別的兒童。你可以得到這個信息here

檢查:有此類別(與該類別的所有兒童),使用類別ID

顯示文章:
$查詢=新WP_Query(「貓= 1,11');

該代碼帶來了該類別的所有孩子,但這樣的:有這一類(不是類的兒童)

顯示文章,使用類別ID:
$查詢=新WP_Query(' category__in = 1,11');

僅獲得具有該ID的類別中的帖子。

現在若要將多個類別ID傳遞給貓,則可以使用php implode function生成一個字符串,如果您將ID作爲數組。

,你也可以檢查這個例子:

$paged = get_query_var('paged') ? get_query_var('paged') : 1; 
$sticky = get_option('sticky_posts'); 
$args = array(
    'cat' => 1, 
    'ignore_sticky_posts' => 1, 
    'post__not_in' => $sticky, 
    'paged' => $paged 
); 
$query = new WP_Query($args); 

我沒有測試,看看你是否可以通過貓一組ID喜歡'cat'=>array(1,11),但你可以測試一下,看看它是否工作。

+0

嗨,非常感謝,我一直認爲查詢接受數組格式的'id'。它實際上只是一個逗號分隔的字符串。 – hrsetyono

相關問題