API işlevleriyle yeni bir Gezinti menüsü tanımlamak , geçerli temada seçmek ve ardından menü öğeleri olarak birkaç Sayfa eklemek istiyorum. Bu, örneğin bir tema aktivasyonu için yapılmalıdır.
Navigasyon menüsünü ve öğelerini manuel olarak ayarladıktan sonra veritabanı (orta derecede ağrılı) bir tersine mühendislik süreci sayesinde veritabanı ekler ve günceller. m oluşturma:
if (!term_exists('footer-nav', 'nav_menu')) {
$menu = wp_insert_term('Footer nav', 'nav_menu', array('slug' => 'footer-nav'));
// Select this menu in the current theme
update_option('theme_mods_'.get_current_theme(), array("nav_menu_locations" => array("primary" => $menu['term_id'])));
// Insert new page
$page = wp_insert_post(array('post_title' => 'Blog',
'post_content' => '',
'post_status' => 'publish',
'post_type' => 'page'));
// Insert new nav_menu_item
$nav_item = wp_insert_post(array('post_title' => 'News',
'post_content' => '',
'post_status' => 'publish',
'post_type' => 'nav_menu_item'));
add_post_meta($nav_item, '_menu_item_type', 'post_type');
add_post_meta($nav_item, '_menu_item_menu_item_parent', '0');
add_post_meta($nav_item, '_menu_item_object_id', $page);
add_post_meta($nav_item, '_menu_item_object', 'page');
add_post_meta($nav_item, '_menu_item_target', '');
add_post_meta($nav_item, '_menu_item_classes', 'a:1:{i:0;s:0:"";}');
add_post_meta($nav_item, '_menu_item_xfn', '');
add_post_meta($nav_item, '_menu_item_url', '');
wp_set_object_terms($nav_item, 'footer-nav', 'nav_menu');
}
Bu iş gibi görünüyor, ama:
- Bunu yapmanın sağlam ve zarif bir yolu var mı?
- Bütün bunları tek bir kod satırında yapacak olan açık bir şeyi mi kaçırıyorum?