Soporte » Diseño – Temas y plantillas » get_post_gallery no retorna nada

  • Resuelto rafax

    (@rafax)


    Hola compañeros estoy desarrollando una plantilla con post formats. pero en el template para el formato galería no consigo obtener la galería de la entrada.
    Uso get_post_gallery() pero siempre retorna falso aunque en la entrada hay varias galerias de imagenes.
    Mi idea es mostrar en la lista del blog solo la galería en los post con formato galería.
    Este es el código de la plantilla, el típico «content-gallery.php»

    if ( get_post_gallery() && !is_single()) :
    echo '<div class="entry-gallery">';
    echo get_post_gallery();
    echo '</div>';
    else:
    ivanicof_post_thumbnail();
    endif; ?>

    ¿Alguien le ocurrio esto?, gracias

Viendo 13 respuestas - 1 de 13 (de 13 total)
  • 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/

    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; ?>
    Moderador LGrusin

    (@lgrusin)

    ¿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 6 meses, 1 semana por LGrusin.

    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 6 meses, 1 semana por rafax.
    • Esta respuesta fue modificada hace 6 meses, 1 semana 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()

    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

    Moderador LGrusin

    (@lgrusin)

    Ole! @lgrusin buen aporte.

    Moderador LGrusin

    (@lgrusin)

    De lo que se entera uno… y nosotros metiéndonos con el código de @rafax … 🙂

    • Esta respuesta fue modificada hace 6 meses, 1 semana por LGrusin.

    Gracias a todos por la help , en cuanto llegue a casa me pongo a ello.

    Moderador LGrusin

    (@lgrusin)

    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.

    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-

Viendo 13 respuestas - 1 de 13 (de 13 total)
  • El debate ‘get_post_gallery no retorna nada’ está cerrado a nuevas respuestas.