<?php
/**
- * Class for implementing site icon functionality.
+ * Administration API: WP_Site_Icon class
+ *
+ * @package WordPress
+ * @subpackage Administration
+ * @since 4.3.0
+ */
+
+/**
+ * Core class used to implement site icon functionality.
*
* @since 4.3.0
*/
*/
public function create_attachment_object( $cropped, $parent_attachment_id ) {
$parent = get_post( $parent_attachment_id );
- $parent_url = $parent->guid;
+ $parent_url = wp_get_attachment_url( $parent->ID );
$url = str_replace( basename( $parent_url ), basename( $cropped ), $parent_url );
$size = @getimagesize( $cropped );
$metadata = wp_generate_attachment_metadata( $attachment_id, $file );
/**
- * Filter the site icon attachment metadata.
+ * Filters the site icon attachment metadata.
*
* @since 4.3.0
*
$only_crop_sizes = array();
/**
- * Filter the different dimensions that a site icon is saved in.
+ * Filters the different dimensions that a site icon is saved in.
*
* @since 4.3.0
*
* @return array|null|string The attachment metadata value, array of values, or null.
*/
public function get_post_metadata( $value, $post_id, $meta_key, $single ) {
- $site_icon_id = get_option( 'site_icon' );
+ if ( $single && '_wp_attachment_backup_sizes' === $meta_key ) {
+ $site_icon_id = get_option( 'site_icon' );
- if ( $post_id == $site_icon_id && '_wp_attachment_backup_sizes' == $meta_key && $single ) {
- add_filter( 'intermediate_image_sizes', array( $this, 'intermediate_image_sizes' ) );
+ if ( $post_id == $site_icon_id ) {
+ add_filter( 'intermediate_image_sizes', array( $this, 'intermediate_image_sizes' ) );
+ }
}
return $value;
}
}
-
-/**
- * @global WP_Site_Icon $wp_site_icon
- */
-$GLOBALS['wp_site_icon'] = new WP_Site_Icon;