В Wordpress, я пытаюсь иметь администратор меню автоматически создавать, если они находятся в меню из «Внешнего вида -> меню». Это я смог развить.
Часть, в которой у меня возникают проблемы, обусловлена ее спецификой. Я пытаюсь иметь меню верхнего уровня прямо на меню второго уровня И есть меню верхнего уровня сохранить свое первоначальное название.
Код
Настройка в разделе "Внешний вид -> меню"
Callsigns
-> Alpha
-> Bravo
-> Charlie
меню верхнего уровня "позывные" изменил параметры. The Навигационная этикетка является "Alpha" и не указан Титул: Атрибут - "Callsigns".
functions.php
add_action('init', 'register_my_menus');
function register_my_menus() {
register_nav_menus(array('admin-menus' => 'Admin Menus'));
}
add_action('admin_menu', 'my_admin_menus');
function my_admin_menus() {
$locations = get_nav_menu_locations();
$menu = wp_get_nav_menu_object($locations['admin-menus']);
$pages = wp_get_nav_menu_items($menu->term_id);
foreach ($pages as $page) {
if ($page->menu_item_parent == 0)
add_menu_page(
$page->title,
$page->attr_title ? $page->attr_title : $page->title,
'read',
sanitize_title($page->title),
'admin_page_format'
);
else
add_submenu_page(
sanitize_title($page->menu_item_parent->title), // ISSUE
$page->title,
$page->attr_title ? $page->attr_title : $page->title,
'read',
sanitize_title($page->title),
'admin_page_format'
);
}
}
Я пометил линия которой я довольно уверен, это вопрос. Первоначально я не пытался использовать «->», и на данный момент я достаточно уверен, что невозможно использовать «->» дважды подряд, как я делал выше.
Неверные решения
sanitize_title($page->menu_item_parent->title)
меню верхнего уровня работы. Он имеет правильное имя и направляет правильное меню второго уровня. Тем не менее, меню второго уровня вообще не отображаются в качестве меню администратора.
sanitize_title(get_the_title($page->menu_item_parent))
Тот же результат, что и выше, неправильное решение.