将 active class 添加到菜单项 - 不是用 wordpress 创建的菜单,自定义菜单

Add active class to the menu item - not menu created with wordpress, custom menu

我有一个用这段代码创建的菜单

                   <?php
                      $pages = get_pages('child_of= 8&sort_column=post_date&sort_order=asc&parent=8');
                      foreach($pages as $page) {  
                    ?>
                     <li><a href="<?php $permalink = get_permalink($page->ID);
                        echo $permalink ; ?>"><?php echo $page->post_title ?></a></li>
                    <?php } ?>

有了这个,我得到了 Main about Page 的子页面。我需要根据我所在的页面(使用上面的代码创建的菜单)在此项目中添加活动 class。

您需要在 class=''

中使用以下行

If(get_the_ID()==$page->ID) echo 'class="active"';

将此添加到您的 <li>(或 <a>,如您所愿)标签中:

<?php if ( get_the_ID() == $page->ID ) echo ' class="active"'; ?>

您只需使用 is_page() 来测试用户是否访问了您菜单中的活动页面即可:

 <?php
 $pages = get_pages('child_of= 8&sort_column=post_date&sort_order=asc&parent=8');

 foreach ( $pages as $page ) {
    if ( is_page( $page->ID ) ) {
        $active = 'class="active"';
    } else {
        $active = '';
    }
    echo '<li '.$active.'><a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a></li>';
 }
 ?>