Skip to content

Instantly share code, notes, and snippets.

@rodriigomedeiros
Created June 25, 2020 18:56
Show Gist options
  • Save rodriigomedeiros/757179ef46d34281e346549088d644de to your computer and use it in GitHub Desktop.
Save rodriigomedeiros/757179ef46d34281e346549088d644de to your computer and use it in GitHub Desktop.
Adiciona opção de archives de posttypes no editor de menu do admin do Wordpress
<?php
function pc_metabox_menu_posttype_archive()
{
$post_types = get_post_types(['show_in_nav_menus' => true, 'has_archive' => true], 'object');
if ($post_types):
$items = [];
$loop_index = PHP_INT_MIN;
foreach ($post_types as $post_type) {
$item = new stdClass();
$item->object_id = ++$loop_index;
$item->db_id = 0;
$item->object = 'post_type_' . $post_type->query_var;
$item->menu_item_parent = 0;
$item->type = 'custom';
$item->title = $post_type->labels->name;
$item->url = get_post_type_archive_link($post_type->query_var);
$item->target = '';
$item->attr_title = '';
$item->classes = [];
$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)['walker' => $walker]); ?>
</ul>
</div>
</div>
<p class="button-controls">
<span class="add-to-menu">
<input type="submit" class="button-secondary submit-add-to-menu right" value="Adicionar ao menu"
name="add-posttype-archive-menu-item" id="submit-posttype-archive"/>
<span class="spinner"></span>
</span>
</p>
<?php
endif;
}
function pc_add_metabox_menu_posttype_archive()
{
add_meta_box('wpclean-metabox-nav-menu-posttype', 'Arquivos Personalizados', 'pc_metabox_menu_posttype_archive', 'nav-menus', 'side', 'default');
}
add_action('admin_head-nav-menus.php', 'pc_add_metabox_menu_posttype_archive');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment