2014-02-19 59 views
0

我有一個term_id數組。獲取wordpress中的數組的帖子ID

$termID = array(165,166,158,157); 

我希望得到他們有所有元素數組帖子ID(獲取,他們在與term_id 165166158157的所有類別的所有帖子)。 我的分類名稱是newcat。

我寫道:

SELECT r.object_id 
FROM wp_term_relationships r 
LEFT JOIN wp_term_taxonomy t ON r.term_taxonomy_id = t.term_taxonomy_id 
WHERE t.term_id IN (165,166,158,157) 
GROUP BY r.object_id 

,但我得到的object_id自己有這個陣列中的一個或多個元素。

回答

0

可以使用get_posts代替人工SQL查詢:

$post_ids = get_posts(array(
    'numberposts' => -1, // get all posts. 
    'tax_query'  => array(
     array(
      'taxonomy' => 'category', 
      'field'  => 'id', 
      'terms'  => array(165,166,158,157), 
     ), 
    ), 
    'fields'  => 'ids', // Only get post IDs 
)); 

沒有試過,但還沒有給它一個嘗試:

$post_ids = get_posts(array(
     'numberposts' => -1, // get all posts. 
     'relation' => 'AND' 
     'tax_query'  => array(
      array(
       'taxonomy' => 'category', 
       'field'  => 'id', 
       'terms'  => array(165), 
      ), 
      array(
       'taxonomy' => 'category', 
       'field'  => 'id', 
       'terms'  => array(166), 
      ), 
      array(
       'taxonomy' => 'category', 
       'field'  => 'id', 
       'terms'  => array(158), 
      ), 
      array(
       'taxonomy' => 'category', 
       'field'  => 'id', 
       'terms'  => array(157), 
      ), 
     ), 
     'fields'  => 'ids', // Only get post IDs 
    )); 

http://codex.wordpress.org/Template_Tags/get_posts

乾杯!

+0

謝謝,但結果是一樣的。我得到所有帖子,他們至少有一個數字165,166,158,157。我想獲得他們擁有所有這些類別的帖子的ID。 – user2969404

+0

我編輯了答案,隨時嘗試讓我知道它是否有效。謝謝 –

0

我想你正在尋找一種方法來查詢這個數據庫?如果是這樣的:

SELECT * FROM categories WHERE newcat IN(165,166,158,157) 

我不是很在WP expirienced,但你會趕上漂移。

+0

它不工作。 – user2969404

+0

天空是藍色的。我需要比這更多的信息.​​..並且可以自己嘗試一些東西。 – Martijn

相關問題