Estou construindo um site para membros com o WordPress Multisite. É possível restringir quantas imagens estão sendo geradas, dependendo do modelo selecionado?
Tentei as seguintes linhas de código para gerar determinadas imagens no modelo da galeria:
// Generate on all uploads
add_theme_support('post-thumbnails');
set_post_thumbnail_size( 1440, 350, true );
add_image_size( 'standard_box', 450, 215, true );
add_image_size( 'default_image', 691, 9999 );
// Generate on gallery template only
if ( is_page_template('page-gallery.php') ) {
add_image_size( 'gallery', 900, 9999 );
add_image_size( 'gallery_thumb', 450, 450, true );
}
Isso não funcionou. Eu fiz algumas pesquisas e parece que não consigo encontrar nada sobre o assunto. Se você pudesse me apontar na direção certa, eu realmente aprecio isso.
Respostas:
Isso sempre foi um problema para mim - a falta de dimensionamento de imagens sob demanda e o número subseqüente de arquivos com os quais você pode terminar se tiver vários tamanhos!
Eu posso ver a lógica por trás de seus esforços - o problema é que
add_image_size
só entra de fato no ponto de upload. Como tal,is_page_template(..)
sempre seráfalse
.Um rápido google descobriu o Aqua Resizer , um script criado para resolver esse problema. Em vez de usar
add_image_size
, você usaaq_resize
diretamente no seu tema e, se não existir um tamanho para a imagem, ela será criada e armazenada em cache on-the-fly.Na verdade, eu usei uma técnica semelhante, embora diferente, em vários sites com muitos tamanhos de imagem. Você ainda salva a sobrecarga do WordPress, gerando todos os tamanhos para cada imagem carregada - elas são geradas on-the-fly (e armazenadas em cache) como e quando solicitadas. Onde difere, é que você pode simplesmente usar todas as funções de imagem padrão do WP e tags de modelo como faria normalmente!
Além disso, como o @Waqas mencionou, o uso do Aqua Resizer deixará arquivos órfãos quando você excluir uma imagem da sua biblioteca de mídia. Com a minha técnica, todos os arquivos serão excluídos, pois são salvos no banco de dados e reconhecidos pelo WordPress.
E na prática:
Pretendo transformar isso em um plug-in que converterá automaticamente todas as
add_image_size
chamadas em redimensionamento sob demanda. Portanto, observe este espaço!fonte
Disclaimer:
- Esta não é realmente uma resposta.
- Destina - se a ajudá-lo com sua pesquisa adicional sobre o assunto.
- Além disso, está refletindo uma ocorrência - pelo menos sentida - ultimamente mais frequente de perguntas semelhantes sobre problemas semelhantes.
Informações adicionais sobre este tópico sobre desenvolvimento do Wordpress:
Nota: A lista não é ordenada e abrangente por qualquer meio.
fonte
Se você deseja criar um polegar em tempo real, pode usar o redimensionador de imagens Aqua , mas há uma desvantagem neste mini script. As miniaturas criadas não serão excluídas ao excluir a imagem da biblioteca. Mas não é grande coisa. Se necessário, você pode fazê-lo através dos comandos SHH
fonte
Não é uma resposta direta para o seu problema. Mas eu vou ajudá-lo a fazer a imagem de acordo com sua necessidade.
Quando você usa add_image_size, ele não redimensiona as imagens existentes. funciona apenas para as novas imagens que serão carregadas depois de adicionar sua função add_image_size.
Portanto, seu código não gerará novas imagens para a função is_page_template.
Mas você pode usar uma classe php simples para resolver seu problema .... é uma classe php famosa que está sendo usada para muitos temas premium disponíveis no WordPress. É chamado Aqua-Resizer.
Você pode encontrar mais detalhes aqui https://github.com/syamilmj/Aqua-Resizer Wiki: https://github.com/syamilmj/Aqua-Resizer/wiki
Problema que pode surgir:
Esta função funciona desta maneira ....
Portanto, quando não é possível cortar (para imagem pequena que sua altura ou largura definida) não mostra nada. Você pode superar essa situação verificando se está obtendo um valor nulo após passar o URL dentro desta função com muita facilidade como o meu aqui ....
Dessa forma, você pode garantir que a imagem específica seja gerada para um modelo de página específico e, dessa forma, seu site ficará muito mais limpo.
PS: esta classe php usa o sistema de corte central do WordPress, para que não haja problemas de segurança.
fonte