Ändern Sie die Größe der Miniaturansicht des Admin-Posts nur für den benutzerdefinierten Post-Typ

Ich möchte die Größe des featured Bilds nur für einen benutzerdefinierten Beitragstyp ändern. Das habe ich derzeit:

function custom_admin_thumb_size($thumb_size){ global $post_type; if( 'slider' == $post_type ){ return array(1000,400); }else{ return array(266,266); } } add_filter( 'admin_post_thumbnail_size', 'custom_admin_thumb_size'); 

Diese function tut was ich erwartet habe, aber ich frage mich, ob es eine bessere Methode gibt, den benutzerdefinierten Post-Typ “Slider” aufzurufen, ohne die anderen zu berühren.

Danke im Voraus

Solutions Collecting From Web of "Ändern Sie die Größe der Miniaturansicht des Admin-Posts nur für den benutzerdefinierten Post-Typ"

admin_post_thumbnail_size benötigt drei Parameter:

  1. $ thumb_size: ausgewählt Thumb Größe, wenn Sie nichts im Filter tun.

  2. $ thumbnail_id: Thumbnail-Anhang-ID.

  3. $ post: verbundene WP_Post-Instanz

Daher können Sie diese Parameter verwenden, um eine bessere Kontrolle in Ihrem CODE zu haben. Verwenden Sie den CODE wie folgt:

 function custom_admin_thumb_size( $thumb_size, $thumbnail_id, $post ) { if( 'slider' === $post->post_type ) { return array( 1000, 400 ); } return $thumb_size; } add_filter( 'admin_post_thumbnail_size', 'custom_admin_thumb_size', 10, 3); 

Es gibt keinen Filter, der dies nur für einen bestimmten post_type tut, aber Sie können get_post_type( esc_attr( $_GET['post'] ) ) , um im Prinzip eine Zeile Code zu speichern.

Sie können die else-statement auch herausnehmen, da Ihre if-statement eine Rückgabe hat, die sie nach der if-Abfrage sowieso nicht erreichen wird. Ansonsten ist das im Grunde was du tust.

 function custom_admin_thumb_size( $thumb_size ){ if( 'slider' == get_post_type( esc_attr( $_GET['post'] ) ) ) { return array( 1000, 400 ); } return array( 266, 266); } add_filter( 'admin_post_thumbnail_size', 'custom_admin_thumb_size' );