Created
June 25, 2020 18:56
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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