关于这一点,我读了很多书,但找不到解决办法。
基本上,我试图在由自定义页面类型存档创建的动态页面上显示当前菜单项。默认菜单控件不添加当前菜单项CSS类名。我在这里找到了一个解决方案-http://bloggingsquared.com/blogging-tips/how-to-add-the-current-menu-item-css-class-to-a-custom-link-in-a-wordpress-menu/
是这样的:
add_filter(\'nav_menu_css_class\', \'AddCurrentMenuItemClass\',1,2);
function AddCurrentMenuItemClass($classes,$item)
{
$link = site_url().$_SERVER[\'REQUEST_URI\'];
if(strpos($link, $item->url) !== false)
{
$classes[] = \'current-menu-item\';
}
return $classes;
}
我遇到的问题是,主页(这是一个自定义菜单项)与我所在的页面一样突出显示。如果我将If语句更改为:
if ( $link == $item->url )
然后在该页上作为,而不是在子页上。
你能帮我解决这个问题吗?我在一个客户项目上工作,期限正好。。。
我在WP 3.4.2上使用了一个高级WooThemes模板:Whitelight
SO网友:Adam
这就是你想做的,
add_filter( \'wp_get_nav_menu_items\', \'cpt_archive_menu_filter\', 10, 3 );
function cpt_archive_menu_filter( $items, $menu, $args ) {
foreach ( $items as &$item ) {
if ( $item->type != \'custom\' ) continue;
if ( get_query_var( \'post_type\' ) == \'your-post-type\' && $item->title == \'Title of Link\' ) {
$item->classes []= \'class-name-your-want\';
}
}
return $items;
}
尽管上述方法可行,
Custom Links 获得分配的
current-menu-item
所以如果我没听错的话,这应该是没有必要的。
SO网友:Mary Ann Alcantara
我也有同样的问题。这就是我要做的:改变YourMenuItem 添加到菜单名称项。
/* Add a custom class to a specific menu item */
function my_class( $classes, $item ) {
if ( $item->title == "YourMenuItem" ) {
$classes[] = \'current-page\';
}
return $classes;
}
add_filter( \'nav_menu_css_class\', \'my_class\', 10, 2 );