Resize Admin Featured Image Thumbnail im CPT-Bearbeitungsbildschirm

Ich habe einen benutzerdefinierten Post-Typ für einen Schieberegler und verwende den Thumbnail-Uploader für ausgewählte Bilder, um das Bild festzulegen.

Ich habe das Meta-Feld “Featured Image” verschoben, um unterhalb des Titelbereichs im Admin zu sein. Um Verwechslungen zu vermeiden, möchte ich das “Thumbnail” (Bild im Admin-CPT-Editor) in den proportionalen Abmessungen des hochgeladenen Bildes anzeigen (in diesem Fall ein Slider-Bild mit einer Breite von 800 x 300 Pixel).

Momentan erscheint das Bild bei 266 Pixel Breite und ich glaube, dass es diese function ist, die es kontrolliert.

Ich bin mir bewusst, dass das Modifizieren nur für Asketen gilt und die Ausgabegröße des Bildes am Frontend nicht beeinflusst (ich weiß, wie ich das kontrollieren kann). Ein Benutzer, der ein Slider-Bild hochgeladen hat, erwartet jedoch keine Miniaturansicht.

Dies ist einfach, um dem Benutzer das Bild, das sie hochgeladen haben, in den richtigen Proportionen zu zeigen.

Zurzeit verwende ich dies, um die vorgestellte Bildmeta-Box zu verschieben;

// move the featured image box and rename to add_action('do_meta_boxes', 'wpse33063_move_meta_box'); function wpse33063_move_meta_box(){ remove_meta_box( 'postimagediv', 'slider-image', 'side' ); add_meta_box('postimagediv', __('Add Your Slider Image'), 'post_thumbnail_meta_box', 'slider-image', 'normal', 'high'); } 

Ich habe in diesem Post diesen und den folgenden (mehr mit TwentyTen verbundenen) Artikel gesehen, wo andere Methoden vorgeschlagen haben, um ein verkleinertes “Thumbnail” auf dem benutzerdefinierten Admin-Bearbeitungsbildschirm anzuzeigen. Ich habe diese Methoden ausprobiert und keiner von ihnen scheint zu funktionieren / alle Servererrors zurückzugeben.

Update: Ich habe meine eigene Frage beantwortet, nachdem ich eine Methode in WordPress Trac gefunden habe – siehe unten

Solutions Collecting From Web of "Resize Admin Featured Image Thumbnail im CPT-Bearbeitungsbildschirm"

Richtig, ich fand die Antwort in diesem Trac-Ticket , also ein großes Lob an @SergeyBiryukov. Ich poste hier für alle anderen, die es wissen wollen 😉 Allerdings habe ich die benutzerdefinierte Größe nicht geknackt (zB 800px breit mal 200px hoch) was schön wäre.

 // move the featured image box from the right hand column, to sit under the title section, and rename it add_action('do_meta_boxes', 'wpse33063_move_meta_box'); function wpse33063_move_meta_box(){ remove_meta_box( 'postimagediv', 'slider-image', 'side' ); add_meta_box('postimagediv', __('Add Your Slider Image'), 'post_thumbnail_meta_box', 'slider-image', 'normal', 'high'); } // change size of admin featured image size in edit screen function change_featured_image_size_in_admin_28512( $downsize, $id, $size ) { if ( ! is_admin() || ! get_current_screen() || 'edit' !== get_current_screen()->parent_base ) { return $downsize; } remove_filter( 'image_downsize', __FUNCTION__, 10, 3 ); // settings can be thumbnail, medium, large, full $image = image_downsize( $id, 'medium' ); add_filter( 'image_downsize', __FUNCTION__, 10, 3 ); return $image; } add_filter( 'image_downsize', 'change_featured_image_size_in_admin_28512', 10, 3 ); 

