我正在尝试在我的wordpress网站上创建第二个导航菜单。
我希望此功能仅显示当前类别中所有帖子的链接。
我一直在尝试使用get_posts函数,但我很难找到如何动态选择当前类别。即在这里放置什么 category = x
非常感谢任何帮助
这是我一直在使用的模板代码
<ul id="catnav">
<?php
global $post;
$myposts = get_posts('numberposts=5&category=1');
foreach($myposts as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
答案 0 :(得分:8)
最后用这里的代码解决了它:http://www.snilesh.com/resources/wordpress/wordpress-recent-posts-from-current-same-category/
修改它以包括当前页面和列表升序
<ul id="catnav">
<?php
global $post;
$category = get_the_category($post->ID);
$category = $category[0]->cat_ID;
$myposts = get_posts(array('numberposts' => 5, 'offset' => 0, 'category__in' => array($category), 'post_status'=>'publish', 'order'=>'ASC' ));
foreach($myposts as $post) :
setup_postdata($post);
?>
<li>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?></a>
</li>
<?php endforeach; ?>
<?php wp_reset_query(); ?>
<li><a href="?p=46">Why Us?</a></li>
</ul>
答案 1 :(得分:4)
<!--Insted Of this-->
$myposts = get_posts('numberposts=5&category=1');
<!--Use This-->
$cat_ID = get_query_var('cat');
query_posts('cat='.$cat_ID.'&showposts=5&order=ASC');
答案 2 :(得分:2)
$args=array(
'cat' => get_query_var('cat'),
'orderby' => 'title',
'order' => 'ASC',
'posts_per_page'=>-1,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
它对我有用!
答案 3 :(得分:0)
所以我发现这段代码非常适合显示当前类别中的所有帖子。
<ul id="catnav">
<?php
foreach( ( get_the_category() ) as $category ) {
$the_query = new WP_Query('category_name=' . $category->category_nicename . '&showposts=5&order=ASC');
while ($the_query->have_posts()) : $the_query->the_post();
?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; ?>
<?php
}
?>
</ul>
但是我想要排除几个类别。 有些帖子存在于我想要排除的两个类别中,显示了类别8,9和11中的帖子。
有什么想法吗?
答案 4 :(得分:0)
我认为从类别ID而不是类别名称获取帖子会更好 这样你就可以写一个if else条件,你可以排除id为8,9,11
的帖子