2017-05-30 171 views
0

我有一個小問題!我想混合兩個查詢的結果!我希望他們按日期順序混合!Wordpress混合兩個查詢的結果

隨着實際的查詢,他們一個接一個地顯示。

有沒有人得到解決方案?

<?php 

$loop = new WP_Query(array (
    'post_type' => array('videos','photos'), 
    'category_name' => 'une', 
)); 

while($loop->have_posts()) : $loop->the_post(); ?> 

<?php the_title(); ?> 

<?php endwhile; ?> 

<?php 

$loop = new WP_Query(array (
    'post_type' => array('spectacles'), 
    'category_name' => 'une-en', 
)); 

while($loop->have_posts()) : $loop->the_post(); ?> 


<?php the_title(); ?> 

<?php endwhile; ?> 
+0

你可能嘗試[wordpress.stackexchange.com](https://wordpress.stackexchange.com/questions/135820/merge-2-args-in-one-wp-query-and-order-it-by-date)。 – showdev

+0

謝謝@showdev我找到了解決方案! –

回答

0

您是否試過將查詢合併爲一個而不是兩個?所以你只有一個查詢,這是

$loop = new WP_Query(array (
    'post_type' => array('spectacles', 'videos', 'photos'), 
    'category__in' => array(1, 2), // IDs of the categories 
    'orderby'  => 'date' 
)); 

編輯:

如果這並不如你所提到的類別,則可以使用此解決方法:

$ids_a = new WP_Query(array (
    'post_type' => array('videos','photos'), 
    'category_name' => 'une', 
    'fields' => 'ids' 
)); 

$ids_b = new WP_Query(array (
    'post_type' => array('spectacles'), 
    'category_name' => 'une-en', 
    'fields' => 'ids' 
)); 

$ids = array_merge($ids_a, $ids_b); 

$loop = new WP_Query(array (
    'post__in' => $ids, 
    'orderby' => 'date' 
)); 
+0

感謝您的回答,但它不起作用,因爲它還顯示來自類別une-en的post_type視頻!我想從特定的post_type顯示特定的類別! –

+0

您是否爲每個帖子類型創建了具有相同名稱的類別,或者它們是否都與相同的一組類別相關聯?如果您的類別具有相同的名稱,則可以使用該ID來區分它們(我的文章中的代碼)。但是,如果您只有一組類別,我們需要另一種解決方案 – Spliid

+0

它們不在同一組中!他們在兩個不同的部分,一個用法語'une',一個用英語'une-en'!也許我的系統構建不好... :( –