← All changes
|
json-endpoints/class.wpcom-json-api-render-shortcode-endpoint.php
+7
-1
12.0.3
→
16.3-a.1
View file →
| @@ -1,6 +1,10 @@ | ||
| 1 | 1 | <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName |
| 2 | 2 | |
| 3 | +if ( ! defined( 'ABSPATH' ) ) { | |
| 4 | + exit( 0 ); | |
| 5 | +} | |
| 6 | + | |
| 3 | 7 | new WPCOM_JSON_API_Render_Shortcode_Endpoint( |
| 4 | 8 | array( |
| 5 | 9 | 'description' => 'Get a rendered shortcode for a site. Note: The current user must have publishing access.', |
| 6 | 10 | 'group' => 'sites', |
| @@ -31,8 +35,10 @@ | ||
| 31 | 35 | /** |
| 32 | 36 | * Render shortcode endpoint class. |
| 33 | 37 | * |
| 34 | 38 | * /sites/%s/shortcodes/render -> $blog_id |
| 39 | + * | |
| 40 | + * @phan-constructor-used-for-side-effects | |
| 35 | 41 | */ |
| 36 | 42 | class WPCOM_JSON_API_Render_Shortcode_Endpoint extends WPCOM_JSON_API_Render_Endpoint { |
| 37 | 43 | /** |
| 38 | 44 | * The API callback. |
| @@ -62,9 +68,9 @@ | ||
| 62 | 68 | |
| 63 | 69 | // Make sure only one shortcode is being rendered at a time |
| 64 | 70 | $pattern = get_shortcode_regex(); |
| 65 | 71 | preg_match_all( "/$pattern/s", $shortcode, $matches ); |
| 66 | - if ( count( $matches[0] ) > 1 ) { | |
| 72 | + if ( is_countable( $matches[0] ) && count( $matches[0] ) > 1 ) { | |
| 67 | 73 | return new WP_Error( 'invalid_shortcode', 'Only one shortcode can be rendered at a time.', 400 ); |
| 68 | 74 | } |
| 69 | 75 | |
| 70 | 76 | $render = $this->process_render( array( $this, 'do_shortcode' ), $shortcode ); |