从选定的帖子中获取前x个标签

时间:2013-05-11 作者:Andy

我需要这方面的帮助,情况是我想从用户帖子中获得前X个标签。例如,用户A写了50篇文章,我想显示该用户文章中的前5个标签,这是为了显示用户的兴趣。

第二件重要的事是我已经选择了帖子ID$pids=阵列(123345323456789);

非常感谢。

我在这里找到了有趣的代码,但只是按日期:Display list of most used tags in the last 30 days

1 个回复
最合适的回答,由SO网友:Ralf912 整理而成

使用包含post ID的数组很容易

$post_ids = array( 167, 774, 787, 358 );
$tag_all  = array();

foreach ( $post_ids as $post_id ) {
    $tags = wp_get_post_tags( $post_id, array() );
    foreach ( $tags as $tag )
        array_push( $tag_all, $tag->name );
}

$result = array_count_values($tag_all);
arsort( $result );
$result = array_slice( $result, 0, 5 );

echo \'<ol>\';
foreach ( $result as $tag => $count ) {
    printf( \'<li>%s (%d)</li>\', $tag, $count );
}
echo \'</ol>\';
浏览帖子ID,获取每个帖子的标签。将标记添加到结果数组($tag_all). 然后计算数值(array_count_values()), 这将为您提供一个key => value (key = 标签value= 计数)。现在只需对结果数组进行排序(arsort()) 获取前5个元素(array_slice()).<创建一个漂亮的输出并完成。

结束

相关推荐

Tags Sorted By Characters?

如果我在一篇文章中放置了多个标签,那么在发布文章后,所有标签都会按字符序列自动排列,比如B C D。。。任何想法,如果我希望有所有的标签将不会排序或按字符序列排列。。。。所以,第一个标签将是第一个,最后一个标签将放置在最后。。。尽管第一个标记可能以Z开头,最后一个标记以A开头。。那么,我所说的保持标签序列静态的方法是什么呢?