将当前菜单项的css类添加到WordPress菜单中的自定义页面类型存档中

时间:2012-10-10 作者:Zohar

关于这一点,我读了很多书,但找不到解决办法。

基本上,我试图在由自定义页面类型存档创建的动态页面上显示当前菜单项。默认菜单控件不添加当前菜单项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

2 个回复
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 );

结束

相关推荐

WP_GET_ARCHIES()-获取当月的css选择器

我正在寻找如何在wp\\u get\\u archives函数中获取类以获取当前月份(当我们在月份存档中时),就像我们调用wp\\u list\\u类别时,当前类别有一个用于CSS的“.current cat”选择器,或者当我们调用wp\\u list\\u页面时,我们有一个“.current cat”。当前\\u page\\u项选择器。

将当前菜单项的css类添加到WordPress菜单中的自定义页面类型存档中 - 小码农CODE - 行之有效找到问题解决它

将当前菜单项的css类添加到WordPress菜单中的自定义页面类型存档中

时间:2012-10-10 作者:Zohar

关于这一点,我读了很多书,但找不到解决办法。

基本上,我试图在由自定义页面类型存档创建的动态页面上显示当前菜单项。默认菜单控件不添加当前菜单项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

2 个回复
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 );

相关推荐

通过主题定制器编辑style.css

直到现在,在我的Wordpress主题中,我在主题定制器中实现了一些必要的样式选项,这些选项将编辑CSS并通过将CSS输出到头部内部来覆盖它<style> 标记,例如,这里我实现了颜色选择器,如果默认状态发生更改,我会输出样式:function dc_get_gradient_colors() { $first_color = get_theme_mod( \'primary_color_1\' ); if ( $link_color != \'#0