0

I'm getting the most used tags in the 1 day interval and everything works fine but how do I add the limitation to get tags with at least 5 posts and order them by counting?

Actual code:

$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 1 DAY) <= $wpdb->posts.post_date"            
);

$tags = get_tags(array(
    'orderby' => 'count',
    'order'   => 'DESC',
    'number'  => 10,
    'include' => $term_ids,
));

foreach ( (array) $tags as $tag ) {
    echo '<li><a href="' . get_tag_link ($tag->term_id) . '" rel="tag">' . $tag->name . '</a></li>';
}

Thanks in advance!

0

I found a solution!:

$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 1 DAY) <= $wpdb->posts.post_date"            
);

$tags = get_tags(array(
    'orderby' => 'count',
    'order'   => 'DESC',
    'number'  => '10', // <-- maximum number of tags
    'include' => $term_ids,
    'fields'  => 'ids'
));

foreach($tags as $tag) {                
    $term = get_term_by('id', $tag, 'post_tag');
    if ($term->count < 5) { // <-- minimum number of posts              
        $index = array_search($term->term_id, $tags);
        unset($tags[$index]);                   
    }               
}

foreach ( (array) $tags as $tag_result ) {
    $term = get_term_by('id', $tag_result, 'post_tag');
    echo '<li><a href="' . get_tag_link ($term->term_id) . '" rel="tag">' . $term->name . '</a></li>';
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.