Red-Panda-Hd-Desktop-Wallpaper

Les marqueurs conditionnels
Mais si vous savez is_single(), is_admin() tout ça !

Récemment j’ai eu envie de vous faire un article sur quelques fonctions appelées « Marqueurs Conditionnels » ou « Conditional Tags ». Mais n’ayant pas réussi à choisir, j’ai fait le fou …

Nom nom nom nom

J’ai remis à jour toute la documentation française sur le sujet, elle n’avait pas été mise à jour depuis 2009 ! J’y ai ajouté les marqueurs manquants, retouché le code, ajouté des exemples etc

La liste est longue, très longue, très très longue … Je vais essayer en une phrase de vous indiquer ce que fait chaque fonction. La plupart du temps, elle renvoie true, sauf mention contraire.

Petite définition

Avant de me lancer, définissons d’abord ce qu’est un marqueur conditionnel et à quoi ça sert :

Un marqueur conditionnel est une fonction de WordPress permettant de vérifier une information. Elle commencent souvent par « is_ » et « has_ ». Ils servent afficher sur une page spécifique du contenu spécifique lui aussi, ou comment ce contenu doit être affiché en fonction de conditions que remplit cette page.

Par exemple, si vous voulez insérer un texte particulier au-dessus d’une série d’articles, mais seulement sur la page principale de votre blog, avec le Marqueur Conditionnel is_home(), cela devient facile.

Listing, 3, 2, 1, partez

