Changeset 42185 for trunk/src/wp-includes/widgets/class-wp-widget-text.php
- Timestamp:
- 11/15/2017 02:26:56 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/widgets/class-wp-widget-text.php
r42001 r42185 180 180 181 181 /** 182 * Filter gallery shortcode attributes. 183 * 184 * Prevents all of a site's attachments from being shown in a gallery displayed on a 185 * non-singular template where a $post context is not available. 186 * 187 * @since 4.9.0 188 * 189 * @param array $attrs Attributes. 190 * @return array Attributes. 191 */ 192 public function _filter_gallery_shortcode_attrs( $attrs ) { 193 if ( ! is_singular() && empty( $attrs['id'] ) && empty( $attrs['include'] ) ) { 194 $attrs['id'] = -1; 195 } 196 return $attrs; 197 } 198 199 /** 182 200 * Outputs the content for the current Text widget instance. 183 201 * … … 222 240 } 223 241 224 // Nullify the $post global during widget rendering to prevent shortcodes from running with the unexpected context. 225 $suspended_post = null; 226 if ( isset( $post ) ) { 227 $suspended_post = $post; 242 // Override global $post so filters (and shortcodes) apply in a consistent context. 243 $original_post = $post; 244 if ( is_singular() ) { 245 // Make sure post is always the queried object on singular queries (not from another sub-query that failed to clean up the global $post). 246 $post = get_queried_object(); 247 } else { 248 // Nullify the $post global during widget rendering to prevent shortcodes from running with the unexpected context on archive queries. 228 249 $post = null; 229 250 } 251 252 // Prevent dumping out all attachments from the media library. 253 add_filter( 'shortcode_atts_gallery', array( $this, '_filter_gallery_shortcode_attrs' ) ); 230 254 231 255 /** … … 279 303 280 304 // Restore post global. 281 if ( isset( $suspended_post ) ) { 282 $post = $suspended_post; 283 } 305 $post = $original_post; 306 remove_filter( 'shortcode_atts_gallery', array( $this, '_filter_gallery_shortcode_attrs' ) ); 284 307 285 308 // Undo suspension of legacy plugin-supplied shortcode handling.
Note: See TracChangeset
for help on using the changeset viewer.