这是从侧边栏设置为显示与正在查看的当前单个帖子相同类别的10个最近帖子。不幸的是,它还包括列表中当前单个帖子的标题和摘录。
有谁知道如何更改它以便排除当前的单个帖子?除此之外,它运作良好。
<?php
$query = "showposts=10&orderby=date&cat=";
foreach((get_the_category()) as $category)
{
$query .= $category->cat_ID .",";
}
query_posts($query);
?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title() ?></a>
<?php the_excerpt(); ?>
</li>
<?php endwhile; ?>
</ul>
答案 0 :(得分:1)
希望这个答案不会太晚。戴夫,侧边栏中的代码只有一个小错误:
在显示&post__not_in=
的行中,单词post
和not
之间还有一个下划线。
删除它,它会起作用。
感谢Poelinca提供的代码段。
答案 1 :(得分:0)
在您的主要查询中(来自您的查询是single.php文件):
<?php global $mainPostID; $mainPostID = get_the_id(); ?>
然后你的侧边栏代码会变成这样:
<?php
$query = "showposts=10&orderby=date&cat=";
foreach((get_the_category()) as $category) {
$query .= $category->cat_ID .",";
}
#magic happens here
global $mainPostID;
if ( !empty($mainPostID) && is_single() )
$query .= "&post__not_in=" . $mainPostID;
query_posts($query);
?>
...