2015-05-18 2 views
1

Я пытаюсь создать массив, содержащий все страницы сайта, которые имеют как категорию big, так и insect.Получить сообщения, которые имеют обе категории

В настоящее время он выглядит так

<?php 
$argsposts = array(
    'category_name' => 'big' 
); 
$posts = get_posts($argsposts); 
?> 

И он успешно получает все сообщения с категорией big однако я хотел бы, чтобы обновить его, чтобы получить только посты с категорией big, если они также имеют категорию insect.

+0

Я всегда более намереваюсь использовать 'tax_query' для обработки нескольких интервалов или таксономии. У вас больше контроля с помощью 'tax_query', чем с параметрами категории –

ответ

0

Попробуйте это:

$big_cat = get_category_by_slug('big'); 
$insect_cat = get_category_by_slug('insect'); 
$argsposts = array(
    'category__and' => array($big_cat->term_id, $insect_cat->term_id) 
); 
$posts = get_posts($argsposts); 
+0

Это неэффективно, и вам следует избегать его, если это возможно. –

+0

Я только что видел ответ Мевлия, он кажется более эффективным. Не думал, что это было бы возможно. – vard

1

Вы можете использовать следующее:

$query = new WP_Query('category_name=big+insect'); 

Это right in the docs.

Показать сообщения, которые имеют «все» этих категорий.

Смежные вопросы