在自定义帖子类型内时突出显示当前帖子类型

时间:2013-10-26 作者:gil hamer

我有一个自定义的帖子类型,名为:“电影”
我在网站的“我的电影”部分中只有4部电影
在每个电影帖子类型中,我想在侧列表中显示所有其他电影,如下所示:

电影1、电影2、电影3、电影4,因此用户可以从每个电影页面导航到所有其他电影。

我使用此代码显示所有“电影”帖子类型的列表:

<ul>
<?php $loop = new WP_Query( array( \'post_type\' => \'movie\', \'posts_per_page\' => 4, \'order\'=>\'ASC\' ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <li>
    <?php the_title( \'<a href="\' . get_permalink() . \'" title="\' . the_title_attribute( \'echo=0\' ) . \'">\', \'</a>\' ); ?>
    </li>
    <?php endwhile; ?>
</ul>
到目前为止,它非常简单且有效。

我还想添加一个"current" 为列表中与我当前阅读的帖子相对应的每个项目初始化。例如,如果我在电影3中,我会看到:

电影1电影2movie 3

有什么线索我可以做到这一点吗?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

我假设您的代码位于“单个”post/cpt页面上。

echo \'<ul>\';
  $loop = new WP_Query( array( \'post_type\' => \'post\', \'posts_per_page\' => 4, \'order\'=>\'ASC\' ) );
  $obj = get_queried_object();
  $thispage = $obj->ID;
  while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <li><?php 
      if ($thispage === $post->ID) {
        $class = \' class="current-item"\';
      } else {
        $class = \'\';
      }
      the_title( 
        \'<a href="\' . get_permalink() . \'" title="\' . the_title_attribute( \'echo=0\' ). \'"\' . $class.\' >\', 
        \'</a>\' 
      ); ?>
    </li><?php 
  endwhile;
echo \'</ul>\';
您要使用get_queried_object 要获取有关您所在页面的数据并将ID与循环中的项目进行比较,请在匹配的情况下添加类属性。这在存档页上无法正常工作,因为get_queried_object 不会在这些页面上返回相同类型的数据。根据您的实现,您可能需要修改代码。

结束

相关推荐

List repeating share links

我想在我的帖子中添加社交共享按钮,但我不想在我的所有内容文件中添加那么多代码。我想创建一个函数,然后将函数名添加到我的模板文件中,如下所示:function pietergoosen_sosiale_netwerk_deel_knoppies() { <strong>Deel die pos met ander</strong><p </p> <a href=\"http://www.facebook.com/sha