Respuesta corta: no, no por defecto. El link="lightbox" La opción es una característica de Gutenberg (editor de bloques) y no es implementado en el legado código corto.
El shortcode todavía solo admite:
enlace = «archivo»
enlace = «adjunto»
enlace = «ninguno»
y utiliza el antiguo canal de renderizado de shortcode, no el basado en bloques. Entonces Actualmente no es compatible con el núcleo de WordPress.
Si necesita un comportamiento de caja de luz con el código corto, sus opciones son:
use una biblioteca de caja de luz de JavaScript dirigida a enlaces de galería
filtrar post_gallery y agregue los atributos de datos requeridos manualmente
cambiar al bloque Galería en Gutenberg
use un complemento que extienda el código corto de la galería
En resumen: los bloques y códigos cortos de Gutenberg son sistemas y características separados agregado al bloque Galería no se aplica automáticamente a .
Hola Pouya,
Muchas gracias por tu rápida respuesta.
¿Hay algún plan en la hoja de ruta para implementar esta caja de luz en código corto?
¿Sería posible generar el bloque de galería a partir de ID de imágenes (en un archivo PHP, sin pasar por el administrador)? Por ejemplo, con render_block_core_image.
Gracias
Hola Helen, buenas preguntas.
En cuanto a la hoja de ruta: en lo que respecta a los planes básicos públicos de WordPress, actualmente no hay indicios de que link="lightbox" se agregará al legado código corto. La dirección general del desarrollo central es claramente hacia los bloques, y las nuevas características como la caja de luz incorporada se están implementando solo en los bloques Galería/Imagen, no en los códigos cortos.
Acerca de generar una galería desde PHP sin usar el administrador: Sí, eso es posible, pero sólo usando bloques, no el código corto.
Puede renderizar mediante programación un bloque central/galería a partir de ID de imágenes usando render_block(). Por ejemplo:
Esto genera el mismo marcado de galería generado por el editor de bloques, incluida la compatibilidad con lightbox nativo, y funciona completamente desde PHP.
No existe una forma equivalente de habilitar la función de bloqueo de caja de luz en el shortcode en sí sin JavaScript personalizado o un complemento, ya que el shortcode y los sistemas de bloques son rutas separadas en el núcleo.
En resumen: • No se conocen planes para ampliar el soporte de la caja de luz a • Sí, las galerías se pueden generar desde PHP usando renderizado en bloque. • El uso de bloques mediante programación es el enfoque compatible con versiones futuras recomendado.
Espero que esto ayude a aclarar las opciones 🙂
Pouya,
Gracias, eso me queda muy claro.
¿Tiene un ejemplo funcional de una galería de bloques generada en un archivo PHP con la caja de luz?
Gracias de antemano.
Sí, esto es posible.
Puede renderizar un bloque principal de la Galería directamente en PHP y habilitar el nativo lightbox pasando atributos a render_block().
Esto funciona en versiones recientes de WordPress y no requiere JS personalizado.
Esta respuesta fue modificada hace 3 semanas por Pouya.
Esta respuesta fue modificada hace 3 semanas por Pouya.
Esta respuesta fue modificada hace 3 semanas por Pouya.
Hola Pouya,
Gracias por tu ejemplo, pero es imposible generar una galería en un archivo PHP sin tener que poner toda la estructura (HTML y bloque de comentarios) en los InnerBlocks. Tendría algo más dinámico, para que las futuras actualizaciones se aplicaran automáticamente (nuevas funciones, por ejemplo).
¿Crees que eso es posible? ¿O la forma en que funciona el bloque significa que tenemos que actuar así?
Que tengas un buen día.
Hola, buena pregunta, y básicamente tienes razón.
Por el momento, si desea renderizar un bloque exclusivamente desde PHP, WordPress todavía espera que la estructura del bloque (atributos/bloques internos) se defina en el momento del renderizado. Todavía no existe una API de nivel superior que le permita decir «renderizar una galería dinámicamente» sin describir los datos del bloque en sí.
Entonces hoy las opciones son básicamente:
Defina los datos del bloque (attrs/innerBlocks) en PHP y páselo a render_block()o
Deje que el bloque exista en el editor y solo personalice el comportamiento mediante filtros/estilos.
Todavía no hay una manera de conectarse a la Galería principal para que futuros cambios de bloques se apliquen automáticamente sin proporcionar la estructura del bloque. Esa es una limitación actual de cómo se representan los bloques en el lado del servidor.
Con suerte, esto mejorará a medida que más bloques avancen hacia API del lado del servidor más ricas, pero por ahora así es como funciona.
Que tengas un buen día 🙂
Gracias por tu respuesta.
render_block() no funciona en absoluto para galerías e imágenes, ya que el renderizado se gestiona completamente en el lado de Gutenberg JS.
Logré generar una galería a través de do_block. Aquí hay un ejemplo en caso de que alguien más tenga las mismas preguntas:
$image_ids = [27, 28]; // your IDs image list do_gallery1($image_ids, 3);
function do_gallery1($image_ids, $nbCol) {
$content="';
foreach ($image_ids as $id) {
$thumb_url = wp_get_attachment_image_url($id, 'thumbnail'); // vignette //$large_url = wp_get_attachment_image_url($id, 'large'); // utilisé par la lightbox $alt = get_post_meta($id, '_wp_attachment_image_alt', true);
Sin embargo, cabe señalar que en caso de una actualización sustancial de la funcionalidad de la galería, será necesario regresar y realizar cambios en el archivo.
Si a alguien se le ocurre alguna solución mejor, la aceptaré 🙂
Gracias por su ayuda. Estoy cerrando el billete.
Gracias por la discusión, solo para aclarar y cerrar esto.
render_block() funciona para bloques centrales, incluida la Galería, pero solo cuando se proporciona la estructura de bloque completa (atributos + bloques internos). Actualmente no existe una API PHP de nivel superior para generar dinámicamente una galería sin definir el marcado del bloque.
Lo que terminé haciendo fue generar manualmente comentarios de bloque válidos y renderizarlos con do_blocks(). Esto permite que la Galería principal (incluida la caja de luz nativa) funcione sin JS personalizado.
Esto funciona bien, con la salvedad de que si el bloque de la Galería cambia significativamente en el futuro, es posible que sea necesario actualizar este marcado, lo que parece ser una limitación actual de la representación de bloques del lado del servidor.