Make WordPress Core


Ignore:
Timestamp:
11/02/2016 09:50:08 PM (7 years ago)
Author:
joehoyle
Message:

REST API: Include taxonomies as an attribute of post types.

Add the taxonomies for a post type to the /wp/v2/types endpoint, so clients know which taxonomies are available for which post types.

Props danielbachhuber.
Fixes #38438, #38631.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php

    r39025 r39097  
    147147     */
    148148    public function prepare_item_for_response( $post_type, $request ) {
     149        $taxonomies = wp_list_filter( get_object_taxonomies( $post_type->name, 'objects' ), array( 'show_in_rest' => true ) );
     150        $taxonomies = wp_list_pluck( $taxonomies, 'name' );
    149151        $data = array(
    150152            'capabilities' => $post_type->cap,
     
    154156            'name'         => $post_type->label,
    155157            'slug'         => $post_type->name,
     158            'taxonomies'   => array_values( $taxonomies ),
    156159        );
    157160        $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
     
    204207                    'description'  => __( 'All capabilities used by the resource.' ),
    205208                    'type'         => 'array',
     209                    'items'        => array(
     210                        'type' => 'string',
     211                    ),
    206212                    'context'      => array( 'edit' ),
    207213                    'readonly'     => true,
     
    237243                    'readonly'     => true,
    238244                ),
     245                'taxonomies'       => array(
     246                    'description'  => __( 'Taxonomies associated with resource.' ),
     247                    'type'         => 'array',
     248                    'items'        => array(
     249                        'type' => 'string',
     250                    ),
     251                    'context'      => array( 'view', 'edit' ),
     252                    'readonly'     => true,
     253                ),
    239254            ),
    240255        );
Note: See TracChangeset for help on using the changeset viewer.