WordPress : obtenir des pièces jointes, mais pas de post-pouce

Publié par Jean-Michel le

J’ai le code suivant dans mon functions.php :

function get_images($size = 'thumbnail') {

global $post;
return get_children( array('post_parent' => get_the_ID(), 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') );

}

Et dans mon single.php

<?php $photos = get_images('full'); ?>

            <?php $x = 0; ?>
            <?php foreach($photos as $photo): ?>
                <?php if($x < 1): ?>
                    <img src="<?=wp_get_attachment_url($photo->ID)?>" alt="fullImg" />
                <?php endif; ?>
                <?php $x++;
                 ?>
            <?php endforeach; ?>

Je veux montrer juste UNE image là-bas, mais cela me montre aussi l’ image post-pouce, que je ne veux pas , y a-t-il une option pour l’exclure ?

Solution n°1 trouvée

C’est un codage fou là-bas! Il est inutile d’accepter une taille dans votre fonction, car elle renvoie simplement un tableau d’objets post.

Une fois que vous avez vos messages, utilisez la ou les fonctions de pièce jointe appropriées pour obtenir les informations sur la taille de la pièce jointe que vous recherchez.

Je proposerais plutôt une fonction comme celle-ci;

function get_images($overrides = '', $exclude_thumbnail = false)
{
    return get_posts(wp_parse_args($overrides, array(
        'numberposts' => -1,
        'post_parent' => get_the_ID(),
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'order' => 'ASC',
        'exclude' => $exclude_thumbnail ? array(get_post_thumbnail_id()) : array(),
        'orderby' => 'menu_order ID'
    )));
}

Et le mettre en pratique;

<?php if ($photo = get_images('numberposts=1', true)): ?>

    <img src="<?php echo wp_get_attachment_url($photo[0]->ID); ?>" alt="fullimg" />

<?php endif; ?>

MISE À JOUR : faute de frappe dans la fonction – corrigée.

Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *