Comment ajouter une logique conditionnelle à votre thème WordPress
Publié: 2021-02-25La création d'un site Web avec WordPress offre une grande flexibilité quant à ce que vous pouvez faire en termes de conception et de fonctionnalité. Et, au fur et à mesure que vous approfondissez le développement de thèmes, vous constaterez qu'il y a des moments où vous devez cibler une page, une catégorie ou un type de publication spécifique pour quelque chose de spécial. C'est là que la logique conditionnelle peut rendre votre travail beaucoup plus facile.
La logique conditionnelle est une fonctionnalité puissante des langages de programmation (PHP, dans notre cas). Essentiellement, nous pouvons utiliser du code pour vérifier si une certaine condition existe, puis faire quelque chose de spécifique si cette condition est remplie. Un exemple simple serait de vérifier si un utilisateur est actuellement sur la page d'accueil de notre site. En utilisant la logique conditionnelle, nous pouvons choisir de charger un curseur ou un autre contenu spécial dans cette situation.
En ce qui concerne WordPress, il existe un certain nombre de balises conditionnelles utiles intégrées au logiciel qui nous permettent de tester toutes sortes de scénarios. Ils sont bien documentés et vous permettent d'apporter un niveau de fonctionnalité supérieur à votre site.
Aujourd'hui, nous allons examiner quelques-unes des balises conditionnelles les plus couramment utilisées et comment vous pouvez les implémenter dans votre propre site.
Remarque sur l'utilisation des balises conditionnelles
Les balises conditionnelles sont des morceaux de code PHP et doivent aller dans le thème actif de votre site. Il existe un certain nombre d'endroits où vous pouvez utiliser la logique conditionnelle dans un thème.
Si vous ne l'avez pas déjà fait, c'est une bonne idée de vous familiariser avec la hiérarchie des modèles WordPress pour une explication du fonctionnement des fichiers de thème.
Et, avant d'essayer d'implémenter un nouveau code sur un site en ligne, il est préférable de configurer un environnement de développement (de mise en scène) pour tester les choses en premier. N'oubliez pas qu'un faux mouvement avec PHP peut donner à votre site le redoutable "écran blanc de la mort". Faites donc très attention aux tests avant de travailler sur un site en direct.
est_home()
Celui-ci provoque une grande confusion parmi les développeurs. En regardant la balise, vous supposeriez que is_home()
serait utilisé pour vérifier la page d'accueil de votre site. Ce n'est pas le cas.
Il recherche en fait la page attribuée à votre page de publications, qui est définie dans Paramètres> Lecture dans le tableau de bord WordPress. Par défaut, WordPress utilise votre page d'accueil pour répertorier les publications, mais la plupart des sites ont tendance à utiliser une page d'accueil statique à la place.
Ainsi, par exemple, si vous avez assigné une page nommée "Blog" comme page de messages, c'est ce que is_home()
.
<?php // If this the Posts page, display a message. if ( is_home() ): echo '<h2>Thanks for visiting our blog!</h2>'; endif; ?>
est_front_page()
Inversement, is_front_page()
recherche la page définie comme page d'accueil de votre site, qu'elle soit statique ou non. Certes, ce n'est pas la chose la plus évidente au monde lorsque vous apprenez à créer vos propres thèmes. Mais savoir quelle balise utiliser est vital.
Ce qui est bien avec cette balise particulière, c'est que, même si vous deviez attribuer une page différente comme page d'accueil plus tard, vous ciblerez toujours le bon endroit. Il existe des moyens plus explicites de cibler les pages, mais celui-ci vous protège en cas de changement.
<?php // If this is the home page, show a special message. if ( is_front_page() ) { ?> <h1>Welcome</h1> <?php // Otherwise, show the page title. } else { ?> <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> <?php } ?>
is_single() et is_page()
Chacune de ces balises remplit une double fonction. is_single()
regarde si l'URL actuelle est une publication. Il peut s'agir d'un article de blog standard, d'une pièce jointe ou d'un type d'article personnalisé.
De même, is_page()
renverra true si l'URL actuelle est une page. Par défaut, les deux balises ciblent tout contenu relevant d'une page ou d'un article. C'est un fil conducteur parmi de nombreuses balises conditionnelles.
<?php // Target all posts. if ( is_single() ): echo 'You are on a single post.'; endif; // Target all pages. if ( is_page() ): echo 'This is a page'; endif; ?>
Mais vous pouvez également tirer parti de ces balises pour cibler une publication ou une page spécifique en ajoutant un identifiant ou un slug.
<?php // Target About Us if ( is_page( 'about-us' ) ): ?> <a href="#"></a> <?php endif; ?>
L'utilisation d'un tableau vous permettra de cibler plusieurs éléments de contenu.
<?php // Target About Us and Contact Us pages. if ( is_page( array('about-us', 'contact-us') ) ): ?> <a href="#"></a> <?php endif; ?>
is_tax() et has_term()
Les taxonomies jouent un grand rôle dans la façon dont le contenu est organisé sur un site. Deux des plus courantes sont les catégories et les balises, qui ont leurs propres balises conditionnelles. Mais WordPress nous permet également de créer nos propres taxonomies.
Par exemple, si votre site contient des critiques musicales, vous pouvez avoir une taxonomie appelée "Genre". À partir de là, vous auriez pu répertorier des genres de musique spécifiques au sein de cette taxonomie, tels que « Rock », « Hip-Hop » et « Jazz ».
is_tax()
cible une page d'archive de taxonomie. En restant avec notre exemple de critique musicale, cette balise se déclencherait (entrerait en vigueur) lorsque nous sommes sur la page d'archives pour chacun des genres spécifiques.
<?php // Display a message on our Genre archive pages. if (is_tax('genre','rock','hip-hop','jazz') ): echo '<h2>This is a genre archive. Enjoy!</h2>'; endif; ?>
has_term()
est utilisé pour cibler la publication actuelle en fonction de la taxonomie à laquelle elle appartient. Ceci est utile si, par exemple, nous voulons ajouter un graphique spécial pour les publications de chaque genre de musique sur notre site.
<?php // Show an image for the Rock genre. if (has_term('rock','genre') ): ?> <?php endif; ?>
est_page_template()
Une fois que vous êtes familiarisé avec la hiérarchie des modèles d'un thème, vous pouvez créer vos propres modèles de page personnalisés. is_page_template()
vous permet de cibler le modèle de page en cours d'utilisation (qu'il soit personnalisé ou non). Vous pouvez soit vérifier si un modèle de page est utilisé, soit en rechercher un spécifique.
Cependant, vous devez être prudent lorsque vous recherchez un modèle de page spécifique. Étant donné que cette balise vérifie l'existence d'un nom de fichier, la condition peut cesser de fonctionner si le nom de ce modèle est modifié. Vous devrez mettre à jour votre code pour refléter tout changement de nom de fichier.
<?php // Add a search form to the Services page template. if (is_page_template('services.php') ): ?> <?php get_search_form(); ?> <?php endif; ?>
Toutes les conditions remplies
Bien qu'il ne s'agisse que d'une brève introduction sur la manière dont la logique conditionnelle peut être utilisée, nous espérons que cela vous donnera envie d'en savoir plus.
Une fois que vous maîtriserez les conditionnels, vous pourrez personnaliser votre site d'une manière qui serait presque impossible autrement.
Ils peuvent vous donner un contrôle précis sur l'apparence et la mise en page de votre thème tout en bénéficiant de tous les avantages de l'utilisation d'un CMS.