WordPress Lightbox com PhotoSwipe Pergunta: largura e altura dos dados

Um usuário perguntou ?

Como uso este plugin no meu iPhone sem largura e altura de dados? Posso ver adicionando os tamanhos diretamente ao código âncora no Chrome que posso clicar em uma imagem e o plug-in funciona de repente. Existe uma maneira de injetar dados de largura e altura em imagens para fazê-lo funcionar? Seria muito útil para você adicionar algo ao arquivo functions.php ou obter uma atualização para adicionar os tamanhos.

(@awelzel)

1 ano, 6 meses atrás

a largura e a altura dos dados são necessárias; sem esses parâmetros, um link para a caixa de luz não será usado, pois o Photoswipe precisa saber a largura e a altura da imagem vinculada.

O plug-in normalmente adiciona os dados de largura e altura com base nos metadados da imagem vinculada. Mas isso exige que as imagens estejam no código HTML no momento em que a página é criada antes de ser enviada ao navegador, porque isso é feito usando um filtro de saída do lado do servidor (consulte https://github.com/arnowelzel/lightbox-photoswipe/blob/master/lightbox-photoswipe.php#L226, linha 226-330). Se as imagens forem adicionadas dinamicamente apenas com JavaScript, isso não funcionará.

Se as imagens já estiverem em HTML e ainda não funcionarem automaticamente, pode haver um problema de compatibilidade com algum outro plugin que adiciona as imagens após aplicar o filtro de saída Lightbox com PhotoSwipe.

Esta resposta foi modificada há 1 ano e 6 meses. Causa: um número de linha foi adicionado ao link de início do thread do Github

(@a4jpcom)

1 ano, 6 meses atrás

Eu adicionei isso ao arquivo functions.php de agora em diante e consertei a galeria de blocos. Eu só quero uma maneira de adicioná-lo à galeria clássica também.

/*Lightbox*/
add_filter('the_content', 'add_lightbox_rel');
function add_lightbox_rel( $content ) {
       global $post;
       $get_img ="/<a(.*?)href=('|")(.*?).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i";
       $img_replace="<a$1href=$2$3.$4$5 rel="lightbox[".$post->ID.']" title="'.$post->post_title.'" data-width=" " data-height=" "$6>';
       $content = preg_replace($get_img, $img_replace, $content);
       return $content;
}

Você poderia adicionar o código ao plugin quando tudo funcionar? Isso pode corrigir muitos plugins incompatíveis semelhantes aos que tenho usado ao longo dos anos.

Eu vi o Kadence Blocks criar código de uma forma que não injeta a largura ou altura dos dados e funcionou de alguma forma.

Estou tão feliz depois de anos evitando isso que finalmente pensei em uma maneira de fazer o lightbox funcionar ^^

(@awelzel)

1 ano, 6 meses atrás

Desculpe, esta solução não é uma solução! Não use isso!

data-width e data-height a largura e a altura da imagem devem estar lá e não apenas vazias " ".

A verdadeira questão é: por que o filtro de conteúdo do meu plugin não está funcionando no seu site? Você tem algum plugin de cache de site ativo e, em caso afirmativo, quais?

Edit: vou verificar se estou usando o filtro the_content meu plugin funcionará melhor do que capturar o buffer de saída, mas é obrigatório ter os tamanhos de imagem corretos no atributo, não basta ter atributos vazios.

Esta resposta foi modificada há 1 ano e 6 meses. Esta resposta foi modificada há 1 ano e 6 meses.

(@awelzel)

1 ano, 6 meses atrás

Acabei de verificar, se o filtro the_content é suficiente – não. o problema é que the_content retornará a postagem ou página conforme armazenada no banco de dados e antes de atalhos são processados. Isso significa que se houver alguma galeria, ela permanecerá como e, portanto, meu plugin não veria nenhuma das imagens.

Portanto, não vou mudar nada. Deixe-me saber se você usa um plugin de cache; isso pode interferir no Lightbox com PhotoSwipe. Como teste, você pode tentar o seguinte:

Primeiro digite sua “correção” functions.php e depois em /wp-content/plugins/lightbox-photoswipe/lightbox-photoswipe.phplinha 71, substituto

add_action('template_redirect', array($this, 'outputFilter'), 99);

e:

add_action('template_redirect', array($this, 'outputFilter'), PHP_INT_MAX);

Isto foi útil?

0 / 0

Deixe uma resposta 0

O seu endereço de email não será publicado. Campos obrigatórios são marcados *