有条件地/为一页添加 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 );
我有两个菜单,一个是主菜单,一个是副菜单,我只想给主菜单添加 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 );