Hola @rafax
Como lo haces globalmente debes especificar el ID del post que quieres comprobar.
Considerando que lo haces dentro del loop.
Revisa este enlace; https://developer.wordpress.org/reference/functions/get_post_gallery/
Iniciador del debate
rafax
(@rafax)
Gracias por responder tan pronto @kallookoo , eso ya lo he probado y siempre me retorna falso, este es el código:
echo var_dump(get_post_gallery($post->ID));
if ( get_post_gallery($post->ID) && !is_single()) :
echo '<div class="entry-gallery">';
echo get_post_gallery($post->ID);
echo '</div>';
else:
ivanicof_post_thumbnail();
endif; ?>
¿Para qué usas !is_single()
si es una entrada?
¿Has probado?
<?php /* The loop */
while ( have_posts() ) : the_post();
if ( get_post_gallery() ) :
echo '<div class="entry-gallery">';
echo get_post_gallery();
echo '</div>';
else:
ivanicof_post_thumbnail();
endif;
endwhile;
?>
-
Esta respuesta fue modificada hace 4 años, 11 meses por LGrusin.
Iniciador del debate
rafax
(@rafax)
Para verificar si se encuentra en la lista del blog y no en la pagina de entrada en si.
Single.php también usa esta template part…
Lo que me devuelve falso siempre es get_post_gallery.
Este código se encuentra en una template part content-gallery.php que es usada dentro del loop sin problemas
/* Start the Loop */
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', get_post_format() );
endwhile;
Todo es correcto excepto que la función de galería no encuentra las galerías que hay en el contenido
-
Esta respuesta fue modificada hace 4 años, 11 meses por rafax.
-
Esta respuesta fue modificada hace 4 años, 11 meses por rafax.
Hola @rafax
Creo que te estas liando o yo no lo entiendo.
Que te refieres con lista del blog?
Aparte la manera que podemos decir que es mas correcta seria usar get_the_ID()
Iniciador del debate
rafax
(@rafax)
La lista me refiero is_home o ultima entradas del blog , etc… aunque lo usaría en cualquier lista de posts como is_archive, is_search, etc… no se si me entiendes.
También he usado la función get_the_ID():
echo var_dump(get_post_gallery(get_the_ID()));
if ( get_post_gallery(get_the_ID())) :
echo '<div class="entry-gallery">';
echo get_post_gallery(get_the_ID());
echo '</div>';
else:
ivanicof_post_thumbnail();
endif; ?>
No entiendo porque no funciona , por preguntar…¿Es posible que tenga algo que ver que la galería sea un bloque? , debería funcionar igual… no se que probar ya… ;P
Correcto no funciona porque es un bloque no un shortcode y aun no tiene soporte (https://core.trac.wordpress.org/ticket/43826) deberas usar https://developer.wordpress.org/reference/functions/has_block/ y parsear el contenido
Ole! @lgrusin buen aporte.
De lo que se entera uno… y nosotros metiéndonos con el código de @rafax … 🙂
-
Esta respuesta fue modificada hace 4 años, 11 meses por LGrusin.
Iniciador del debate
rafax
(@rafax)
Gracias a todos por la help , en cuanto llegue a casa me pongo a ello.
Tienes otra opción, puesto que get_post_gallery()
únicamente reconoce el shortcode de la galería y no el bloque galería, puedes crear un bloque editor clásico y poner la galería en él tal como se hacía antes con el anterior editor desde Media. En este caso si usará el shortcode y te funcionará la función.
Iniciador del debate
rafax
(@rafax)
Si @lgrusin pero como el usuario final de la plantilla puede ser cualquiera , yo no se como va a editar la galería , asi que usare la función esa de github que funciona correctamente hasta que den soporte para bloques.
Un saludo-