我正在使用get_pages()
创建一个自定义导航,其中列出每个页面的链接、标题和缩略图。如何将“current item”类添加到与当前页面对应的项目中?
我正在使用以下代码:
<?php
$our_pages = get_pages( array( \'sort_column\' => \'menu_order\' ) );
foreach ($our_pages as $key => $page_item):
?>
<div class="menu-item">
<a href="<?php echo esc_url(get_permalink($page_item->ID)); ?>" class="menu-item-clicker"><span><?php echo $page_item->post_title ; ?></span></a>
<?php echo get_the_post_thumbnail($page_item->ID,\'full\'); ?>
</div>
<?php endforeach; ?>
下面没有显示该类,但为了说明我正在尝试做什么,下面是我尝试的条件,但没有成功:
<?php
$our_pages = get_pages( array( \'sort_column\' => \'menu_order\' ) );
foreach ($our_pages as $key => $page_item) :
if($page->ID == $page_item->ID) {
$class = \'current-item\';
}
?>
<div class="menu-item <?php echo $class; ?>">
<a href="<?php echo esc_url(get_permalink($page_item->ID)); ?>" class="menu-item-clicker"><span><?php echo $page_item->post_title ; ?></span></a>
<?php echo get_the_post_thumbnail($page_item->ID,\'full\'); ?>
</div>
<?php endforeach; ?>
期待您的意见!
最合适的回答,由SO网友:Junaid 整理而成
通过$page->ID
, 我想你是想ID
当前页面的,对吗?如果是这样,那就错了。页面本身是post type 所以你需要通过$post->ID
确保$post
可访问,否则使用get_the_ID()
返回当前帖子/页面的ID。
最终代码:
<?php
$our_pages = get_pages( array( \'sort_column\' => \'menu_order\' ) );
foreach ($our_pages as $key => $page_item) :
$class = \'\';
if($post->ID == $page_item->ID)
$class = \'current-item\';
?>
<div class="menu-item <?php echo $class; ?>">
<a href="<?php echo esc_url(get_permalink($page_item->ID)); ?>" class="menu-item-clicker">
<span><?php echo $page_item->post_title ; ?></span>
</a>
<?php echo get_the_post_thumbnail($page_item->ID,\'full\'); ?>
</div>
<?php endforeach; ?>