2009-06-18 28 views
7

मैं एक WordPress साइट एक पृष्ठ पर छह सूचियों, प्रत्येक एक अलग श्रेणी से पोस्ट दिखाने सूची है कि बनाने के लिए कोशिश कर रहा हूँ टैग और फिर श्रेणी के द्वारा फ़िल्टर किए गए पोस्ट की एक सूची का निर्माण किया। सरल।वर्डप्रेस -

लेकिन फिर, यदि कोई उपयोगकर्ता टैग टैग का चयन करता है, तो उन्हें टैग टैग पेज पर ले जाता है, मैं चाहता हूं कि वे अभी भी छः-सूची टेम्पलेट देखें, लेकिन प्रत्येक श्रेणी के भीतर सभी पोस्ट टैग द्वारा फ़िल्टर किए जाते हैं। तो पदों की सूची पहले टैग द्वारा फ़िल्टर की जाती है, और फिर श्रेणी के द्वारा फ़िल्टर की जाती है।

जहां तक ​​मेरा बता सकते हैं, वहाँ query_posts या कुछ भी का उपयोग कर ऐसा करने का कोई रास्ता नहीं है, यह डेटाबेस के और अधिक उन्नत उपयोग की जरूरत है, लेकिन मैं पता नहीं कैसे यह करने के लिए है! मुझे लगता है कि यहां एक समान सवाल है, लेकिन क्योंकि मुझे बहुत कम PHP और कोई MySQL पता नहीं है, मैं जवाबों को समझ नहीं सकता!

उत्तर

5

ठीक है, मैं अंत में यह करने के लिए एक अपेक्षाकृत सरल समाधान मिल गया है।

वर्डप्रेस में एक श्रेणी है जो वर्ड और टैग दोनों कामों की क्वेरी को रोकती है, इसलिए query_posts('cat=2&tag=bread'); काम नहीं करेगा, लेकिन इसके आसपास एक रास्ता query_posts('cat=2&tag=bread+tag=bread'); है जो जादुई रूप से काम करता है।

एक tag.php टेम्पलेट में, मैं यह है कि संग्रह से टैग लेने के लिए चाहता था, इसलिए मैं यह करने के लिए किया था:

<?php query_posts('cat=12&tag='.$_GET['tag'].'+'.$_GET['tag']); ?> 

जो पूरी तरह से काम करता है।

0

the Wordpress API के अनुसार, आप query_posts पर कॉल के भीतर टैग द्वारा फ़िल्टर कर सकते हैं।

उदाहरण:

query_posts('tag=cooking'); 

query_posts('tag=bread,baking'); 

query_posts('tag=bread+baking+recipe'); 
+0

दुर्भाग्य से इस क्वेरी एक वर्ग को पार कर जाएगी, और आप इसे एक टैग के भीतर श्रेणी के द्वारा फिल्टर करने के लिए उपयोग नहीं कर सकते, यह केवल उस श्रेणी के साथ सभी पोस्ट को टैग के भीतर सभी पोस्ट दिखाई देगा। –

+0

टैग में फ़िल्टर किए गए पदों की एक सरणी प्राप्त करने के लिए आप आरंभ में get_query को कॉल कर सकते हैं। फिर इसे दोहराएं और मैन्युअल रूप से छः श्रेणियों में से प्रत्येक के लिए एक सरणी में पोस्ट आवंटित करें। –

+0

यह सही चीज़ की तरह लगता है, लेकिन मैं कोई PHPer नहीं हूं, इसलिए मुझे नहीं पता कि यह कैसे करें! –

2

इस कोड का प्रयास करें:

query_posts('tag=selected_tag'); 

while (have_posts()) : the_post(); 


    foreach((get_the_category()) as $category) 
     { 

     if ($category->cat_name == 'selected_category') 
      { 
      // output any needed post info, for example: 
      echo the_title(); 
      } 

     } 


endwhile; 
+0

कोई त्रुटि या कुछ भी नहीं, अभी कुछ भी उत्पादित नहीं किया गया है: एस –

+0

आपने 'select_tag' और 'select_category' को अपने मूल्यों से बदल दिया है, है ना? 8) यह कोड वर्डप्रेस टेम्पलेट में रखने और प्रत्येक पृष्ठ के लिए उनमें से 6 को बनाने के लिए उपयोगी हो सकता है। – Wiseman

+0

मैंने उन दोनों चीजों को किया था :) –