Condition if dans wordpress

Résolu/Fermé
gwen09 - 22 juil. 2022 à 17:22
 gwen09 - 23 juil. 2022 à 18:49

Bonjour,

je réalise un projet WordPress actuellement, mais j'ai un soucis , je m'explique.

j'ai différente page où j'affiche une liste d'article sous un format de box, cependant certain box (article) on une image, un titre et une description mais d'autre n'on pas d'image mais a la place une date en dessous de la description, cette quand elle est afficher je veux la positionner ou je veux dans ma box avec un background.

cependant sur les box ou il n'y a pas de date mais une image j'ai quand même le background de la div que je ne veux PAS.

j'ai donc voulu faire une condition qui lui inique que si il y a une image je ne veux pas la div de la date sinon il m'affiche la div de la date 

voici le code: 

mais cela ne change rien, quelqu'un aurait de l'expérience et saurait se qui ne vas pas , je suis seulement débutante en wordpress et toute aide ou conseille me serait bénéfique,

je vous remercie beaucoup 
Windows / Chrome 103.0.0.0

3 réponses

jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
22 juil. 2022 à 18:50

Bonjour

Il serait bien de poster ton code directement sur le forum au lieu d'en mettre une photo avec laquelle on ne peut rien faire..

Quoi qu'il en soit, tu n'es pas loin de la solution...

A mon avis il faut juste vérifier que ta variable n'est pas vide au lieu de regarder si elle est TRUE


0

Bonjour, 

Désoler c'est la premier fois que je poste sur un forum, je sais pas trop comment mis prendre XD.

je te remercie pour ta réponse, j'ai essayer de tester ma condition en lui indiquant si elle est vide ou non, mais j'ai l'impression qu'il ne passe pas dans mon else, et comme c'est du php avec des fonction de classe wordpress j'ai vraiment du mal ????

<div class="archive-content">

                <?php

                $args = array( 'posts_per_page' => -1, 'orderby'=> 'title', 'order' => 'ASC',                   'category_name' => get_cat_name($mycat2) );

                $glossaryposts = get_posts( $args );

                foreach( $glossaryposts as $post ) :    setup_postdata($post);

                ?>

                <article id="post-<?php the_ID(); ?> " <?php post_class(); ?>>

                        <div class="swiper-slide">

                            <div class="archive-box">

                                <?php if(empty(the_post_thumbnail())){?>

                                        <div class="box-text">

                                            <?php the_title( sprintf( '<h2 class="archive-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' );?>

                                            <div class="entry-summary card-text"><?php the_excerpt(); ?></div>

                                            <div class="date"><?php echo get_post_meta($post->ID, 'date', true); ?></div>

                                        </div>

                                <?php }else { ?>

                                    <div class="archive-box-img"><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( ); ?></a></div>

                                    <div class="box-text">

                                        <?php the_title( sprintf( '<h2 class="archive-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' );?>

                                        <div class="entry-summary card-text"><?php the_excerpt(); ?></div>

                                    </div>

                                <?php } ?>

                            </div>

                        </div>

                    </article><!-- #post-<?php the_ID(); ?> -->

                <?php endforeach ?>                    

            </div>

quand je teste si elle est vide, au niveau de mon affichage ca ne change rien c'est comme si j'avais rien fait j'ai toujours le placement de la date qui se met sur mon image alors que ce n'est pas ce que je veux 

et si je fait l'inverse différent de vide il me met double image, et en plus il enlève le style sur ma date sur les articles ou elle doit être afficher 

0

Salut, c'est une question de programmation PHP.

Une condition s'écrit ainsi:

SI ( Condition ) est vrai = Alors Fais Quelque chose

SINON  =  Fais autre chose.

Il manque dans votre structure ce que doit faire le programme et pour ça pas besoin de découper en plusieurs parties le PHP. Pour une instruction conditionnelle voir la doc ici

https://www.php.net/manual/en/control-structures.if.php

Le mot clé est "echo"

https://www.php.net/manual/fr/function.echo.php

<?php

$valeur=true;//-- changer la valeur pour utiliser la seconde condition


if($valeur ==true){

  echo ("<p>vrai</p>");

}else{

 echo("<p>faux</p>");

}
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
23 juil. 2022 à 09:35

Il ne manque rien dans son code ... Si tu regardes bien, il ferme les balises php pour ensuite mettre le html... Pas besoin de echo dans ce cas....

1

Bonsoir, 

A tous après encore encore de longue recherche et quelques cheveux arraché …

J'ai enfin trouvé la solution, le problème c'est que dans les paramètres de ma condition if je ne mettais pas la bonne function de classe voici le code:

<article id="post-<?php the_ID(); ?> " <?php post_class(); ?>>
						<div class="swiper-slide">
							<div class="archive-box">
								<?php if( has_post_thumbnail()){?>
									<div class="archive-box-img"><a href="<?php the_permalink(); >"><?php the_post_thumbnail( ); ?></a></div>
										<div class="box-text">
											<?php the_title( sprintf( '<h2 class="archive-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' );?>
											<div class="entry-summary card-text"><?php the_excerpt(); ?></div>
										</div>
								<?php } else{ ?>
										<div class="box-text">
											<?php the_title( sprintf( '<h2 class="archive-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' );?>
											<div class="entry-summary card-text"><?php the_excerpt(); ?></div>
											<div class="date"><?php echo get_post_meta($post->ID, 'date', true); ?></div>
										</div>
								<?php }?>

							</div>
						</div>
					</article><!-- #post-<?php the_ID(); ?> -->

je vous remercie encore pour votre aide, cela a pue me guider.

je vous souhaite de passé une bonne soirée et bon week-end  ????

0