为单个页面突出显示 wordpress 导航 link
highlight a wordpress nav link for a single page
我有一个存档事件页面,该页面 link 是一个页面,其中列出了过去创建的所有事件,并且只能通过存档事件页面访问。
我的问题是,如何在查看此单个页面时突出显示存档事件页面 url link?
例如,下面的代码片段以硬编码的导航 link 为目标,以在查看其他页面时突出显示事件 link,但是我的菜单不是硬编码的:
<nav class="main-navigation">
<ul>
<li>...</li>
<li>...</li>
<li>
<?php if(get_post_type() == 'event' OR is_page('past-events')) echo 'class="current-menu-item"';?>>
<a href="<?php echo get_post_type_archive_link('event'); ?>">events</a>
</li>
<li>...</li>
</ul>
</nav>
对于通过 wordpress 仪表板菜单创建的动态菜单,我所遵循的教程并未在 functions.php 页面中提供类似的替代编码方式。
我已经尝试搜索示例,但到目前为止我还没有找到任何有用的东西并且需要一些外部帮助。
我该怎么做?
我能看出不对劲。您没有将 php 代码放在正确的位置。更正后的代码是这样的。试试这个,让我知道它是否有效
<nav class="main-navigation">
<ul>
<li>...</li>
<li>...</li>
<li <?php if(get_post_type() == 'event') echo 'class="current-menu-item"';?>>
<a href=""<?php echo get_post_type_archive_link('event'); ?>"></a>
</li>
<li>...</li>
</ul>
</nav>
好的,我想我找到了一个解决方案——作为一个新手——已经奏效了!
希望有人能指出任何我能做的 changes/improvements,但这里是:
要突出显示与您 on/viewing 不同的页面的菜单 link,例如在我的场景中:我有一个存档事件页面,在该页面中我有一个 link 会将您带到一个页面,该页面列出了所有过去发生的事件,但主导航中没有 link。
function nav_class($classes) {
// Remove "current-menu-item" class
$classes = array_diff($classes, array('current-menu-item'));
// If this is the "past-events" page, highlight the event menu item
if (in_array('menu-item-36', $classes) && is_page('past-events')) {
$classes[] = "current-menu-item";
}
return $classes;
}
add_filter('nav_menu_css_class', 'nav_class', 10, 2);
我希望这对其他人有所帮助。
我有一个存档事件页面,该页面 link 是一个页面,其中列出了过去创建的所有事件,并且只能通过存档事件页面访问。
我的问题是,如何在查看此单个页面时突出显示存档事件页面 url link?
例如,下面的代码片段以硬编码的导航 link 为目标,以在查看其他页面时突出显示事件 link,但是我的菜单不是硬编码的:
<nav class="main-navigation">
<ul>
<li>...</li>
<li>...</li>
<li>
<?php if(get_post_type() == 'event' OR is_page('past-events')) echo 'class="current-menu-item"';?>>
<a href="<?php echo get_post_type_archive_link('event'); ?>">events</a>
</li>
<li>...</li>
</ul>
</nav>
对于通过 wordpress 仪表板菜单创建的动态菜单,我所遵循的教程并未在 functions.php 页面中提供类似的替代编码方式。
我已经尝试搜索示例,但到目前为止我还没有找到任何有用的东西并且需要一些外部帮助。
我该怎么做?
我能看出不对劲。您没有将 php 代码放在正确的位置。更正后的代码是这样的。试试这个,让我知道它是否有效
<nav class="main-navigation">
<ul>
<li>...</li>
<li>...</li>
<li <?php if(get_post_type() == 'event') echo 'class="current-menu-item"';?>>
<a href=""<?php echo get_post_type_archive_link('event'); ?>"></a>
</li>
<li>...</li>
</ul>
</nav>
好的,我想我找到了一个解决方案——作为一个新手——已经奏效了!
希望有人能指出任何我能做的 changes/improvements,但这里是:
要突出显示与您 on/viewing 不同的页面的菜单 link,例如在我的场景中:我有一个存档事件页面,在该页面中我有一个 link 会将您带到一个页面,该页面列出了所有过去发生的事件,但主导航中没有 link。
function nav_class($classes) {
// Remove "current-menu-item" class
$classes = array_diff($classes, array('current-menu-item'));
// If this is the "past-events" page, highlight the event menu item
if (in_array('menu-item-36', $classes) && is_page('past-events')) {
$classes[] = "current-menu-item";
}
return $classes;
}
add_filter('nav_menu_css_class', 'nav_class', 10, 2);
我希望这对其他人有所帮助。