Aynı sorunu tökezledim ve bir MySQL isteği yaparak çözdüm.
kısaca: get_post ($ args), size = Kategorim VEYA tag = MyTag kategorisine sahip gönderiler döndürür.
Ne istediğiniz değiştirmektir OR için VE .
mantığım bir MySQL Sorgusu ile düz gitmekti:
- Sorgu 1 = MyCat kategorisine sahip tüm gönderileri seçin
- Sorgu 2 = MyTag etiketine sahip tüm yayınları seçin
- Son olarak: Sorgu 1 VE Sorgu 2'deki tüm yayınları seçin.
Kullandığım wpdb ) (query_post yerine;
Biraz kod (MyCat kategorisi ve MyTag etiketi ile yayınlanan yayınları döndürme) :
$query_byTag="
SELECT wp_posts.ID
FROM wp_posts, wp_term_relationships, wp_terms
WHERE wp_posts.ID = wp_term_relationships.object_id
AND wp_terms.term_id = wp_term_relationships.term_taxonomy_id
AND wp_terms.name = 'MyTag'";
$query_byCat="
SELECT wp_posts.ID
FROM wp_posts, wp_term_relationships, wp_terms
WHERE wp_posts.ID = wp_term_relationships.object_id
AND wp_terms.term_id = wp_term_relationships.term_taxonomy_id
AND wp_terms.name = 'MyCat'";
$query ="
SELECT wp_posts.post_title AS title ,
wp_posts.post_content AS content,
wp_posts.post_date AS blogdate
FROM wp_posts
WHERE wp_posts.post_status = 'publish'
AND wp_posts.ID IN (".$query_byTag.")
AND wp_posts.ID IN (".$query_byCat.")
ORDER BY wp_posts.post_date DESC ";
$result= $wpdb->get_results($query);
Bu kirli bir yol ama umarım yardımcı olur =)