整理W3Cshare的网站地图的时候,想显示wordpress标签下的所有文章,因为我当初没有新建wordpress这个分类目录,所以只能用标签获取。
用wordpress默认的get_tags()获取函数可以实现,实现方法如下:
<?php
// 得到所有标签列表(57为标签id,想获取某个标签只需添加进去用逗号隔开,如'include' => '13,57')
$args=array(
'include' => '57'
);
$tags = get_tags($args);
// 循环所有标签
foreach ($tags as $tag) {
// 得到标签ID
$tagid = $tag->term_id;
// 得到标签下所有文章
query_posts("showposts=-1&tag_id=$tagid");
?>
<!-- 输出标签标题及链接 -->
<h2>标签: <a href="<?php echo get_tag_link($tagid);?>" title="<?php echo $tag->name?>"><?php echo $tag->name; ?></a></h2>
<!-- 输出所有文章的标题及链接 -->
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php } ?>
效果如下图:
以上方法貌似有时候会出问题,会显示出文章全文来,科科网络又找了段代码,完美实现,如下:
方法二:
<?php
$args=array(
'tag_id' => 3,
'posts_per_page' => 5,
);
query_posts($args);
if(have_posts()) : while (have_posts()) : the_post();
?>
<li>
<a target="_blank" rel="nofollow" href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <?php the_title(); ?></a>
</li>
<?php endwhile; endif; wp_reset_query();?>
效果如下: