[wp-trac] [WordPress Trac] #28512: Make the post thumbnail size filterable for the Featured Image meta box

WordPress Trac noreply at wordpress.org
Thu Jun 12 16:22:35 UTC 2014


#28512: Make the post thumbnail size filterable for the Featured Image meta box
-----------------------------+-----------------------------
 Reporter:  DrewAPicture     |      Owner:
     Type:  enhancement      |     Status:  new
 Priority:  normal           |  Milestone:  Awaiting Review
Component:  Post Thumbnails  |    Version:
 Severity:  normal           |   Keywords:  has-patch
  Focuses:                   |
-----------------------------+-----------------------------
 I'd like to propose making the Featured Image meta box thumbnail image
 size filterable.

 Currently, the only way to change the size is to basically duplicate the
 code in `_wp_post_thumbnail_html` on the `admin_post_thumbnail_html`
 filter hook. This approach is not ideal:

 {{{
 #!php
 <?php
 function change_thumbnail_size( $content, $post_id ) {
         $thumbnail_id = get_post_thumbnail_id( $post_id );
         $upload_iframe_src = esc_url( get_upload_iframe_src( 'image',
 $post_id ) );
         $set_thumbnail_link = '<p class="hide-if-no-js"><a title="' .
 esc_attr__( 'Set featured image' ) . '" href="%s" id="set-post-thumbnail"
 class="thickbox">%s</a></p>';
         $content = sprintf( $set_thumbnail_link, $upload_iframe_src,
 esc_html__( 'Set featured image' ) );

         if ( $thumbnail_id && get_post( $thumbnail_id ) ) {
                 $thumbnail_html = wp_get_attachment_image( $thumbnail_id
 );

                 if ( ! empty( $thumbnail_html ) ) {
                         $ajax_nonce = wp_create_nonce(
 'set_post_thumbnail-' . $post_id );
                         $content = sprintf( $set_thumbnail_link,
 $upload_iframe_src, $thumbnail_html );
                         $content .= '<p class="hide-if-no-js"><a href="#"
 id="remove-post-thumbnail" onclick="WPRemoveThumbnail(\'' . $ajax_nonce .
 '\');return false;">' . esc_html__( 'Remove featured image' ) .
 '</a></p>';
                 }
         }
         return $content;
 }
 add_filter( 'admin_post_thumbnail_html', 'change_thumbnail_size', 10, 2 );
 }}}

 Note this line:
 {{{
 #!php
 <?php
 $thumbnail_html = wp_get_attachment_image( $thumbnail_id );
 }}}

 I'm relying on the default image size ('thumbnail') in
 `wp_get_attachment_image()`. My specific use case is to display the actual
 featured image size that will be used in the theme as a method to reduce
 confusion for content managers.

 I had previously looked at adding a filter in `image_downsize()`, but I
 think the context would be far too muddled and tough to target that far
 down the call stack.

 I also looked at #20205, which proposes making the return of
 `wp_get_attachment_image_src()` filterable, though that wouldn't really
 help here as you're still basically required to regenerate the return
 markup.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/28512>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list