【发布时间】: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