diff --git src/wp-admin/includes/class-wp-site-icon.php src/wp-admin/includes/class-wp-site-icon.php
index 42e2ca6..fbc7c6c 100644
|
|
class WP_Site_Icon { |
229 | 229 | * @return array|null|string The attachment metadata value, array of values, or null. |
230 | 230 | */ |
231 | 231 | public function get_post_metadata( $value, $post_id, $meta_key, $single ) { |
232 | | $site_icon_id = get_option( 'site_icon' ); |
| 232 | if ( $single && '_wp_attachment_backup_sizes' === $meta_key ) { |
| 233 | $site_icon_id = get_option( 'site_icon' ); |
233 | 234 | |
234 | | if ( $post_id == $site_icon_id && '_wp_attachment_backup_sizes' == $meta_key && $single ) { |
235 | | add_filter( 'intermediate_image_sizes', array( $this, 'intermediate_image_sizes' ) ); |
| 235 | if ( $post_id === (int) $site_icon_id ) { |
| 236 | add_filter( 'intermediate_image_sizes', array( $this, 'intermediate_image_sizes' ) ); |
| 237 | } |
236 | 238 | } |
237 | 239 | |
238 | 240 | return $value; |
diff --git tests/phpunit/tests/image/site_icon.php tests/phpunit/tests/image/site_icon.php
index e634ee9..cd30bf6 100644
|
|
class Tests_WP_Site_Icon extends WP_UnitTestCase { |
127 | 127 | $this->assertFalse( get_option( 'site_icon', false ) ); |
128 | 128 | } |
129 | 129 | |
| 130 | /** |
| 131 | * @ticket 34368 |
| 132 | */ |
| 133 | function test_get_post_metadata() { |
| 134 | $attachment_id = $this->_insert_attachment(); |
| 135 | update_option( 'site_icon', $attachment_id ); |
| 136 | |
| 137 | $this->wp_site_icon->get_post_metadata( '', $attachment_id, '_some_post_meta', true ); |
| 138 | $this->assertFalse( has_filter( 'intermediate_image_sizes', array( $this->wp_site_icon, 'intermediate_image_sizes' ) ) ); |
| 139 | |
| 140 | $this->wp_site_icon->get_post_metadata( '', $attachment_id, '_wp_attachment_backup_sizes', true ); |
| 141 | $this->assertSame( 10, has_filter( 'intermediate_image_sizes', array( $this->wp_site_icon, 'intermediate_image_sizes' ) ) ); |
| 142 | |
| 143 | wp_delete_attachment( $attachment_id, true ); |
| 144 | } |
| 145 | |
130 | 146 | function _custom_test_sizes( $sizes ) { |
131 | 147 | $sizes[] = 321; |
132 | 148 | |