Single.php-如何在循环中标记当前页面

时间:2012-11-01 作者:Iladarsda

我正在上使用以下循环index.php.
当前查看的页面将是循环中的链接之一
How to make sure it is marked as current?

<ul id="questions" class="subpage">
      <?php 

          $index_query = new WP_Query( array( \'post_type\' => \'faq\', \'orderby\' => \'modified\', \'posts_per_page\' => \'-1\', \'order\' => \'DESC\' ) );
          while ( $index_query->have_posts() ) : $index_query->the_post();

        ?>
      <li><a href="<?php the_permalink(); ?>"><?php echo get_field(\'short_version\'); ?> &raquo;</a></li>
      <?php endwhile; ?>
    </ul>
get_field() 是来自的函数Advanced Custom Fields 并具有以下格式:

get_field($field_name, $post_id);

2 个回复
最合适的回答,由SO网友:Mridul Aggarwal 整理而成

这是您的代码的重写版本

<ul id="questions" class="subpage">
<?php 
$current_id = get_the_ID();

$index_query = new WP_Query( array( \'post_type\' => \'faq\', \'orderby\' => \'modified\', \'posts_per_page\' => \'-1\', \'order\' => \'DESC\' ) );
while ( $index_query->have_posts() ) : $index_query->the_post();
    if(get_the_ID() == $current_id)
        echo \'this post has the same ID as the current global one\';
    ?>
    <li><a href="<?php the_permalink(); ?>"><?php echo get_field(\'short_version\'); ?> &raquo;</a></li>
<?php endwhile; ?>
</ul>
请注意,在索引上。php您可以查询单个帖子类型以及归档文件(取决于主题)。如果是存档,则仅与该存档的第一篇文章匹配。如果要匹配其他类型的模板,请参阅conditional tags

SO网友:s_ha_dum

single.php 第页您应该有$post 对象,该对象由WordPress为这些页面创建。$post->ID 是“当前”页的ID。将该数字与循环中的ID进行比较。如果它们与您发布的“标记”匹配。

请注意:您可能需要保存$post 到另一个变量,以避免在运行循环时对其进行重击,或使用$posts[0] 而不是$post.

结束

相关推荐

trouble with my loop

我正在尝试从我的博客页面中排除类别。我已经把代码都设置好了,根据法典,这应该行得通 $string = \'-\' . implode( \',-\', explode( \' \', $data[\'exclude_categories\'] ) ); 测试时,上述行会将其打印到屏幕上-主页-最新新闻这是我试图从博客页面中删除的两个测试类别。然后我像这样开始我的查询 <?php query_posts($query_string . \'&cat=\' . $string);?