所以这是我的代码,它的工作是从帖子类型调用标题。所以对于这个样本,它调用这样的标题
标题I
标题II
标题II
这个列表也是链接,如果我点击" Title II"它重定向到正确的单页,但我的问题是它没有突出显示当前的单页。换句话说,我想让它看起来像这样:
标题I
标题II
标题II
但是我的代码结果是这样的:
标题I
标题II
标题II
下面是我的页面中的代码,这也是我单页中的代码。
<?php $args = array(
'post_type' => 'services',
'posts_per_page' => -1
);
$the_query = new WP_Query( $args );?>
<?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<li>
<a href="<?php the_permalink()?>"><?php echo the_title(); ?></a>
</li>
<?php endwhile?>
<?php endif; wp_reset_postdata();?>
答案 0 :(得分:3)
您可能希望使用ID进行比较。请记住在循环之前获取当前ID
<?php
// Remember to get ID before the loop to have current ID
$current_post_ID = get_the_ID();
$args = array(
'post_type' => 'services',
'posts_per_page' => -1
);
$the_query = new WP_Query( $args );
?>
<?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<li>
<a <?php echo $current_post_ID === get_the_ID() ? 'class="active"' : '' ?> href="<?php the_permalink()?>"><?php echo the_title(); ?></a>
</li>
<?php endwhile?>
<?php endif; wp_reset_postdata();?>
答案 1 :(得分:1)
您需要进行测试,以查看每篇帖子的链接是否与当前页面网址匹配。
<?php
global $wp;
$current_url = home_url( $wp->request ) . '/';
$args = array(
'post_type' => 'services',
'posts_per_page' => -1
);
$the_query = new WP_Query( $args ); ?>
<?php if ( have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<li <?php if ( $current_url == get_the_permalink() ) { echo 'class="active"'; } ?>>
<a href="<?php the_permalink()?>"><?php echo the_title(); ?></a>
</li>
<?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>