仅更改自定义帖子类型的管理员帖子缩略图大小

时间:2017-04-03 作者:Wilco

我只想更改一个自定义帖子类型的特征图像的大小。这就是我目前拥有的:

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\');
这个函数实现了我所期望的功能,但我想知道是否有更好的方法来调用自定义帖子类型“slider”,而不必接触其他类型。

提前感谢

2 个回复
最合适的回答,由SO网友:Fayaz 整理而成

admin_post_thumbnail_size 采用三个参数:

$thumb\\u大小:如果在筛选器中不执行任何操作,则选择thumb大小。

  • $缩略图\\u id:缩略图附件id。

    $post:关联的WP\\U post实例

    因此,您可以利用这些参数在代码中进行更好的控制。使用如下代码:

    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);
    

  • SO网友:Jeffrey von Grumbkow

    对于特定的post\\u类型,没有筛选器可以执行此操作,但您可以使用get_post_type( esc_attr( $_GET[\'post\'] ) ) 基本保存1行代码。

    您还可以去掉else语句,因为if语句有一个返回值,它无论如何都不会在if之后到达。除此之外,这基本上就是你所做的。

    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\' );