web-dev-qa-db-fra.com

comment tester l'image attachée

J'essaie de savoir si un message contient des images. Si tel est le cas, je souhaite alors savoir si une image sélectionnée a été spécifiée pour la vignette. Sinon, la fonction get_thumb () attribuera une image à partir de la galerie de ce message. Cependant, si un article ne contient pas d'images, je souhaite utiliser une classe de projection pour occuper l'espace de la vignette.

Voici la déclaration que j'ai écrite:

if(has_post_thumbnail()){
    the_post_thumbnail();
}
elseif(is_attachment()) {
    echo get_thumb($post->ID); 
}
else {
    <span class="no_thumb"></span>
} 

Il ajoute une plage de 150x150 à tous les messages sans images en vedette. Cependant, là où les images de get_thumb () devraient être, la plage apparaît à la place. Il s’agit essentiellement de la durée ou de l’image sélectionnée et $ get_thumb n’apparaît jamais.

Pour référence, voici la fonction get_thumb ():

function get_thumb ($post_ID){
    $thumbargs = array(
    'post_type' => 'attachment',
    'numberposts' => 1,
    'post_status' => null,
    'post_parent' => $post_ID
    );
    $thumb = get_posts($thumbargs);
    if ($thumb) {
        return wp_get_attachment_image($thumb[0]->ID);
    }
} 
3
laras126
function has_image_attachment($post_id) {
    $args = array(
        'post_type' => 'attachment',
        'post_mime_type' => 'image/jpeg',
        'numberposts' => -1,
        'post_status' => null,
        'post_parent' => $post_id
    ); 

    $attachments = get_posts($args);

    if(is_array($attachments) && count($attachments) > 0) {
       //Has image attachments
       return true;
    } else {
       return false;
    }
}
2
editor

is_attachment() ne fonctionne pas comme ça - c'est une balise conditionnelle pour détecter la page de pièce jointe, pas la disponibilité des pièces jointes.

Je ne me souviens d'aucune fonction prédéfinie permettant de rechercher/vérifier toutes les pièces jointes. Utilisez simplement votre appel get_post() à partir de get_thumb() - s'il ne récupère rien, il n'y a pas de pièces jointes.

0
Rarst