Как ограничить Wordpress tagcloud по дате?

Я искал в течение долгого времени теперь для нахождения способа ограничить теги Wordpress по дате и заказать им суммой времен, они появились в выбранный период. Но я был довольно неудачен.

То, чего я пытаюсь достигнуть, является чем-то как актуальные темы в Твиттере. Но в этом случае, 'отклоняющиеся теги'. По умолчанию Wordpress tagcloud отображает самые популярные теги всего времени. Который не имеет никакого смысла в моем случае, так как я хочу отследить современные тенденции.

Идеально это было бы что-то как:

Большинство популярных тегов сегодня

  • Obama (18 упоминаний)
  • Нью-Йорк (15 упоминаний)
  • Железный человек (11 упоминаний)
  • Robin Hood (7 упоминаний)

И затем умноженный для 'самого популярного на этой неделе' и 'самый популярный в этом месяце'. Кто-либо знает о способе достигнуть этого?

6
задан Nordin 31 May 2010 в 03:40
поделиться

3 ответа

Я почти уверен, что у тегов нет отметок времени - возможно, вы могли бы выполнить поиск сообщений с определенными тегами за определенный период времени?

0
ответ дан 17 December 2019 в 18:10
поделиться

Хорошо, я думаю, что вы, вероятно, хотите сделать это, скажем, для последних 50 сообщений.

Перебрать последние n постов, извлечь term_id каждого тега для каждого поста, затем передать эту строку в include аргумент wp_tag_cloud();

$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 );
3
ответ дан 17 December 2019 в 18:10
поделиться

Я думаю, вы можете взглянуть на некоторые плагины и посмотреть, есть ли у вас плагин, подобный тому, который вам нужен

0
ответ дан 17 December 2019 в 18:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: