function custom_add_menu_meta_box( $object ) {
add_meta_box( 'custom-menu-metabox', __( 'Default Menus' ), 'custom_menu_meta_box', 'nav-menus', 'side', 'default' );
return $object;
}
add_filter( 'nav_menu_meta_box_object', 'custom_add_menu_meta_box', 10, 1);
He creado un meta cuadro de menú llamado Menús predeterminados.
Aquí está la implementación de la función.
function custom_menu_meta_box(){
global $nav_menu_selected_id;
$custom_nav_menu_options = json_decode(get_option('ds_custom_nav_menu'));
$generatedMenu = [];
for($i = 0; $i < count($custom_nav_menu_options); $i++) {
$singleMenu = $custom_nav_menu_options[$i];
array_push($generatedMenu, (object) [
'ID' => 1,
'object_id' => 1,
'type_label' => 'default',
'title' => $singleMenu->pageTitle,
'url' => $singleMenu->link,
'type' => 'default',
'object' => 'default',
'db_id' => 0,
'menu_item_parent' => 0,
'post_parent' => 0,
'target' => '',
'attr_title' => '',
'description' => '',
'classes' => array(),
'xfn' => '']);
}
$db_fields = false;
// If your links will be hierarchical, adjust the $db_fields array below
if ( false ) {
$db_fields = array( 'parent' => 'parent', 'id' => 'post_parent' );
}
$walker = new Walker_Nav_Menu_Checklist( $db_fields );
$removed_args = array( 'action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce', );
?>
<div id="plugin-slug-div">
<div id="tabs-panel-plugin-slug-all" class="tabs-panel tabs-panel-active">
<ul id="plugin-slug-checklist-pop" class="categorychecklist form-no-clear" >
<?php echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $generatedMenu ), 0, (object) array( 'walker' => $walker ) ); ?>
</ul>
<p class="button-controls">
<span class="add-to-menu">
<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-plugin-slug-menu-item" id="submit-plugin-slug-div" />
<span class="spinner"></span>
</span>
</p>
</div>
<?php
}
he dado tipo ‘tipo’ => ‘predeterminado’
Pero, ¿cómo puedo obtener la URL de este menú mientras voy a mostrar que no me está dando la URL? Pero si uso disfrazentonces me está dando URL con este código a continuación:
$menu_item->url = ! isset( $menu_item->url ) ? get_post_meta( $menu_item->ID, '_menu_item_url', true ) : $menu_item->url;