当前位置: 首页 > 知识库问答 >
问题:

将类添加到Wordpress菜单

公孙威
2023-03-14

我向每个Wordpress菜单项添加了类,但它们没有出现在代码中。

我的菜单:

<?php $wp_custom_nav = array(
        'theme_location'  => 'primary',
    'container'       => 'nav',
        'container_class' => 'nav',
    'echo'            => false,
    'fallback_cb'     => false,
    'items_wrap'      => '%3$s',
    'depth'           => 0
    );
    echo strip_tags(wp_nav_menu( $wp_custom_nav ), '<nav><a>');
    ?>

我的职能。php包括

    register_nav_menus( array(
        'primary' => esc_html__( 'Primary', 'yewtree' ),
    ) );

所以我有

<nav>
  <a></a>
  <a></a>
  ...
</nav>

但是没有我在Wordpress管理菜单中添加的任何类。为什么呢?

共有1个答案

蒲昀
2023-03-14

wp_导航_菜单默认使用Walker_导航_菜单。这是负责打印类的部分:

    /**
     * Filters the CSS classes applied to a menu item's list item element.
     *
     * @since 3.0.0
     * @since 4.1.0 The `$depth` parameter was added.
     *
     * @param string[] $classes Array of the CSS classes that are applied to the menu item's `<li>` element.
     * @param WP_Post  $item    The current menu item.
     * @param stdClass $args    An object of wp_nav_menu() arguments.
     * @param int      $depth   Depth of menu item. Used for padding.
     */
    $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
    $class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';

    /**
     * Filters the ID applied to a menu item's list item element.
     *
     * @since 3.0.1
     * @since 4.1.0 The `$depth` parameter was added.
     *
     * @param string   $menu_id The ID that is applied to the menu item's `<li>` element.
     * @param WP_Post  $item    The current menu item.
     * @param stdClass $args    An object of wp_nav_menu() arguments.
     * @param int      $depth   Depth of menu item. Used for padding.
     */
    $id = apply_filters( 'nav_menu_item_id', 'menu-item-' . $item->ID, $item, $args, $depth );
    $id = $id ? ' id="' . esc_attr( $id ) . '"' : '';

    $output .= $indent . '<li' . $id . $class_names . '>';

如您所见,这些类应用于

所以他们被应用了,但是。。。您可以这样做:

echo strip_tags(wp_nav_menu( $wp_custom_nav ), '<nav><a>');

因此,除了

 类似资料:
  • 我已经搜索了又搜索,除了我称之为“hack方法”的方法之外,找不到其他方法将自定义分类添加到自定义管理菜单中。 然后我注册我的帖子类型并确保它们使用 这可以工作,自定义帖子类型显示在我的自定义菜单中。 但是自定义分类法不接受同一属性的字符串,只接受true或false。 因此,要添加它,您必须创建一个子菜单页 这是一种“黑客”方式。 还有别的办法吗?如果不修改WordPress核心,我可以覆盖re

  • 我正在使用WordPress中的内置导航菜单创建自己的超级菜单。为标准菜单项和具有超大菜单的菜单项显示不同的代码非常有用。但是我希望能够引用活动菜单项,并将类活动添加到该列表项中。 我只是不确定,下面的代码,我需要把什么放在哪里? [已编辑] 我知道这一行之后需要添加一些内容 引用当前页面的内容 如何引用当前页面? 或者我如何将标准WordPress类添加到所有菜单项中,然后我可以在CSS文件中引

  • 我有一个android webview默认文本选择的问题。我想做的是添加一个项目到默认菜单,它出现在webview的文本选择上 我想要的功能是添加一个按钮到左侧的全选。如何做到这一点

  • 我有一个WordPress菜单,其中有一些菜单项是我通过标准(拖放)WordPress管理菜单功能添加的。最近,我不得不在菜单中添加另一项,以生成动态href链接。我在函数中使用以下代码实现了这一点。php文件: //将“我的个人资料”菜单项动态添加到“成员”菜单(根据当前登录的用户生成用户名) add_filter(wp_nav_menu_items、add_profilelink_in_men

  • 我使用下面的代码将活动类添加到菜单项。该网站是99%使用WooCommerce的Ecomm,我使用产品类别作为顶级导航项目。下面的代码适用于几乎所有项目,除非在产品子类别上处于活动状态。 本质上,我希望顶层导航项被标记为活动类,即使选择了子类别。

  • 我们正在使用Wordpress将菜单项添加到我们的导航栏。Cleary这使得更改变得简单,但它阻止了某些自定义。具体来说,我们希望更改导航栏中单个菜单项的颜色。有没有办法“添加”一个菜单项到数组的末尾,这样它就总是在最后一个位置,并且在导航栏中是不同的颜色?我意识到我们需要在CSS中创建一个样式来更改最后一个项目的颜色。 例如,当前导航栏: 主页关于美国产品/服务行业链接“联系我们” 我们想让“联