WP_REST_Menus_Controller::get_item_schema() WordPress Method

The WP_REST_Menus_Controller::get_item_schema() function is used to return the schema for a single menu item. This is useful for defining the properties that a menu item can have, and how those properties can be accessed and updated.

WP_REST_Menus_Controller::get_item_schema() #

Retrieves the term’s schema, conforming to JSON Schema.


Return

(array) Item schema data.


Top ↑

Source

File: wp-includes/rest-api/endpoints/class-wp-rest-menus-controller.php

522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
public function get_item_schema() {
    $schema = parent::get_item_schema();
    unset( $schema['properties']['count'], $schema['properties']['link'], $schema['properties']['taxonomy'] );
 
    $schema['properties']['locations'] = array(
        'description' => __( 'The locations assigned to the menu.' ),
        'type'        => 'array',
        'items'       => array(
            'type' => 'string',
        ),
        'context'     => array( 'view', 'edit' ),
        'arg_options' => array(
            'validate_callback' => function ( $locations, $request, $param ) {
                $valid = rest_validate_request_arg( $locations, $request, $param );
 
                if ( true !== $valid ) {
                    return $valid;
                }
 
                $locations = rest_sanitize_request_arg( $locations, $request, $param );
 
                foreach ( $locations as $location ) {
                    if ( ! array_key_exists( $location, get_registered_nav_menus() ) ) {
                        return new WP_Error(
                            'rest_invalid_menu_location',
                            __( 'Invalid menu location.' ),
                            array(
                                'location' => $location,
                            )
                        );
                    }
                }
 
                return true;
            },
        ),
    );
 
    $schema['properties']['auto_add'] = array(
        'description' => __( 'Whether to automatically add top level pages to this menu.' ),
        'context'     => array( 'view', 'edit' ),
        'type'        => 'boolean',
    );
 
    return $schema;
}


Top ↑

Changelog

Changelog
VersionDescription
5.9.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by the Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.