使用get_pages和锚链接添加current_page_item类

时间:2014-06-03 16:35:24

标签: php wordpress class anchor

我正在使用以下代码使用get_pages添加锚链接,这非常有用。

<?php
if ( is_post_type_archive('archive') ) {
$args = array(
   'post_type'=> 'archive',
   'parent' => 0,
               'sort_order' => ASC,
               'sort_column' => 'menu_order'
             );
$mypages = get_pages($args);
?>
<ul class="archive-list-pages">
<?php foreach( $mypages as $page ) {
?>
<li>
   <a href="#<?php echo $page->post_name; ?>"> <?php echo $page->post_title; ?></a>
</li>

<?php
}
 ?>
 </ul>
<?php
}
?>

然而,我正在尝试添加'current_page_item'类并且无法弄清楚如何做到这一点,我已经尝试将h语句添加到href,但是无法解决我所缺少的问题。

任何帮助都非常感激。

由于

   <li>
  <a class="<?php if ($page->ID == $page->post_name) echo 'class="current_page_item"'?>" href="#<?php  echo $page->post_name; ?>"><?php echo $page->post_title; ?></a>
  </li>

更新:使用jQuery最后添加活动类。看下面的答案。

2 个答案:

答案 0 :(得分:1)

你的php if语句是否关闭

<li>
<a class="<?php if (is_page($page->ID)) echo 'class="current_page_item"'?>" href="#<?php  echo $page->post_name; ?>"><?php echo $page->post_title; ?></a>
</li>

请参阅http://codex.wordpress.org/Function_Reference/is_page

答案 1 :(得分:0)

对于其他可能有帮助的人。我使用了一些jQuery来实现这一点,最后在选择跳转链接后添加一个活动类。

$(document).ready(function() {
  $("ul.archive-list-pages a").click(function () {
  $("a").removeClass("active");
  $("a.active").removeClass("static");
  $(this).addClass("active");
});
});