2010-05-31 8 views
6

मैं अब तक कुछ समय से WordPress टैग को सीमित करने का तरीका ढूंढने के लिए खोज रहा हूं और उन्हें चयनित समय सीमा में कितनी बार दिखाई देता हूं। लेकिन मैं बल्कि असफल रहा हूँ।तिथि तक वर्डप्रेस टैगक्लाउड को कैसे सीमित करें?

जो मैं हासिल करने की कोशिश कर रहा हूं वह ट्विटर पर रुझान वाले विषयों की तरह कुछ है। लेकिन इस मामले में, 'ट्रेंडिंग टैग'। डिफ़ॉल्ट रूप से वर्डप्रेस टैगक्लाउड हर समय के सबसे लोकप्रिय टैग प्रदर्शित करता है। जो मेरे मामले में कोई समझ नहीं आता है, क्योंकि मैं वर्तमान रुझानों को ट्रैक करना चाहता हूं।

आदर्श रूप में इसे कुछ इस तरह होगा: आज की

सबसे लोकप्रिय टैग

  • ओबामा (18 का उल्लेख है)
  • न्यूयॉर्क (15 का उल्लेख है)
  • आयरन मैन (11 का उल्लेख है)
  • रॉबिन हुड (7 उल्लेख)

और फिर 'इस सप्ताह सबसे लोकप्रिय' और 'इस महीने सबसे लोकप्रिय' के लिए गुणा किया। क्या किसी को यह हासिल करने के तरीके के बारे में पता है?

उत्तर

0

मुझे पूरा यकीन है कि टैग में टाइमस्टैम्प नहीं हैं - शायद आप एक निश्चित समय-सारिणी के लिए विशिष्ट टैग वाले पदों की खोज कर सकते हैं?

+0

उनके पास वास्तव में टाइमस्टैम्प नहीं हैं। हालांकि चूंकि वे पदों से संबंधित हैं, और पदों में टाइमस्टैम्प है, मेरा विचार था कि उन टाइमस्टैम्प को पुनर्प्राप्त करना संभव होना चाहिए। आपका जवाब मुझे सोच रहा था हालांकि। क्या टैग में टाइमस्टैम्प टेबल जोड़ने के लिए सबसे आसान नहीं होगा? – Nordin

3

ठीक है, तो मुझे लगता है कि आप शायद यह चाहते हैं कि यह आखिरी 50 पदों के लिए ऐसा करना है।

पिछले n से भी अधिक पोस्ट लूप प्रत्येक पोस्ट के लिए प्रत्येक टैग के term_id निकालने, तो wp_tag_cloud() की include बहस में कि स्ट्रिंग पारित;

$how_many_posts = 50; 
$args = array(
    'posts_per_page' => $how_many_posts, 
    'orderby' => 'date', 
    'order' => 'DESC', 
); 
// get the last $how_many_posts, which we will loop over 
// and gather the tags of 
query_posts($args); 
// 
$temp_ids = array(); 
while (have_posts()) : the_post(); 
    // get tags for each post 
    $posttags = get_the_tags(); 
    if ($posttags) { 
     foreach($posttags as $tag) { 
      // store each tag id value 
      $temp_ids[] = $tag->term_id; 
     } 
    } 
endwhile; 
// we're done with that loop, so we need to reset the query now 
wp_reset_query(); 
$id_string = implode(',', array_unique($temp_ids)); 
// These are the params I use, you'll want to adjust the args 
// to suit the look you want  
$args = array(
    'smallest' => 10, 
    'largest' => 30, 
    'unit'  => 'px', 
    'number' => 150, 
    'format' => 'flat', 
    'separator' => "\n", 
    'orderby' => 'count', 
    'order'  => 'DESC', 
    'include' => $id_string, // only include stored ids 
    'link'  => 'view', 
    'echo'  => true, 

); 
wp_tag_cloud($args); 
+0

शायद यह करने का एकमात्र तरीका यह है कि टैग कैसे संग्रहीत किए जाते हैं, लेकिन पोस्ट की संख्या बढ़ने के साथ वास्तव में धीमी हो जाएगी ... – Kasumi

+0

धन्यवाद! अर्धविराम के साथ "$ posttags = get_the_tags()" पंक्ति को समाप्त करना सुनिश्चित करें। मुझे यह निष्पादन योग्य PHP विजेट और के साथ पूरी चीज़ के आसपास काम कर रहा है। उदाहरण: http://www.priestessastrology.com/ – Zade

+0

@Zade मैंने अर्धविराम जोड़ा है। एक बार आपके पास अनुमतियों के लिए पर्याप्त कर्म होने के बाद स्टैक ओवरफ़्लो पर सिंटैक्स त्रुटियों के साथ उत्तरों को संपादित करने के लिए स्वतंत्र महसूस करें! – artlung

0

मुझे लगता है कि आप प्लग इन में से कुछ को देखो और अगर अपने आपको क्या चाहिए की तरह एक प्लगइन देख सकते हैं

0

यो ताकि आप एक बनाने के लिए की जरूरत नहीं है एक प्रश्न के साथ टैग सूची प्राप्त कर सकते हैं लूप पिछले एक्स पोस्ट फेंक देते हैं।

<ul id="footer-tags"> 
<?php $wpdb->show_errors(); ?> 
<?php 
global $wpdb; 
$term_ids = $wpdb->get_col(" 
    SELECT term_id FROM $wpdb->term_taxonomy 
    INNER JOIN $wpdb->term_relationships ON $wpdb->term_taxonomy.term_taxonomy_id=$wpdb->term_relationships.term_taxonomy_id 
    INNER JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->term_relationships.object_id 
    WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= $wpdb->posts.post_date"); 

if(count($term_ids) > 0){ 

    $tags = get_tags(array(
    'orderby' => 'count', 
    'order' => 'DESC', 
    'number' => 28, 
    'include' => $term_ids, 
)); 
foreach ((array) $tags as $tag) { 
echo '<li><a href="' . get_tag_link ($tag->term_id) . '" rel="tag">' . $tag->name . '</a></li>'; 
} 
} 
?> 
</ul> 
संबंधित मुद्दे