Wordpress - 显示侧栏小部件中除当前帖子之外的所有帖子的预览

时间:2010-08-15 01:06:01

标签: wordpress widget

我有4个属于“新闻”类别的帖子。我在single.php中添加了一个代码,以显示侧栏中同一类别中其他帖子的标题。

<?php
    $query = "showposts=10&orderby=rand&cat=";      
    foreach((get_the_category()) as $category) { 
    $query .= $category->cat_ID .","; 
    }       
    query_posts($query);
?>
<ul class="related grid_5">
    <?php while (have_posts()) : the_post(); ?>
        <li><?php the_title() ?></li>
     <?php endwhile; ?>      
</ul>

使用此我可以检索相同类别中的所有帖子并显示它们,并且小部件中显示属于“新闻”的所有4个标题。但是我在第3篇文章中怎么只能在小部件中显示#1,#2和#4标题?

1 个答案:

答案 0 :(得分:4)

如果您捕获了当前显示的帖子的ID,则可以添加条件检查以避免在while循环中显示它。

<强> 1。获取当前帖子的ID

我假设你已经在圈内,因为你在侧边栏中,所以你可以像这样得到当前的帖子ID:

global $wp_query;
$currentPost = $wp_query->post->ID;

但是,如果您处于循环中,则以下内容将起作用:

global $post;
$currentPost = $post->ID;

<强> 2。跳过当前帖子标题的打印

获得当前帖子的ID后,跳过打印非常简单:

<ul class="related grid_5">
    <?php while (have_posts()) : the_post(); 
        if( $post->ID != $currentPost ) ?>
            <li><?php the_title() ?></li>
    <?php endwhile; ?>      
</ul>