目前我正在使用以下代码作为Wordpress侧边栏代码的一部分(代码工作正常):
<ul class="linklist">
<?php $recentPosts = new WP_Query();
$recentPosts->query('showposts=12');
while ($recentPosts->have_posts()) : $recentPosts->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Link to <?php the_title();
?>">
<?php the_title();
?></a> </li>
<?php endwhile;?> </ul>
显示最近12篇帖子。但我正在寻找的是以下内容; 首先检查当前帖子(基于永久链接显示的帖子)所属的类别,然后仅列出属于同一类别的最新帖子。 应该编辑什么?谢谢!
答案 0 :(得分:0)
查看http://codex.wordpress.org/Function_Reference
听起来你想要get_the_category()。 (帖子可以属于多个类别)。然后你想要调用get_posts()传递类别标志和你想要的任何其他东西。
答案 1 :(得分:0)
这可能不是最短且最智能的解决方案,但如果我没有包含任何拼写错误,它应该以这种方式工作。
请注意,帖子可以有多个类别,下面的脚本只对第一个类别感兴趣。但您也可以修改脚本并为多个类别选择最近的帖子。
<?php
if (is_single()) :
$post_id = $wp_query->posts[0]->ID; // get id of post
$cats_of_post = get_the_category($post_id); // get categories by post id
$first_cat_id = $cats_of_post[0]->cat_id; // get first category id
$first_cat_name = $cats_of_post[0]->cat_name; // get category name
?>
<div id="widget-container-recent-in-category">
<div class="widget-title">
<h3>Latest posts in <?php echo $first_cat_name; ?>:</h3>
</div>
<div class="widget-content">
<ul>
<?php
global $post;
$posts_in_cat = get_posts('numberposts=5&category='.$first_cat_id);
// iterate over posts in category and output as listitem
foreach($posts_in_cat as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endforeach;
?>
</ul>
</div>
</div>
<?php
endif;
?>
答案 2 :(得分:0)
这是一个新的查询,可以在帖子或页面(启用php exec)或侧边栏中多次使用,并且不会相互冲突或主WP循环。将mycategory更改为您自己的类别名称:
<?php $my_query = new WP_Query('category_name=mycategory&showposts=12'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a>
<?php endwhile; ?>