Dans mes définitions courtes, je vais utiliser le mot « page en cours », ce qui signifie en fait « la page, l’article, tout type de contenu (CPT) confondu, les archives, toute page de site », et non pas juste les articles de type « page ». S’il n’y a aucun paramètre dans mes exemples, cela veur dire qu’il est possible de l’utiliser sans, mais parfois des paramètres sont possible, à vous de regarder en détail. Par contre si je mets un paramètre c’est qu’il est obligatoire.

  • comments_open() : Indique si la page en cours a les commentaires ouverts.
  • is_404() : Indique si la page en cours est en erreur 404 page non trouvée.
  • is_admin() : Indique si la page en cours est une page de l’administration.
  • is_admin_bar_showing() : Indique si la barre d’outils (admin bar) s’affiche.
  • is_archive() : Indique si la page en cours est une page d’archive (toutes confondues).
  • is_attachment() : Indique si la page en cours est un attachement (un média).
  • is_author() : Indique si la page en cours est l’archive d’un auteur du site.
  • is_category( $category ) : Indique si la page en cours est associée à la catégorie $category. Le paramètre peut être un entier, un nom, un identifiant (slug).
  • is_comments_popup() : Indique si la page en cours est la page des commentaires en popup.
  • is_date() : Indique si la page en cours est une archive de date.
  • is_day() : Indique si la page en cours est une archive de jour.
  • is_feed() : Indique si la page en cours est une syndication de flux RSS.
  • is_front_page() : Indique si la page en cours est une page d’accueil en mode « landing page ».
  • is_home() : Indique si la page en cours ets la page d’accueil en mode « blog ».
  • is_local_attachment( $url ) : Indique si $url passé en paramètre est un fichier de média sur notre site.
  • is_main_query : Indique si nous sommes dans la requête principale (habituellement la Boucle) et non dans une sous-requête dans la page.
  • is_multi_author : Indique si votre site a un ou plusieurs auteurs.
  • is_month() : Indique si la page en cours est une archive de mois.
  • is_new_day() : Indique si à cet instant T, nous sommes dans une nouvelle journée.
  • is_page() : Indique si la page en cours est un article de type « page ».
  • is_page_template() : Indique si la page en cours est chargée depuis un modèle de page (template) personnalisé (hors template WordPress natif).
  • is_paged() : Indique si la page en cours est paginée, attention ne fonctionne pas pour des articles découpés.
  • is_plugin_active( $plugin_path ) : Indique si le plugin $plugin_path est activé.
  • is_plugin_active_for_network( $plugin_path ) : Indique si le plugin $plugin_path est activé sur un réseau multisite.
  • is_plugin_inactive( $plugin_path ) : Indique si le plugin $plugin_path n’est pas activé.
  • is_plugin_page() : - Déprécié - Indique si la page en cours est la page d’un plugin.
  • is_post_type_archive( $post_type ) : Indique si la page en cours est une page d’archive de ce $post_type.
  • is_preview() : Indique si la page en cours est une prévisulisation d’un article en brouillon.
  • is_search() : Indique si la page en cours est une page de résultats de recherche.
  • is_single() : Indique si la page en cours est un article de type « post ».
  • is_singular() : Indique si la page en cours est un « post », une « page », ou un « attachement ».
  • is_sticky() : Indique si l’article en cours est « mis en avant ».
  • is_tag() : Indique si la page en cours est une archive de mot-clé.
  • is_tax() : Indique si la page en cours est une archive d’une taxonomie personnalisée (ne fonctionne pas avec « catégory » ni « post_tag ».
  • is_taxonomy_hierarchical( $taxonomy ) : Indique si $taxonomy est une taxonomie hiérarchique.
  • is_time() : Indique si la page en cours est une archive basée sur le temps (heure, minute, seconde).
  • is_trackback() : Indique si la page en cours est un trackback.
  • is_year() : Indique si la page en cours est une archive d’année.
  • in_category() : Indique si la page en cours est une archive de catégorie.
  • in_the_loop() : Indique si nous sommes dans la Boucle.
  • is_active_sidebar( $sidebar ) : Indique si $sidebar est une barre latérale active sur ce thème.
  • is_active_widget( $widget_callback, $widget_id ) : Indique si $widget_callback et/ou $widget_id (un des deux suffit) est un widget activé sur ce site.
  • is_blog_installed() : Indique si le site est bien installé.
  • is_rtl() : Indique si la langue en cours se lit de droite à gauche (Right To Left, RTL).
  • is_dynamic_sidebar() : Indique si la barre latérale courante a des widgets activés.
  • is_user_logged_in() : Indique si l’utilisateur qui visite la page est connecté.
  • has_excerpt() : Indique si la page en cours contient un résumé.
  • has_post_thumbnail() : Indique si la page en cours contient une image à la une.
  • has_tag() : Indique si la page en cours contient un mot-clé.
  • pings_open() : Indique si la page en cours à les « ping » ouverts.
  • email exists( $email ) : Indique si $email est déjà utilisé pour un membre sur ce site, si oui, renvoie l’ID de ce user.
  • post_type_exists( $post_type ) : Indique si $post_type a bien été enregistré sur ce site.
  • taxonomy_exists( $taxonomy ) : Indique si $taxonomy a bien été enregistrée sur ce site.
  • term_exists( $term ) : Indique si $term existe, les second et 3ème paramètres sont optionnels.
  • username exists( $username ) : Indique si $username a déjà été utilisé pour un membre inscrit sur le site, si oui, renvoie l’ID de ce user.
  • wp_attachment_is_image( $post_id ) : Indique si l’article $post_id contient un attachement de type « image ».
  • wp_script_is( $handle ) : Indique si le script $handle a bien été enregistré ou mis en queue, ou imprimé, ou à imprimer.

Ces pages ne sont pas toutes en français, dailleurs ici je vous ai lié les pages en anglais, si elle sont disponibles en français (peu le sont) vous trouverez en entête de chaque page de description un choix des langue possible.

La liste complète et mieux détaillée est donc sur  la page des « Marqueurs Conditionnels«  que je viens de finir.

Une liste principale est marqueurs les plus utilisés est disponible dans le Memento WordPress (non affilié) écrit par Jonathan Buttigieg, relu par mes soins.

Si j’ai oublié un marqueur, si j’ai dit des bêtises, merci de (me) corriger !

Lire la suite

Vous aimez ? Partagez !

7 réflexions sur “ Les marqueurs conditionnels

  1. Merci pour cette liste quasi exhaustive ( enfin j’imagine ^^). Parmi ceux-là le is_home reste le moins compris par les dévs dits débutants. Les gens font mal la différence avec is_front_page() qui lui s’occupe de la page d’accueil quoiqu’il arrive.

    Pour eux le is_home() est bien souvent confondu avec le is_front_page mais c juste parce que la page d’accueil affiche les derniers posts. Dans le cas d’une pager statique ce n’est pas is_home() qu’il faut employer si l’on veut la page d’accueil. D’ailleurs ce n’est pas à is_home() qu’il faut penser pour la page d’accueil en général je serais tenté de dire.

  2. Super pour la doc française, merci.
    Dans ton article, il y a erreur pour in_category() :
    « in_category() : Indique si la page en cours est une archive de catégorie. »
    devrait être :
    in_category( $category ) : indique si la page en cours est classée dans cette/ces $category
  3. Merci Julio pour ce travail bien utile ! Je me plante tout le temps entre is_home() et is_front_page(), ce billet devrait me permettre d’y voir plus clair et d’étendre un peu plus les possibilités sur mes sites ! ;)
  4. pas mal :), j’avoue que is_new_day() , je connaissais pas.. et la description m’a laissé perplexe « This Conditional Tag checks if today is a new day. This is a boolean function, meaning it returns TRUE when new day or FALSE if not a new day. »

    plus loin comprend mieux, ça sert à savoir dans une loop, si le post courant est une autre jour que le post précédent… je sais pas si ça va me servir un jour… mais c’est bon à savoir :)

Envie de dire quelque chose ?

Avant de parler, merci de lire la charte des commentaires.

Utiliser le tag [php][/php] pour ajouter du code ou utilisez un service comme pastebin.com.
Cibler un commentateur avec un "@", merci à Mention Comments Authors !