From cf9b1dbc1f2bf4d72d5681ea6c847655b67e4185 Mon Sep 17 00:00:00 2001 From: Gary Pendergast Date: Wed, 21 Dec 2016 05:30:34 +0000 Subject: [PATCH] REST API: Fix PHP warnings when `get_theme_support( 'post-formats' )` is not an array. If `add_theme_support( 'post-formats' )` is called with no additional arguments, then `get_theme_support( 'post-formats' )` returns `true` rather than an array of supported formats. Avoid generating PHP warnings in this situation. Merge of [39620] to the 4.7 branch. Props dreamon11, ChopinBach. Fixes #39293. Built from https://develop.svn.wordpress.org/branches/4.7@39630 git-svn-id: http://core.svn.wordpress.org/branches/4.7@39570 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../rest-api/endpoints/class-wp-rest-posts-controller.php | 8 +++++++- wp-includes/version.php | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php index 40955b3c1d..4c495041af 100644 --- a/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php +++ b/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php @@ -1923,10 +1923,16 @@ class WP_REST_Posts_Controller extends WP_REST_Controller { case 'post-formats': $supports_formats = get_theme_support( 'post-formats' ); + + // Force to an array. Supports formats can return true even if empty in some cases. + $supports_formats = is_array( $supports_formats ) ? array_values( $supports_formats[0] ) : array(); + + $supported_formats = array_merge( array( 'standard' ), $supports_formats ); + $schema['properties']['format'] = array( 'description' => __( 'The format for the object.' ), 'type' => 'string', - 'enum' => array_merge( array( 'standard' ), $supports_formats ? array_values( $supports_formats[0] ) : array() ), + 'enum' => $supported_formats, 'context' => array( 'view', 'edit' ), ); break; diff --git a/wp-includes/version.php b/wp-includes/version.php index 6161c3546c..d1e92f43f1 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.7.1-alpha-39629'; +$wp_version = '4.7.1-alpha-39630'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.