web-dev-qa-db-fra.com

Section Barre d'alerte dans WP la boucle est affichée même s'il n'y a pas de messages

J'ai un problème avec une partie de modèle obstinée qui veut s'afficher sur mon site même si, autant que je sache, cela ne devrait pas être le cas.

Cette section est supposée afficher une barre d’alerte en haut de la page chaque fois qu’un message ou un événement (un CPT) est associé à la catégorie Alerte ou Notification. J'ai fait un query_posts pour ces catégories pour voir si elles étaient associées à quoi que ce soit, puis j'ai écrit une instruction if pour afficher uniquement la section si quelque chose existait.

J'ai vérifié le CMS et il n'y a rien dans les deux catégories. Ci-dessous mon code. Si quelqu'un pouvait signaler mon erreur ou expliquer pourquoi cela ne fonctionnait pas, je vous en serais très reconnaissant. Merci!

<?php
query_posts( array(
    'cat'       =>  array( 23, 31 ) )
);

if( have_posts ) :
?>

<section id="alert-bar" class="clearfix">
    <div class="container">
        <div class="row">
            <div class="col-xs-12">

            <?php

                while ( have_posts() ) : the_post();

                //ADVANCED CUSTOM FIELDS VARIABLES
                $event_thumb        =   get_field( 'event_thumb' );
                $alert_excerpt      =   get_field( 'alert_excerpt' );
            ?>

            <article class="row">
                <div class="col-xs-3 col-md-offset-1 col-md-2 alert-image-wrapper">
                    <a href="<?php the_permalink(); ?>">
                        <img src="<?php echo $event_thumb['url']; ?>" alt="<?php the_title(); ?>">
                    </a>
                </div> <!-- .col-xs-3 .col-md-offset-1 .col-md-2 .alert-image-wrapper -->

                <div class="col-xs-9 alert-text-wrapper">
                    <a href="<?php the_permalink(); ?>">
                        <h4><?php the_title(); ?></h4>
                        <p><small><?php echo $alert_excerpt; ?></small></p>
                    </a>
                </div> <!-- .col-xs-9 .alert-text-wrapper -->
            </article>

            <?php endwhile; wp_reset_query(); ?>

            </div> <!-- .col-xs-12 -->
        </div> <!-- .row -->
    </div> <!-- .container -->
</section> <!-- #alert-bar -->


<?php endif; ?>

Certains styles, dont le rembourrage et une couleur d'arrière-plan, sont appliqués à la balise section. C'est pourquoi j'ai tout enveloppé dans l'instruction if.

1
Adam Lane

Vous interrogez la requête principale car vous n'avez pas défini de requête personnalisée avec new WP Query . Donc, oui, il y a des messages, mais pas ceux que vous pensez.

Essaye ça:

 <?php

    $args = array(
        'category__in'=> array( 23, 31 )
    ); 
    $loop = new WP_Query( $args );

    // Start the loop for your custom query
    if($loop->have_posts() ) : ?>

        <section id="alert-bar" class="clearfix">
            <div class="container">
                <div class="row">
                    <div class="col-xs-12">

                        <?php while ($loop->have_posts() ) : $loop->the_post();

                        //ADVANCED CUSTOM FIELDS VARIABLES
                         $event_thumb        =   get_field( 'event_thumb' );
                         $alert_excerpt      =   get_field( 'alert_excerpt' );

                        <article class="row">
                            <div class="col-xs-3 col-md-offset-1 col-md-2 alert-image-wrapper">
                                <a href="<?php the_permalink(); ?>">
                                    <img src="<?php echo $event_thumb['url']; ?>" alt="<?php the_title(); ?>">
                                </a>
                            </div> <!-- .col-xs-3 .col-md-offset-1 .col-md-2 .alert-image-wrapper -->

                            <div class="col-xs-9 alert-text-wrapper">
                                <a href="<?php the_permalink(); ?>">
                                    <h4><?php the_title(); ?></h4>
                                    <p><small><?php echo $alert_excerpt; ?></small></p>
                                </a>
                            </div> <!-- .col-xs-9 .alert-text-wrapper -->
                        </article>

                        <?php endwhile; ?>

                    </div> <!-- .col-xs-12 -->
                </div> <!-- .row -->
            </div> <!-- .container -->
        </section> <!-- #alert-bar -->

    <?php endif; wp_reset_query();
?>
0
The J