我有一个自定义的帖子类型,名为:“电影”
我在网站的“我的电影”部分中只有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问题是,与WordPress自定义菜单不同,没有自动生成“当前菜单项”或其他类。
有什么线索我可以做到这一点吗?
最合适的回答,由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
不会在这些页面上返回相同类型的数据。根据您的实现,您可能需要修改代码。