set_post_thumbnail_size vs add_image_size


11

Qual é a diferença entre set_post_thumbnail_size e add_image_size? É set_post_thumbnail_size para todas as imagens e add_image_size para dimensionar imagens individualmente?

Obrigado.

Respostas:


26

Quando uma imagem é carregada no WordPress, ela é salva em seu tamanho original e também como algumas cópias redimensionadas em tamanhos diferentes. Dessa maneira, fica fácil usar tamanhos diferentes, da mesma imagem, para finalidades diferentes.

Por padrão, o WordPress cria 3 cópias em 3 tamanhos diferentes:

  • 'thumb'
  • 'medium'
  • 'large'

O tamanho em pixels para esses três tamanhos pode ser definido no painel do WordPress, no menu Settings -> Media.

Agora, a função add_image_sizeé usada para registrar um novo tamanho, que se soma aos três padrões.

Cada tamanho registrado pode ser recuperada usando o seu nome, em alguma função WordPress, por exemplo wp_get_attachment_image_src, wp_get_attachment_image, wp_get_attachment_link.

Todas essas funções aceitam um parâmetro $sizeque deve ser o nome de um dos tamanhos registrados (um dos três padrões ou um dos tamanhos personalizados registrados add_image_size).

Se 'full'for usado como $sizeargumento, a imagem original é retornada, a imagem não redimensionada.

Além das funções mencionadas acima, existem outras duas funções que usam tamanhos de imagem: get_the_post_thumbnaile the_post_thumbnail.

Essas duas funções obtêm (a primeira) e ecoam (a segunda) a imagem definida como "Imagem em destaque" para uma postagem.

O que é retornado (ou ecoado) por essas funções é uma imgtag html completa , algo como

<img scr="http://www.example.com/wp-content/2013/08/image-200x200.jpg" />

Então, qual é o tamanho usado?

Se a $sizefor passado como o segundo argumento (o primeiro é $postid), essas funções retornarão a imagem nesse tamanho. Caso contrário, procurar essas funções para um tamanho de imagem registrada com o nome: post-thumbnail.

Esse não é um dos três tamanhos padrão; na verdade, é o quarto tamanho padrão (o quinto é considerado full) e você pode registrá-lo chamando set_post_thumbnail_size.

então

set_post_thumbnail_size( $width, $height, $crop );

é um atalho para

add_image_size( 'post-thumbnail', $width, $height, $crop );

Se você não ligou set_post_thumbnail_size(o que significa que o tamanho 'post-thumbnail'não foi criado), o WordPress usará o tamanho thumbe, mesmo que esse tamanho não esteja disponível, o WordPress usará a imagem original, a que não foi redimensionada.

O registro de tamanhos de imagem personalizados pode ser muito útil ao projetar um tema, mas é importante não abusar: todas as imagens carregadas são copiadas e redimensionadas para todos os tamanhos registrados, portanto, o registro de vários tamanhos desacelerará bastante o processo de upload de imagens.

Uma nota:

Esteja ciente de que, quando o WordPress cria cópias em escala de uma imagem, ele nunca a amplia, mas apenas faz cópias menores: por exemplo, se a imagem original é 400x500px e o tamanho da imagem 'média' é 800x600px, tamanho médio e maior não são criados.

Portanto, o registro de um tamanho de imagem nunca garante que um arquivo de imagem para todos os tamanhos registrados realmente exista na pasta de conteúdo do WordPress. Mesmo porque o tamanho da imagem registrada muda facilmente: alterando configurações, alternando temas etc.

Quando um tamanho de imagem é alterado, por qualquer motivo, a alteração afeta as imagens carregadas após essa alteração; as imagens enviadas antes não alteram as dimensões e não são redimensionadas e salvas novamente.

Se for necessário confiar em tamanhos de imagem específicos após o upload de algumas imagens (por exemplo, após a alteração de temas), o plug-in Regenerar miniaturas será um salva-vidas.


2
Impressionante. Eu teria clicado 5 vezes por causa da sua resposta, mas o site não permite. Thanls.
Greeso

De nada, um está bem :)
gmazzap

Apenas mais uma pergunta: e se eu não chamar set_post_thumbnail_size (o que significa que o tamanho 'pós-miniatura' não foi criado, então chamo the_post_thumbnail. O que vai acontecer? (Porque the_post_thumbnail tentará usar a pós-miniatura como param).
Greeso

@GM, polegares acima para uma explicação lúcida
Istiaque Ahmed

Esta resposta é muito útil! No entanto, acho que isto: set_post_thumbnail_size( 150, 150 ); If you haven't called set_post_thumbnail_size (which means the size 'post-thumbnail' is not created), WordPress will use the size thumb, and if even this size is not available, WordPress will use the original image, the one not resized. ... está incorreto. Na minha experiência testando isso, se set_post_thumbnail_size()não tiver sido chamado, o WP volta à imagem em tamanho real.
Travis Northcutt

1

Partida Codex:

set_post_thumbnail_size

Defina as dimensões padrão de Imagem em destaque (anteriormente, Publicar miniatura). Para registrar tamanhos de imagem adicionais para Imagens em destaque, use: add_image_size ().

add_image_size

Registra um novo tamanho de imagem. Isso significa que o WordPress criará uma cópia da Imagem em destaque (anteriormente conhecida como miniatura da postagem) com as dimensões especificadas quando você enviar uma nova imagem.


Posso usar add_image_size sem usar set_post_thumbnail_size?
Greeso

Sim, claro.
Krzysiek Dróżdż
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.