Skip to content

Instantly share code, notes, and snippets.

@mhmoudsami
Created July 15, 2016 15:42
Show Gist options
  • Select an option

  • Save mhmoudsami/d617bd298b8a5dabbcf7f3dbeabdbadd to your computer and use it in GitHub Desktop.

Select an option

Save mhmoudsami/d617bd298b8a5dabbcf7f3dbeabdbadd to your computer and use it in GitHub Desktop.
custom admin nav menu predefined set of links
/**
* @link https://gist.github.com/certainlyakey/11441175
*/
function Marvel_add_admin_nav_menu_metabox()
{
add_meta_box('marvel-metabox-nav-menu-custom', 'Marvel Links', 'Marvel_admin_nav_menu_metabox_callback', 'nav-menus', 'side', 'default');
}
add_action('admin_head-nav-menus.php', 'Marvel_add_admin_nav_menu_metabox');
function Marvel_admin_nav_menu_metabox_callback()
{
$predefined_links = [
[
'title' => 'Guest List',
'type' => 'custom',
'url' => '#'
],
[
'title' => 'Event Manager',
'type' => 'custom',
'url' => '#'
],
];
$items = [];
$loop_index = 999999;
foreach ($predefined_links as $link)
{
$loop_index++;
$item = new stdClass();
$item->object_id = $loop_index;
$item->db_id = 0;
$item->object = 'item_type_' . $loop_index;
$item->menu_item_parent = 0;
$item->type = $link['type'];
$item->title = $link['title'];
$item->url = $link['url'];
$item->target = '';
$item->attr_title = '';
$item->classes = array();
$item->xfn = '';
$items[] = $item;
}
$walker = new Walker_Nav_Menu_Checklist([]);
?>
<div id="posttype-archive" class="posttypediv">
<div id="tabs-panel-posttype-archive" class="tabs-panel tabs-panel-active">
<ul id="posttype-archive-checklist" class="categorychecklist form-no-clear">
<?php echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $items), 0, (object) array('walker' => $walker)); ?>
</ul>
</div>
</div>
<p class="button-controls">
<span class="add-to-menu">
<input type="submit" <?php echo disabled(1, 0); ?> class="button-secondary submit-add-to-menu right" value="<?php _e('Add to Menu', 'marvel') ?>" name="add-custom-menu-item" id="submit-posttype-archive" />
<span class="spinner"></span>
</span>
</p>
<?php
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment