Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将活动类添加到Wordpress中当前选定的锚点_Php_Html_Css_Wordpress - Fatal编程技术网

Php 将活动类添加到Wordpress中当前选定的锚点

Php 将活动类添加到Wordpress中当前选定的锚点,php,html,css,wordpress,Php,Html,Css,Wordpress,如何在Wordpress中将活动类添加到我的锚中?目前的代码如下: $args = array( 'theme_location' => 'primary', 'container' => 'div', 'container_class' => 'collapse navbar-collapse', 'menu_class' => 'nav navbar-nav navbar-right' ); wp_nav_menu( $args );

如何在Wordpress中将活动类添加到我的锚中?目前的代码如下:

$args = array(
    'theme_location' => 'primary',
    'container' => 'div',
    'container_class' => 'collapse navbar-collapse',
    'menu_class' => 'nav navbar-nav navbar-right'
);
wp_nav_menu( $args );
我得到每个菜单项的输出:

<li id="menu-item-42" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-42">
    <a href="http://localhost:8888/axial/services/">Services</a>
</li>
  • 但我希望“a”标记有一个“active”类,如下所示:

    <li id="menu-item-42" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-42">
        <a class="active" href="http://localhost:8888/axial/services/">Services</a>
    </li>
    

  • 只需将此代码粘贴到functions.php文件中:

    add_filter('nav_menu_css_class','special_nav_class',10,2);
    功能特殊导航类($classes,$item){
    if(在数组中('current-menu-item',$classes)){
    $classes[]=“活动”;
    }
    返回$classes;
    
    }
    只需将此代码粘贴到functions.php文件中:

    add_filter('nav_menu_css_class','special_nav_class',10,2);
    功能特殊导航类($classes,$item){
    if(在数组中('current-menu-item',$classes)){
    $classes[]=“活动”;
    }
    返回$classes;
    
    }
    今天,我们大部分时间都要处理wordpress中的下拉菜单,因此,为了即兴回答上述问题,您可以使用:

    add_filter('nav_menu_css_class', 'add_active_class', 10, 2 );
    
    function add_active_class($classes, $item) {
      if( $item->menu_item_parent == 0 && in_array('current-menu-item', $classes) ) {
          $classes[] = "active";
       }
       return $classes;
     }
    
    you can add active class for child elements using the below code: 
    add_filter('nav_menu_css_class', 'add_active_class', 10, 2 );
    function add_active_class($classes, $item)
    {
      if( in_array( 'current-menu-item', $classes ) ||
      in_array( 'current-menu-ancestor', $classes ) ||
      in_array( 'current-menu-parent', $classes ) ||
      in_array( 'current_page_parent', $classes ) ||
      in_array( 'current_page_ancestor', $classes )) 
        {
           $classes[] = "active";
        }
       return $classes;
    }
    

    今天,我们大部分时间都要处理wordpress中的下拉菜单,因此,为了即兴回答上述问题,您可以使用:

    add_filter('nav_menu_css_class', 'add_active_class', 10, 2 );
    
    function add_active_class($classes, $item) {
      if( $item->menu_item_parent == 0 && in_array('current-menu-item', $classes) ) {
          $classes[] = "active";
       }
       return $classes;
     }
    
    you can add active class for child elements using the below code: 
    add_filter('nav_menu_css_class', 'add_active_class', 10, 2 );
    function add_active_class($classes, $item)
    {
      if( in_array( 'current-menu-item', $classes ) ||
      in_array( 'current-menu-ancestor', $classes ) ||
      in_array( 'current-menu-parent', $classes ) ||
      in_array( 'current_page_parent', $classes ) ||
      in_array( 'current_page_ancestor', $classes )) 
        {
           $classes[] = "active";
        }
       return $classes;
    }
    

    您可以使用CSS来实现这一点

    您可以使用默认情况下添加的当前菜单项类

    /*您必须像这样添加活动菜单项样式*/
    a{
    填充物:5px;
    字体系列:arial;
    颜色:#333;
    文字装饰:无;
    }
    .navbar right ul li{
    显示:内联块;
    列表样式类型:无;
    边框:1px实心#bbb;
    填充物:5px;
    }
    .navbar right li.current-menu-item>a{
    颜色:#fff;
    背景:#bbb ;;
    /*可以在此处添加活动锚样式*/
    }
    
    

    您可以使用CSS实现这一点

    您可以使用默认情况下添加的当前菜单项类

    /*您必须像这样添加活动菜单项样式*/
    a{
    填充物:5px;
    字体系列:arial;
    颜色:#333;
    文字装饰:无;
    }
    .navbar right ul li{
    显示:内联块;
    列表样式类型:无;
    边框:1px实心#bbb;
    填充物:5px;
    }
    .navbar right li.current-menu-item>a{
    颜色:#fff;
    背景:#bbb ;;
    /*可以在此处添加活动锚样式*/
    }
    
    

    是的,这是可能的,请尝试下面的代码:

    function add_class_to_href( $classes, $item ) {
        if ( in_array('current_page_item', $item->classes) ) {
            $classes['class'] = 'active';
        }
        return $classes;
    }
    add_filter( 'nav_menu_link_attributes', 'add_class_to_href', 10, 2 );
    

    是的,这是可能的,请尝试以下代码:

    function add_class_to_href( $classes, $item ) {
        if ( in_array('current_page_item', $item->classes) ) {
            $classes['class'] = 'active';
        }
        return $classes;
    }
    add_filter( 'nav_menu_link_attributes', 'add_class_to_href', 10, 2 );
    

    我也面临同样的问题,在搜索了许多页面后,我只能找到我必须使用jquery代码设置的解决方案。因此,我在我的页面“.current\u page\u item”中发现了一个独特的类添加项,您可能有相同的或“.current\u menu\u item”等。。因此,只需在页脚中包含以下jquery代码,页面就可以正常工作

    $(".current_page_item a").addClass("active");
    

    这会解决你的问题。

    我也面临同样的问题,在搜索了许多页面后,我只能找到我必须使用jquery代码设置的解决方案。因此,我在我的页面“.current\u page\u item”中发现了一个独特的类添加项,您可能有相同的或“.current\u menu\u item”等。。因此,只需在页脚中包含以下jquery代码,页面就可以正常工作

    $(".current_page_item a").addClass("active");
    
    执行此操作将解决您的问题。

    您可以将“导航链接”类添加到所有锚定标记,而当前菜单项上只有使用此代码才能有“活动”类

    /**
     * Add CSS class for "<a>" tags in menu
     */
    function your_theme_add_menu_link_class( $classes, $item ) {
        $classes['class'] = "nav-link"; // Add class to every "<a>" tags
        if ( in_array('current_page_item', $item->classes) ) {
            $classes['class'] = 'nav-link active'; // Add class to current menu item's "<a>" tag
        }
        return $classes;
    }
    add_filter( 'nav_menu_link_attributes', 'your_theme_add_menu_link_class', 10, 2 );
    
    /**
    *为菜单中的“”标记添加CSS类
    */
    功能您的主题添加菜单链接类($classes,$item){
    $classes['class']=“导航链接”;//将类添加到每个“”标记
    if(在数组中('current_page_item',$item->classes)){
    $classes['class']='nav link active';//将类添加到当前菜单项的“”标记
    }
    返回$classes;
    }
    添加过滤器(“导航菜单链接属性”、“您的主题添加菜单链接类”,10,2);
    
    您可以将“导航链接”类添加到所有锚定标记中,而当前菜单项上只有使用此代码才有“活动”类

    /**
     * Add CSS class for "<a>" tags in menu
     */
    function your_theme_add_menu_link_class( $classes, $item ) {
        $classes['class'] = "nav-link"; // Add class to every "<a>" tags
        if ( in_array('current_page_item', $item->classes) ) {
            $classes['class'] = 'nav-link active'; // Add class to current menu item's "<a>" tag
        }
        return $classes;
    }
    add_filter( 'nav_menu_link_attributes', 'your_theme_add_menu_link_class', 10, 2 );
    
    /**
    *为菜单中的“”标记添加CSS类
    */
    功能您的主题添加菜单链接类($classes,$item){
    $classes['class']=“导航链接”;//将类添加到每个“”标记
    if(在数组中('current_page_item',$item->classes)){
    $classes['class']='nav link active';//将类添加到当前菜单项的“”标记
    }
    返回$classes;
    }
    添加过滤器(“导航菜单链接属性”、“您的主题添加菜单链接类”,10,2);
    
    这很有效,谢谢,但这是我想添加类的锚点,而不是
  • 是否可行?这很有效,谢谢,但这是我想添加类的锚点,而不是
  • 是否可行?这很有效,谢谢,但这是我想添加类的锚点,不是
  • 那是可能的吗?这很有效,谢谢,但这是我想添加类的锚,不是
  • 那是可能的吗?