我有一个名为' product'的自定义帖子类型。在每个产品页面上,我希望有一个侧栏,列出所有产品。侧栏中的当前产品应加下划线。
例如,在访问产品3时,应突出显示产品3:
侧边栏
产品1
产品2
产品3
产品4
我认为解决方案可以是包含所有产品的wp菜单,然后使用.current-menu-item类来实现突出显示。但是,在创建新产品时,必须自动更新侧边栏。
以下是我列出所有产品的方式。有没有一种集成.current-menu-item功能的方法?
<?php $loop = new WP_Query( array( 'post_type' => 'product' ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; ?>
通过添加这样的类?
<a class="current-product" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
答案 0 :(得分:1)
是的,有一种简单的方法可以实现这一目标。
以下是修改版本的代码:
<?php
// get the current product ID
$current_post_id = get_the_ID();
$loop = new WP_Query( array( 'post_type' => 'product' ) );
while ( $loop->have_posts() ) {
$loop->the_post();
?>
<a href="<?php the_permalink(); ?>" <?php echo get_the_ID() == $current_post_id ? 'class="current-product"' : ''; ?>><?php the_title(); ?></a>
<?php
}
?>
这里我们基本上将当前产品的ID保存在变量中,然后对于列表中的每个产品,我们检查循环产品ID是否等于当前产品ID。如果是,我们会显示class="current-product"
属性。