Um eine benutzerdefinierte Größe (nach dem Aktualisieren / Speichern der Post) zu erreichen, versuchen Sie folgendes …

 // Step 1 - define our custom image size so we can call it instead of the system defined default 'post-thumbnail' add_image_size( 'slider_image', 800, 300, true ); // Step 2 - replace the meta box with ours for our CPT 'slider-image' only, especially so we can set our own callback. The rename is nice, too. add_action('do_meta_boxes', 'wpse33063_move_meta_box'); function wpse33063_move_meta_box(){ remove_meta_box( 'postimagediv', 'slider-image', 'side' ); add_meta_box('postimagediv', __('Add Your Slider Image'), 'wpse33063_post_thumbnail_meta_box', 'slider-image', 'normal', 'high'); } // Step 3 - custom callback to call our functional replacement for _wp_post_thumbnail_html for our CPT 'slider-image' only function wpse33063_post_thumbnail_meta_box( $post ) { $thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true ); echo wpse33063_wp_post_thumbnail_html( $thumbnail_id, $post->ID ); } // Step 4 - replace _wp_post_thumbnail_html with our version that calls our thumbnail 'slider_image' instead of the default 'post-thumbnail' // - we could do more here, like adjust the content width variable, but not entirely necessary. The custom image size we defined will // - handle most of it, plus the admin section these days has responsive css, so the image doesn't blow-out column width in any event. function wpse33063_wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) { global $content_width, $_wp_additional_image_sizes; $post = get_post( $post ); $post_type_object = get_post_type_object( $post->post_type ); $set_thumbnail_link = '

https://wordpress.stackexchange.com/questions/160900/resize-admin-featured-image-thumbnail-in-cpt-edit-screen/%s

'; $upload_iframe_src = get_upload_iframe_src( 'image', $post->ID ); $content = sprintf( $set_thumbnail_link, esc_attr( $post_type_object->labels->set_featured_image ), esc_url( $upload_iframe_src ), esc_html( $post_type_object->labels->set_featured_image ) ); if ( $thumbnail_id && get_post( $thumbnail_id ) ) { $old_content_width = $content_width; $content_width = 266; if ( !isset( $_wp_additional_image_sizes['slider_image'] ) ) // use our custom image size instead of 'post-thumbnail' $thumbnail_html = wp_get_attachment_image( $thumbnail_id, array( $content_width, $content_width ) ); else $thumbnail_html = wp_get_attachment_image( $thumbnail_id, 'slider_image' ); // use our custom image size instead of 'post-thumbnail' if ( !empty( $thumbnail_html ) ) { $ajax_nonce = wp_create_nonce( 'set_post_thumbnail-' . $post->ID ); $content = sprintf( $set_thumbnail_link, esc_attr( $post_type_object->labels->set_featured_image ), esc_url( $upload_iframe_src ), $thumbnail_html ); $content .= '

' . esc_html( $post_type_object->labels->remove_featured_image ) . '

'; } $content_width = $old_content_width; } /** * Filter the admin post thumbnail HTML markup to return. * * @since 2.9.0 * * @param string $content Admin post thumbnail HTML markup. * @param int $post_id Post ID. */ return apply_filters( 'admin_post_thumbnail_html', $content, $post->ID ); }

Ab WordPress 4.4 wurde ein neuer Filter eingeführt, admin_post_thumbnail_size , mit dem die Anzeigegröße des Post-Thumbnails in der Meta-Box “Featured Image” admin_post_thumbnail_size werden kann.

Wenn ein Theme die Post-Thumbnail-Unterstützung hinzufügt, wird eine spezielle “Post-Thumbnail” -Bildgröße registriert, die sich von der “Thumbnail” -Bildgröße unterscheidet, die über den Bildschirm Einstellungen> Medien verwaltet wird.

Wir können diesen Filter verwenden, um die post-thumbnail Größe (266 x 266 px) zu ändern und sie so zu ändern, dass sie stattdessen die Standard- thumbnail Größe (150 x 15 px) verwendet.

 /** * Change Display Size of Featured Image Thumbnail in WordPress Admin Dashboard */ add_filter( 'admin_post_thumbnail_size', function ( $size, $thumbnail_id, $post ) { $sizes = get_intermediate_image_sizes(); $result = array_search( 'thumbnail', $sizes ); $size = is_numeric( $result ) ? $sizes[ $result ] : array( 100, 100 ); return $size; }, 10, 3 ); 

Eine bestimmte Größe (z. B. 100 x 100 px) kann ebenfalls festgelegt oder als Fallback festgelegt werden, falls die mittlere Miniaturgröße nicht verfügbar ist.