我有一个我创建的WP过滤器,我只想在某些菜单项上运行。
我试图使用-
function add_nav_class($output) {
$output= preg_replace(\'/<a/\', \'<a class="lsbb"\', $output, -1);
return $output;
}
function wp_nav_menu_conditionals() {
if(!wp_nav_menu(\'theme_location\' => \'footer_menu\')) {
add_filter(\'wp_nav_menu\', \'add_nav_class\');
}
}
add_action(\'wp\', \'wp_nav_menu_conditionals\');
我想在所有未列为theme\\u location footer\\u菜单的菜单上添加\\u过滤器。在WP中有这样做的方法吗?如果菜单使用的是theme\\u location footer\\u菜单,我希望它不要使用add\\u filter。
有谁能告诉我如何有条件地使用add\\u nav\\u类吗?
SO网友:Pat J
Edit -- 修复了if()
陈述
function add_nav_class( $output ) {
$menu_obj = get_term_by( \'slug\', \'footer_menu\', \'nav_menu\' );
// $menu_obj = get_term_by( \'name\', \'Footer Menu\', \'nav_menu\' );
// if the \'slug\' version doesn\'t work, try the \'name\' version
// Just make sure you\'re using the correct name
if( \'footer_menu\' == $menu_obj->name ) ) {
return $output; // bail if it\'s the \'footer_menu\'
}
$output= preg_replace(\'/<a/\', \'<a class="lsbb"\', $output, -1);
return $output;
}
add_filter(\'wp_nav_menu\', \'add_nav_class\');
Edit 2 -- 已替换
get_term()
具有
get_term_by()
.