wp_ajax_menu_get_metabox
Ajax handler for retrieving menu meta boxes.
Description
wp_ajax_menu_get_metabox();
Usage
if ( !function_exists( 'wp_ajax_menu_get_metabox' ) ) { require_once ABSPATH . '/wp-admin/includes/ajax-actions.php'; } // NOTICE! Understand what this does before running. $result = wp_ajax_menu_get_metabox();
Defined (1)
The function is defined in the following location(s).
- /wp-admin/includes/ajax-actions.php
- function wp_ajax_menu_get_metabox() {
- if ( ! current_user_can( 'edit_theme_options' ) )
- wp_die( -1 );
- require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
- if ( isset( $_POST['item-type'] ) && 'post_type' == $_POST['item-type'] ) {
- $type = 'posttype';
- $callback = 'wp_nav_menu_item_post_type_meta_box';
- $items = (array) get_post_types( array( 'show_in_nav_menus' => true ), 'object' );
- } elseif ( isset( $_POST['item-type'] ) && 'taxonomy' == $_POST['item-type'] ) {
- $type = 'taxonomy';
- $callback = 'wp_nav_menu_item_taxonomy_meta_box';
- $items = (array) get_taxonomies( array( 'show_ui' => true ), 'object' );
- }
- if ( ! empty( $_POST['item-object'] ) && isset( $items[$_POST['item-object']] ) ) {
- $menus_meta_box_object = $items[ $_POST['item-object'] ];
- /** This filter is documented in wp-admin/includes/nav-menu.php */
- $item = apply_filters( 'nav_menu_meta_box_object', $menus_meta_box_object );
- ob_start();
- call_user_func_array($callback, array(
- null,
- array(
- 'id' => 'add-' . $item->name,
- 'title' => $item->labels->name,
- 'callback' => $callback,
- 'args' => $item,
- )
- ));
- $markup = ob_get_clean();
- echo wp_json_encode(array(
- 'replace-id' => $type . '-' . $item->name,
- 'markup' => $markup,
- ));
- }
- wp_die();
- }