Un usuario preguntó 👇
¿Cómo utilizo este plugin en mi iPhone sin ancho y alto de datos? Puedo ver al agregar los tamaños directamente al código de anclaje en Chrome que puedo hacer clic en una imagen y el plugin funciona de repente. ¿Hay alguna forma de inyectar ancho y alto de datos en las imágenes para que funcionen? Sería muy útil para usted agregar algo al archivo functions.php u obtener una actualización para agregar los tamaños.
(@awelzel)
Hace 1 año, 6 meses
el ancho y la altura de los datos son obligatorios; sin estos parámetros, no se utilizará un enlace a la caja de luz, ya que Photoswipe necesita conocer el ancho y la altura de la imagen vinculada.
El plugin normalmente agregará el ancho y la altura de los datos en función de los metadatos de la imagen vinculada. Pero esto requiere que las imágenes estén en el código HTML en el momento en que se crea la página antes de que se envíe al navegador, porque esto se hace usando un filtro de salida del lado del servidor (ver https://github.com/arnowelzel/lightbox-photoswipe/blob/master/lightbox-photoswipe.php#L226, línea 226-330). Si las imágenes se agregan dinámicamente solo con JavaScript, eso no funcionará.
Si las imágenes ya están en HTML y aún no funcionan automáticamente, entonces puede haber un problema de compatibilidad con algún otro plugin que agregue las imágenes después de aplicar el filtro de salida Lightbox con PhotoSwipe.
Esta respuesta fue modificada hace 1 año, 6 meses. Causa: se ha agregado un número de línea al enlace de inicio de subprocesos de Github
(@ a4jpcom)
Hace 1 año, 6 meses
Agregué esto al archivo functions.php de ahora en adelante y arreglé la galería de bloques. Solo quiero una forma de agregarlo a la galería clásica también.
/*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;
}
¿Podrías agregar el código al plugin cuando todo funcione? Esto podría solucionar muchos plugins incompatibles similares a los que he estado usando a lo largo de los años.
Vi que Kadence Blocks creaba código de una manera que no inyectaba el ancho o la altura de los datos y funcionaba de alguna manera.
Estoy tan contento después de años de evitar esto, finalmente pensé en una forma de hacer que la caja de luz funcione ^^
(@awelzel)
Hace 1 año, 6 meses
Lo siento, ¡esta solución no es una solución! ¡No uses esto!
data-width
y data-height
el ancho y el alto de la imagen deben estar ahí y no solo vacíos " "
.
La verdadera pregunta es: ¿por qué el filtro de contenido de mi plugin no funciona en su sitio web? ¿Tiene algunos plugins de almacenamiento en caché de sitios web activos y, de ser así, cuáles?
Editar: verificaré si estoy usando el filtro the_content
mi plugin funcionará mejor que capturar el búfer de salida, pero es obligatorio tener los tamaños de imagen correctos en el atributo, no es suficiente tener atributos vacíos.
Esta respuesta fue modificada hace 1 año, 6 meses. Esta respuesta fue modificada hace 1 año, 6 meses.
(@awelzel)
Hace 1 año, 6 meses
Acabo de comprobar, si el filtro the_content
es suficiente – no. El problema es ese the_content
devolverá la publicación o la página tal como está almacenada en la base de datos y antes de se procesan los atajos. Esto significa que, si hay alguna galería, seguirá siendo tan y, por lo tanto, mi plugin no vería ninguna de las imágenes.
Por tanto, no cambiaré nada. Avíseme si usa un plugin de almacenamiento en caché; esto puede interferir con Lightbox con PhotoSwipe. Como prueba, puede probar lo siguiente:
Primero ingrese su «corrección» functions.php
y luego en /wp-content/plugins/lightbox-photoswipe/lightbox-photoswipe.php
, línea 71, sustituto
add_action('template_redirect', array($this, 'outputFilter'), 99);
y:
add_action('template_redirect', array($this, 'outputFilter'), PHP_INT_MAX);
¿Solucionó tu problema??
0 / 0