Bonjour,

Si je sollicite votre aide aujourd'hui, c'est que j'ai un soucis avec une fonction worpdress qui ne passe pas et je ne comprend pas pourquoi!!

En effet il q'agit de la fonction de récupération des images à la une sur wordpress.
J'ai bien une image à la une sur mes articles mais la fonction ne détecte rien du coup la condition ne passe pas!

Voici le code en question :

<?php
            if (has_post_thumbnail()) {
                ?>
                <div class="item-image">
                    <a href="<?php echo $permalink; ?>">
                        <?php the_post_thumbnail('post-excerpt'); ?>
                    </a>
                    <div class="item-date">
                        <?php the_time('j'); ?>
                        <?php echo strtoupper(get_the_time('F')); ?>
                        <?php the_time('Y'); ?>
                    </div>
                </div>
                <?php
            } ?>

Si vous avez une idée je suis preneur!
Cordialement,

8 réponses


Lotfi Berrahal
Auteur
Réponse acceptée

Finalement j'ai trouvé ce petit bout de code qui sert à récupérer la première image poster sur son commentaire et la "transforme" en image à la une !!
le bout de code donne :

//Ajout image à la une automatique
add_action('save_post', 'autothumb', 10, 2);
 function autothumb( $post_id, $post ){
 if(!current_user_can('upload_files')) return false;
 if(!has_post_thumbnail($post_id)){
 $attached_image = get_children( array(
 'post_parent' => $post_id,
 'post_type' => 'attachment',
 'post_mime_type' => 'image',
 'numberposts' => 1 ));
 if(!count($attached_image)) return false;
 $attached_image = array_keys( $attached_image );
 set_post_thumbnail($post_id, $attached_image[0]); 
 }
 }

Merci pour toute l'aide que vous m'avez apporter en tout cas !!
Cordialement,

Tu fais bien ce code dans une boucle wordpress ?

oui oui j'ai bien le code dans une boucle wordpress c'est ce que je ne comprend pas!!

Effectivement parceque dans la théorie ton code est bon :D

Oui ce que je ne comprend pas et qui marche sur le thème démo en plus ...
Y a t'il une chance que ça vienne de la façon dont je met une image à la une?
quand mon article est posé je met une image à la une comme c'est proposé par wordpress et ça devrait suffire?
Surtout qu'avec un autre thème (le twenty eleven) ça marche direct!...
Je suis un peu perdu donc si vous avez des idées ?

Tu as bien dans ton functions.php l'activation des thumbnails ? (je pense que oui sinon tu ne pourrais choisir d'image à la une)

if(function_exists('add_theme_support')){
    add_theme_support( 'post-thumbnails' );
}

Et si jamais tu veux ajouter des tailles perso :

if(function_exists('add_image_size')){
    add_image_size('test_thumb', 100, 100, true);
}

Et pour finir dans ton code tu fais un

<?php the_post_thumbnail('post-excerpt'); ?>

Mais post-except par défaut n'existe pas du tout, il correspond à quoi ? À une taille prédéfini par add_image_size ?

Essaye de faire

<?php the_post_thumbnail('thumbnail'); ?>

Si je dis pas de connerie le nom "thumbnail" est utilisé par défaut dans WordPress (150x150 je crois).

Et si tu as toujours des soucis essaye directement (pour le test)

<?php the_post_thumbnail(array(145,90)); ?>

Personnellement je pense que le soucis viens du nom post-excerpt.

Tu passe vraiment pas dans la condition ou bien ça passe mais l'image n'est pas affiché ?
Donne nous directement la totalité de ton fichier pour qu'on voit si tu n'as pas fais une erreur dans la boucle ;)

Tout d'abord un grand merci pour vos réponses à toi et grafikart!!
le post excerpt est bien précisé donc l'erreur ne vient pas de la du moins je pense je vous met le bout de code du function.php ui le contient :

// Post thumbnail support
add_theme_support('post-thumbnails', array( 'post' ));
set_post_thumbnail_size(300, 275, false);
add_image_size('post-featured', 1080, 200, false);
add_image_size('post-excerpt', 1080, 275, true);
add_image_size('tdac-thumb', 90, 90, true);

sinon voila la totalité de la boucle et c'est bien la condition du has_post_thumbnail qui ne passe pas car si je met un simple echo il ne m'affiche rien du tout :
Le code :

while (have_posts()) : 
        the_post();

        $permalink = get_permalink();

         if ($index == 2) {
            $index = 0;
            $lastclass = 'last';
        } else {
            $lastclass = '';
        }
        $index++;

        $category = get_the_category();

        ?>

        <div class="item <?php echo $lastclass; ?>">
             <?php
            if (has_post_thumbnail()) {
                ?>
                <div class="item-image">
                    <a href="<?php echo $permalink; ?>">
                        <?php the_post_thumbnail('post-excerpt'); ?>
                    </a>
                    <div class="item-date">
                        <?php the_time('j'); ?>
                        <?php echo strtoupper(get_the_time('F')); ?>
                        <?php the_time('Y'); ?>
                    </div>
                </div>
                <?php
            } ?>

            <div class="item-content">
                <h2>
                    <a href="<?php echo $permalink; ?>"><?php the_title(); ?></a>
                </h2>

                <?php
                if (get_post_type() == 'post' && $meta) {
                    ?>
                    <ul class="meta">
                        <li class="post-date updated icon date">
                            <?php echo get_the_date(); ?>
                        </li>

                        <li class="icon comments">
                            <a href="<?php the_permalink(); ?>#comments"> <?php comments_number( __('no comments', THEME_SLUG),__ ('one comment', THEME_SLUG), __('% comments', THEME_SLUG)); ?></a>
                        </li>

                        <?php if (has_category()) { ?>
                            <li class="icon category">
                                <?php the_category(', '); ?>
                            </li>
                        <?php } ?>

                        <?php the_tags('<li class="icon tags">', ' ', '</li>'); ?>
                    </ul>
                    <div class="floatclear"></div>
                    <?php
                }
                ?>

                <?php the_excerpt(); ?>

                <a href="<?php echo $permalink; ?>"><?php _e( 'Read more', THEME_SLUG ); ?> →</a>
            </div>
            <div class="floatclear"></div>
        </div>

        <?php
    endwhile;

Encore merci et bonne chance pour voir ce qui ne marche pas car moi je ne trouve pas !!
Cordialement,

Bonjour,
j'ai régler l'histoire des thumbnails et du coup ça marche bien !!
Maintenant le problème est que j'aimerais lors de la création de mes articles via wp-o-matic faire qu'il crée une image à la une par défaut au cas ou et sinon qu'il récupère la 1ère image de l'article et la mette à la une!
Est ce que c'est possible et si oui comment fait on?
En gros j'aimerais savoir s'il est possible de mettre des images à la une en automatique et non en manuel ?
J'ai commencé a cherché mais j'ai rien trouvé donc j'espère que ça l'est ^^