WordPress侧边栏:将自定义循环显示帖子与单个帖子放在同一类别中,从列表中排除当前的单个帖子

时间:2011-03-14 13:14:39

标签: php loops wordpress

这是从侧边栏设置为显示与正在查看的当前单个帖子相同类别的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>

2 个答案:

答案 0 :(得分:1)

希望这个答案不会太晚。戴夫,侧边栏中的代码只有一个小错误:

在显示&post__not_in=的行中,单词postnot之间还有一个下划线。

删除它,它会起作用。

感谢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); 
?> 
...