Tamanho da imagem em destaque no painel ADMIN?

4

Eu quero ser totalmente claro sobre isso, o que eu gostaria de fazer é alterar o tamanho da miniatura da imagem em destaque no painel ADMIN, não no front end.

Estou criando um tema do WP-admin e preciso deixar a imagem em destaque maior no back-end.

Ao que parece, as imagens em destaque na tela de edição de post sempre cuspiam em 266x148px, idealmente eu gostaria que elas fossem de tamanho real. Eu procurei por aí e não encontrei nenhum gancho ou função que me deixasse fazer isso, mas se alguém souber como, são as pessoas aqui.

    
por andy 29.06.2013 / 01:20

3 respostas

1

Você pode filtrar 'admin_post_thumbnail_html' e substituir o elemento img por um novo no tamanho necessário.

Tudo o mais fica confuso e pode levar a efeitos colaterais.

  • A filtragem de image_downsize ao assistir por um tamanho de 266×266 pode afetar imagens que não devem ser mostradas no metabox.
  • Alterar o tamanho de post-thumbnail temporary não é fácil, porque não há pontos seguros para iniciar e terminar esse filtro.
por fuxia 29.06.2013 / 01:36
1

A partir de WordPress 4.4 , foi introduzido um novo filtro, admin_post_thumbnail_size , que permite modificar o exibir o tamanho da imagem da miniatura da postagem na caixa meta Imagem em destaque.

  

Quando um tema adiciona suporte a "pós-miniatura", um tamanho de imagem especial de "pós-miniatura" é registrado, o que difere do tamanho de imagem de "miniatura" gerenciado por meio do arquivo Configurações > Tela de mídia.

Podemos usar esse filtro para alterar o post-thumbnail size (266 x 266 px) e modificá-lo para usar o tamanho padrão de thumbnail (150 x 15 px).

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

Um tamanho específico (por exemplo, 100 x 100 px) também pode ser especificado ou definido como um substituto, caso o intermediário o tamanho da miniatura não está disponível.

    
por rjb 03.01.2017 / 22:09
0

Você poderia tentar isso

/**
 * step 1   define custom image size
 *
 *          either plan to use 'full' (returns the size of the image you uploaded)
 *          OR define our custom image size so we can call one of those instead
 *          of the system defined default 'post-thumbnail'
 *
 *          Remainder of this example assumes using 'full'
 *          no need to define custom a custom image size
 *          so remove the following add_image_size() line (and thereby skip step 1).
 */
//add_image_size( 'admin-post-thumbnail', 846, 288, true );

/**
 * step 2   replace the meta box with ours, for standard post type only
 *
 *          set our own callback and move it into the larger main column
 *
 *          Note the image, even in full size, won't ever have greater width than
 *          the current column width as CSS and modern admin panel make the image
 *          elements responsive to the column width.
 */
 add_action('do_meta_boxes', 'wpse104670_move_meta_box');

function wpse104670_move_meta_box(){
    remove_meta_box( 'postimagediv', 'post', 'side' );
    add_meta_box('postimagediv', __('Featured Image'), 'wpse104670_post_thumbnail_meta_box', 'post', 'normal', 'low');
}

// step 3   custom callback to call our functional replacement for _wp_post_thumbnail_html for post type only
function wpse104670_post_thumbnail_meta_box( $post ) {
    $thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
    echo wpse104670_wp_post_thumbnail_html( $thumbnail_id, $post->ID );
}

/**
 * step 4   replace _wp_post_thumbnail_html with our version that calls 'full'
 *          (or e.g. 'admin-post-thumbnail' if custom)
 *          instead of the default 'post-thumbnail'
 *
 *          We could do more here, like adjust the content width variable, but
 *          not entirely necessary as custom image size we defined will
 *          handle most of it and admin section has responsive CSS keeping image
 *          from ever exceeding column width.
 */
function wpse104670_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 = '<p class="hide-if-no-js"><a title="%s" href="%s" id="set-post-thumbnail" class="thickbox">%s</a></p>';
    $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['full'] ) )    // use 'full' for system defined fullsize image OR 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, 'full' ); // use 'full' for system defined fullsize image OR 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 .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail" onclick="WPRemoveThumbnail(\'' . $ajax_nonce . '\');return false;">' . esc_html( $post_type_object->labels->remove_featured_image ) . '</a></p>';
        }
        $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 );
}
    
por rambillo 08.12.2015 / 00:01