web-dev-qa-db-fra.com

get_post_gallery_images retourne les vignettes. Je veux en taille réelle

J'ai le code suivant sur mon site.

<?php // image gallery content 
if( has_shortcode( $post->post_content, 'gallery' ) ) {                     
    $gallery = get_post_gallery_images( $post->ID );


    $image_list = '<ul id="cfImageGallery">';                       
    foreach( $gallery as $image ) {// Loop through each image in each gallery
        $image_list .= '<li><img src=" ' . str_replace('-150x150','',$image) . ' " /></li>';
    }
    $image_list .= '</ul>';                     
    echo $image_list;                       
}                         
?>

Mon problème est que get_post_gallery_images retourne des fichiers thumbs au lieu de la taille de remplissage, donc Im utilise la fonction str_replace pour le résoudre.

Comment puis-je faire pour récupérer les URL en taille réelle?

Merci

5
chifliiiii

Si vous travaillez dans un fichier de modèle, ce code devrait fonctionner. Cependant, je ne l'ai pas testé.

<?php echo do_shortcode('[gallery size="full"]'); ?>
1
tfer77

@ tfer77 a donné la bonne réponse. Je suis ici pour l'expliquer d'une meilleure façon.

Vous devez ajouter l'attribut size="full" au shortcode de la galerie dans le contenu du message, comme

[gallery ids="836,830,829" size="full"]

Maintenant, quand vous utilisez

$gallery = get_post_gallery_images( $post->ID );

Vous obtiendrez des images en taille réelle. Vous pouvez vérifier la même chose en utilisant le filtre get_post_gallery

Collez le code ci-dessous dans le fichier functions.php de votre thème.

add_filter( 'get_post_gallery', 'wpse_get_full_size_gallery_images', 10, 3 );
function wpse_get_full_size_gallery_images( $gallery, $post, $galleries ) { 
    var_dump($gallery);
}

et la page où vous avez utilisé get_post_gallery_images, vous obtiendrez une URL d’image comme

http://www.siteurl.com/wp-content/uploads/2013/10/eiffel-tower.jpg

plutôt que

http://www.siteurl.com/wp-content/uploads/2013/10/eiffel-tower-150x150.jpg

5
Maruti Mohanty