Des extraits en fonction de la catégorie | Sans Pseudo Fix

Des extraits en fonction de la catégorie

Ou inversement. Avec WordPress, on a la possibilité d’afficher des extraits grâce à the_excerpt. Ce qui donne l’introduction suivit d’un (Lire la suite…) sur la page d’accueil.
Mais si, comme moi, vous avez des catégories avec juste un photo / vidéo (sans textes), ou une introduction trop courte, vous pouvez spécifier à wordpress, d’afficher l’article en entier sur la page d’accueil selon les catégories.

<?php if(in_category('no-comment') || in_category('dans-le-casque')): the_content(); else: the_excerpt(); endif; ?>

Pour cela, j’utilise :

  • in_category pour lui spécifier la catégorie. Dans les guillemets, on met l’identifiant de la catégorie. Pour le connaitre, vous devez allez dans Catégories dans l’administration WordPress, et utiliser les noms de la colonne Identifiant.
  • On utlise || (Alt Gr + 6) qui signifie « ou » si on a plusieurs catégories affectées. Si vous n’avez qu’un seule catégorie affectée, vous devez changer le code ainsi :
    <?php if(in_category('no-comment') : the_content(); else: the_excerpt(); endif; ?>

    On enlève tout simplement le « ou« .

  • the_content() pour afficher le contenu en entier.
  • the_excerpt() pour afficher l’extrait.

Pour vulgariser le code :

<?php if(in_category('no-comment') || in_category('dans-le-casque')): the_content(); else: the_excerpt(); endif; ?>

Signifie :

Si la catégorie 'no-comment' OU la catégorie 'dans-le-casque' : on affiche le contenu entier; SINON: on affiche l'extrait; FIN SI;

Si, malgré tout, vous souhaitez tronquer votre contenu dans ces catégories, vous pouvez utiliser la balise more, comme je le fais dans la catégorie dans-le-casque. La catégorie no-comment affiche le contenu en entier à chaque fois.

J’espère que ce code vous aidera, et comme d’habitude, si vous avez des questions / problèmes, n’hésitez pas à laisser un commentaire !

Edit :
Afin d’être le plus clair possible, voici une partie du code comme je l’utilisais dans une ancienne version de ce site (extrait de mon fichier index.php) :

<div id="content">
                
			<?php get_sidebar(); ?>
<?php
		$i=0;
		if(have_posts()) : ?><?php while(have_posts()) : the_post(); 
		$i++;
		    ?>
                <article class="post<?php $class_category; ?>" id="post-<?php the_ID(); ?>">
			
			
			
                    <h2><a href="<?php the_permalink(); ?>" ><?php the_title(); ?></a></h2>
		    
			<p class="postmetadata">
			     Le <?php the_time('d - m - Y') ?> / <?php comments_popup_link('0 commentaire', '1 commentaire', '% commentaires'); ?> / Catégorie(s): <?php the_category('# ') ?>
			     
			     
			    <?php edit_post_link('Editer', ' &#124; ', ''); ?> 
			    
			</p>
                    
			<div class="post_content">
                                    <?php the_post_thumbnail( 'category-thumb' ); ?>
				    <?php if(in_category('no-comment') || in_category('dans-le-casque')): the_content(); else: print_excerpt(300); endif; ?>
				    
                        </div><!-- fin post_content -->
                            
				    
				    <div class="letcom">
						<?php if(in_category('no-comment') || in_category('dans-le-casque')){
						echo '<a href="';
						the_permalink();
						echo '#liencom">Laissez un commentaire</a>';
						}?></div>
			
                </article>
			<?php echo ($i % 2 == 0) ? '<div class="clear"></div>' : ''; ?>
                <?php endwhile; ?><?php else : ?>
		
	    <div id="erreur">
                    <h3>Rah bah forcement... si vous cherchez quelque chose qui n'est pas sur le site...</h3>
		    <p>Même joueur joue encore ?  <?php get_search_form(); ?></p>
                </div>
    
                <?php endif; ?>
</div><!--fin de content-->

4 commentaires pour “Des extraits en fonction de la catégorie”

Bonjour!
Ce morceau de code est exactement ce dont j’aurai besoin pour mon blog.
Cependant j’aurais besoin de votre aide (encore un peu) pour me dire où est-ce que je doit le mettre.
En effet, j’ai essayé de le mettre dans le fichier « function.php » de mon thème, mais ça m’a fait un erreur qui me renvoyait sur une page blanche…
Dans quel fichier faut-il donc placer ce code pour que cela fonctionne?
Merci d’avance!

Marry le 30 janvier, 2013 à 18 h 16 min

Bonjour !
Ce code se met dans la boucle des articles. Tout dépend de la hiérarchie de votre thème. Pour moi, cela se situe dans index.php, juste avant la fermeture de la balise article.
Edit : j’ai édité mon article pour que ce soit plus clair :)

Spf le 30 janvier, 2013 à 18 h 25 min

Merci! c’est parfait comme ceci, ça fonctionne.
:D

Marry le 30 janvier, 2013 à 19 h 00 min

Mais de rien !

Spf le 30 janvier, 2013 à 19 h 05 min

Exprimez-vous ! (c'est gratuit) :

Balises : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


+ 4 = 8