Я использую следующий код, чтобы добавить пункт меню «Вход / Выход» в WordPress программно. Я пытаюсь выяснить, как указать размещение этого меню в позиции №2.
IE – Главное меню
Главная | Вход / Выход | Свяжитесь с нами
add_filter('wp_nav_menu_items', 'voodoo_loginout_link', 10, 2); function voodoo_loginout_link($items, $args) { $voodooredir = htmlspecialchars($_SERVER['REQUEST_URI']); $loginoutlink = wp_loginout($voodooredir, false); return $items . "<li> $loginoutlink </li>"; }
Я собираюсь использовать это обходное решение. Добавьте ссылку меню с wp-login.php и замените заголовок / URL.
if ( !class_exists( 'HijackMe' ) ) { class HijackMe { public function hijack_menu($objects) { /** * If user isn't logged in, we return the link as normal */ if ( !is_user_logged_in() ) { return $objects; } /** * If they are logged in, we search through the objects for items with the * class wl-login-pop and we change the text and url into a logout link */ foreach ( $objects as $k=>$object ) { if ( in_array( 'wl-login-pop', $object->classes ) ) { $objects[$k]->title = 'Logout'; $objects[$k]->url = wp_logout_url(); $remove_key = array_search( 'wl-login-pop', $object->classes ); unset($objects[$k]->classes[$remove_key]); } } return $objects; } }
неif ( !class_exists( 'HijackMe' ) ) { class HijackMe { public function hijack_menu($objects) { /** * If user isn't logged in, we return the link as normal */ if ( !is_user_logged_in() ) { return $objects; } /** * If they are logged in, we search through the objects for items with the * class wl-login-pop and we change the text and url into a logout link */ foreach ( $objects as $k=>$object ) { if ( in_array( 'wl-login-pop', $object->classes ) ) { $objects[$k]->title = 'Logout'; $objects[$k]->url = wp_logout_url(); $remove_key = array_search( 'wl-login-pop', $object->classes ); unset($objects[$k]->classes[$remove_key]); } } return $objects; } }
}
$ hijackme = новый HijackMe;
add_filter ('wp_nav_menu_objects', массив ($ hijackme, 'hijack_menu'), 10, 2);