Сценарий ниже создает навигационное меню и назначает ему страницу. Все работает отлично, за исключением того, что навигационное меню не назначается автоматически для местоположения «Header-menu» моей темы.
Есть идеи, почему?
//Register menu locations for the theme
add_action( 'init', 'register_my_menus' );
function register_my_menus() {
register_nav_menus(
array('header-menu' => __( 'Header Menu' ), 'footer-menu' => __( 'Footer Menu' ))
);
}
//Create a nav menu, add a page to it and assign it to the theme's "header-menu" location.
$menu_id = wp_create_nav_menu( 'header-menu' );
$menu = array(
'menu-item-type' => 'custom',
'menu-item-url' => get_home_url('/'),
'menu-item-title' => 'Home',
'menu-item-status' => 'publish',
'theme_location' => 'header-menu', //Just a guess but didn't work!!!
);
wp_update_nav_menu_item( $menu_id, 0, $menu );
wp_create_nav_menu()
Функция принимает имя меню, а не местоположение меню. а что касаетсяwp_update_menu_item()
блюд, а не самого меню. Покопавшись в коде, я обнаружил, что «назначение» «местоположения темы» меню выполняется не с использованием API nav_menu в WordPress, а с параметрами темы, поэтому:надеюсь это поможет 🙂
Вы рок-звезда. Неудивительно, что я не мог его найти. Если бы у меня была кнопка +20, я бы сильно ее нажимал.
ваше предложение приблизило меня к решению, и я выбираю его в качестве ответа. Тем не менее, он по-прежнему не назначает меню местоположению меню. Я получаю некоторые ошибки трассировки уже существующего $menu_id. Итак, я публикую это как отдельный вопрос.