我有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标题?
答案 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>