Нацеливание на конкретное меню с помощью пунктов меню wp nav
Эй! Я добавил wp_loginout() в свой заголовок, используя фрагмент в моем functions.php :
add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);
function add_login_logout_link($items, $args) {
ob_start();
wp_loginout('index.php');
$loginoutlink = ob_get_contents();
ob_end_clean();
$items .= '<li>'. $loginoutlink .'</li>';
return $items;
}
Дело в том, что он показывает ссылку для входа в систему в каждом из моих трех меню:
function register_main_menus() {
register_nav_menus(
array(
'primary-menu' => __( 'Primary Menu' ),
'secondary-menu' => __( 'Secondary Menu' ),
'footer-menu' => __( 'Footer Menu' ),
)
);
};
Я хотел бы настроить фильтр wp_nav_menu_items так, чтобы он включал только ссылку для входа в основное меню. Идеи? Заранее благодарю
3
2 answers
Смотрите этот связанный с этим вопрос . Я думаю, в вашем случае вы бы завернули свой код в if( $args->theme_location == 'primary-menu' )
.
7
Author: Philip Arthur Moore, 2017-04-13 12:37:55
Пожалуйста, измените свой код следующим кодом
Вы забыли добавить условие if ($args->theme_location == 'primary-menu')
это условие проверяет, является ли меню основным меню или нет.
add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);
function add_login_logout_link($items, $args) {
if ($args->theme_location == 'primary-menu') {
ob_start();
wp_loginout('index.php');
$loginoutlink = ob_get_contents();
ob_end_clean();
$items .= '<li>' . $loginoutlink . '</li>';
return $items;
}
}
function register_main_menus() {
register_nav_menus(
array(
'primary-menu' => __( 'Primary Menu' ),
'secondary-menu' => __( 'Secondary Menu' ),
'footer-menu' => __( 'Footer Menu' ),
)
);
};
1
Author: Mr. HK, 2017-01-06 11:11:41