Bonjour :)
Titre un peu loufoque, certes je vous l'accorde. J'explique mon problème : Tout d'abord voici le code qui me pose problème.
<a class="thumbnail" id="post-<?php the_ID(); ?>" title="<?php the_title_attribute(); ?>">
<?php
if ($redux_demo'portfolio_columns'] == '2_col') {
echo the_post_thumbnail('portfolio_2_columns');
}
elseif ($redux_demo'portfolio_columns'] == '3_col') {
echo the_post_thumbnail('portfolio_3_columns');
}
elseif ($redux_demo'portfolio_columns'] == '4_col') {
echo the_post_thumbnail('portfolio_4_columns');
}
elseif ($redux_demo'portfolio_columns'] == '5_col') {
echo the_post_thumbnail('portfolio_5_columns');
}
?>
<div style="color:white;">
<span><?php the_title(); ?></span>
<i class="fa fa-search <?php if ($redux_demo'portfolio_columns'] == '2_col' || $redux_demo'portfolio_columns'] == '3_col' || $redux_demo'portfolio_columns'] == '4_col') {
echo 'boxed-portfolio';} else {echo 'boxed-portfolio-2';} ?>" style="position:absolute; left:20%; ">
<a href="<?php echo $image_url; ?>" rel="prettyPhoto" style="display: inline-block;position: absolute;width: 100%;height: 100%; left:0%;"></a>
</i>
<i class="fa fa-link <?php if ($redux_demo'portfolio_columns'] == '2_col' || $redux_demo'portfolio_columns'] == '3_col' || $redux_demo'portfolio_columns'] == '4_col') {
echo 'boxed-portfolio';} else {echo 'boxed-portfolio-2';} ?>" style="position:absolute; right:20%;">
<a href="<?php the_permalink(); ?>" rel="prettyPhoto" style="display: inline-block;position: absolute;width: 100%;height: 100%;"></a>
</i>
<?php /* if ($redux_demo'portfolio_columns'] == '2_col' || $redux_demo'portfolio_columns'] == '3_col' || $redux_demo'portfolio_columns'] == '4_col') {
echo '';
} */?>
</div>
</a>
Si on vire ce php un peu fouillit, on devrait obtenir HTMLement cette structure :
<a class="thumbnail">
<img/>
<div>
<span></span>
<i><a href=""></a></i>
<i><a href=""></a></i>
<div>
</a>
MAIS : PHP ne me renvois pas cela. Tout d'abord, il duplique la première ligne et la case au milieu, puis sépare ma <div> de mon <a>, ce qui donne :
<a class="thumbnail">
<img/>
</a>
<div>
<a class="thumbnail">
<span></span>
<i class="1"></i>
</a>
<i class="1"><a href=""></a></i>
<i class="2"><a href=""></a></i>
<div>
Ce qui n'est absolument pas ce que je voulais. On remarque donc des déplacements et 2 "duplicatas".
Voilà maintenant plus de 2 semaines que je cherche l'erreur dans mon PHP qui provoque tout ça, mais je ne trouve pas : le code me paraît correct, toute balise ouverte est fermée... D'où peut bien provenir le problème ?
Merci à ceux qui prendrons le soin d'analyser mon code, et m'aider dans mes démarches :)
Personnellement je ne vois pas comment l'ordre des balises peut changer autant entre ce que tu veux obtenir et ce que tu obtiens. Chaque balise html que tu as mise ne dépendent pas du code PHP que tu as à côté, la structure ne devrait donc pas changer les balises.
Après, Mettre un if et elseif sans else, ça reste spécial je trouve.
Bonjour, je me permet de te demander si tu es un débutant en informatique ?
si oui regardes la structure de controle le switch
Si non:
Regroupes tes traitements, tu testes environ 10 fois "$redux_demo'portfolio_columns']"
Vires ton css qui n'es rien à faire là.
Ta question serait mieux dans la section wordpress.
Tu es dans THE_LOOP ou dans une WP_query ?
Merci
Coucou j'ai un peu nettoyé ton code:
<?php
$nbcolum = array();
switch ($redux_demo'portfolio_columns']) {
case '2_col':
$nbcolum'thumbnail'] = 'portfolio_2_columns';
$nbcolum'search'] = 'boxed-portfolio';
break;
case '3_col':
//a toi de jouer
break;
case '4_col':
//a toi de jouer
break;
case '5_col':
$nbcolum'thumbnail'] = 'portfolio_5_columns';
$nbcolum'search'] = 'boxed-portfolio-2';
break;
}
?>
<a class="thumbnail" id="post-<?php the_ID(); ?>" title="<?php the_title_attribute(); ?>">
<?php the_post_thumbnail($nbcolum'thumbnail']);?>
<div>
<span><?php the_title(); ?></span>
<!--la balise <i> c'est pour de l'italique, je ne suis pas sur que ce soit sa le but içi -->
<i class="fa fa-search <?php echo $nbcolum'search']; ?>">
<!-- Un lien dans un autre lien, ya CLAIREMENT moyen pour que ton navigateur n'apprecie pas -->
<a href="<?php echo $image_url; ?>"><!-- Bonjour je suis un lien vide... --></a>
</i>
<i class="fa fa-link <?php echo $nbcolum'search']; ?>" >
<a href="<?php the_permalink(); ?>" rel="prettyPhoto"></a>
</i>
</div>
</a>
J'ai comme l'impression que ton navigateur et php n'apprecient ni tes <a></a> vides, ni ceux imbriqués...