मैं इसी मुद्दे में ठोकर खाई और एक MySQL अनुरोध करके इसे हल किया।
संक्षेप में: get_post ($ args) आपको वे पोस्ट लौटाएगा जिनके पास श्रेणी = MyCategory या टैग = MyTag है।
आप जो चाहते हैं, वह अपने OR को AND में बदल देना है ।
मेरा तर्क एक MySQL क्वेरी के साथ सीधे जाना था:
- प्रश्न 1 = उन सभी पदों का चयन करें जिनके पास श्रेणी MyCat है
- क्वेरी 2 = उन सभी पदों का चयन करें जिनके पास MyTag टैग है
- अंतिम रूप से: उन सभी पदों का चयन करें जो क्वेरी 1 और क्वेरी 2 में हैं।
मैंने query_post () के बजाय wpdb का उपयोग किया ;
थोड़ा कोड (श्रेणी MyCat और टैग MyTag के साथ प्रकाशित पोस्ट लौटना) :
$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);
यह करने के लिए एक गंदा तरीका है, लेकिन मुझे आशा है कि यह मदद करता है =)