【问题标题】:Adding current_page_item class using get_pages and anchor links使用 get_pages 和锚链接添加 current_page_item 类
【发布时间】:2014-06-03 16:35:24
【问题描述】:

我正在使用以下代码使用 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”类,但不知道该怎么做,我尝试向 href 添加一个 if 语句,如下所示,但无法弄清楚我缺少什么。

非常感谢任何帮助。

谢谢

   <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 添加活动类。请看下面我的回答。

【问题讨论】:

  • 不确定您要使用 if 语句实现什么目标。 ID 是数字,post_name 是字符串,所以本质上,您正在评估 if ( 47 == 'My 47th Post Title')。除非你的帖子标题是'47',否则它会是假的。
  • 我正在尝试定位 $page->post_name 以便在单击锚链接时添加“当前”类。
  • 对不起。你最后的评论毫无意义。
  • @leanda 您希望在哪个页面添加class=current?在哪些链接上?所有链接?或者你点击的链接?什么时候?我想你不确定你想要什么。如果您单击一个链接,您将不再在该页面上,而是转到另一个页面,并且该链接不再存在,因为您有一个新页面
  • 好的,如果我不清楚,抱歉。我有一个页面,其中包含使用上面的代码构建的菜单,该菜单从自定义帖子类型获取父页面,并使用跳转锚链接在页面上上下跳转。菜单获取 $page->$post_name 和目标 $post_name 动态添加到页面内的标题,这很好用。当其中一个跳转链接锚点已被单击并处于活动状态时,我正在尝试添加一类“current_page_item”。我只是不确定如何在 if 语句中定位活动链接。希望这是有道理的,谢谢。

标签: php wordpress class anchor


【解决方案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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-09-03
      • 1970-01-01
      • 2011-10-02
      • 2012-11-01
      • 1970-01-01
      • 2021-04-03
      • 2013-11-16
      • 2014-12-20
      • 1970-01-01
      相关资源
      最近更新 更多