有条件地/为一页添加 Wordpress 过滤器

Adding Wordpress filters conditionally / for one page

我有两个菜单,一个是主菜单,一个是副菜单,我只想给主菜单添加 data-scroll='' 属性。我使用当前代码成功地将属性添加到所有菜单:

function add_data_scroll( $atts, $item, $args ) {

    $atts['data-scroll'] = ' ';
    return $atts;

}

add_filter( 'nav_menu_link_attributes', 'add_data_scroll', 10, 3 );

如何有条件地将此过滤器添加到我的主菜单中?主菜单也仅在首页上使用 - 因此这可能是定位它的好方法。

您可以查看 wp_nav_menu_args filter on wordpress 的示例。

定义菜单时需要设置theme_location参数:

<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>

在您的过滤器中,您可以执行以下操作:

function add_data_scroll( $atts, $item, $args ) {
    if( 'primary' == $args['theme_location'] )
    {
        $atts['data-scroll'] = ' ';
        return $atts;
    }

}

add_filter( 'nav_menu_link_attributes', 'add_data_scroll', 10, 3 );