WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

fr:Marqueurs conditionnels

Page d'accueil du Codex en français - Télécharger WordPress en français
Les utilisateurs francophones se retrouvent sur le site WordPress-Francophone, notamment sur son forum d'entraide.

Contents

Introduction

Les Marqueurs Conditionnels peuvent être utilisés dans vos Thèmes pour décider du contenu à afficher sur une page spécifique 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.

Ces Marqueurs sont en relation étroite avec la Hiérarchie des Modèles de WordPress.

Attention : Vous ne pouvez utiliser les marqueurs conditionnels des requêtes après le hook action post_selection. Le hook action wp est le premier possible. Pour les thèmes cela signifie qu'un marqueur conditionnel ne fonctionnera pas correctement si vous l'utilisez directement dans le corps de functions.php, hors d'une fonction et d'un hook.

Les Conditions Pour...

Tous les marqueurs conditionnels testent si une condition est remplie, et retourne ensuite true ou false. Les conditions selon lesquelles les différents marqueurs renvoient true sont listées ci-dessous. Les paramètres acceptés par certains marqueurs sont également mentionnés.

La page principale

is_home() 
Retourne true quand la page principale est affichée. C'est la page qui affiche le contenu de type blog de votre site, donc si vous avez choisi "Page statique" pour l'option "La page d'accueil affiche :", alors cette fonction renverra true seulement sur la page où vous avez sélectionné "Page des articles :" dans Administration > Réglages > Lecture.

La page d'accueil

is_front_page() 
Retourne true quand la page d'accueil de votre site est affichée, que ce soit pour des articles ou une Page. Retourne true quand la page principale du blog est affichée et le paramètre 'Réglages > Lecture -> La page d’accueil affiche' réglé sur "Les derniers articles", ou quand 'Réglages > Lecture -> La page d’accueil affiche' réglé sur "Une page statique" et "Page d'accueil" est la Page actuellement affichée.

La page du blog

is_front_page() et is_home() 

A l'heure actuelle, il n'existe pas de marqueur conditionnel pour cibler uniquement la page de blog. On utilisera alors les fonctions is_home() et is_front_page() pour la détecter. Elles peuvent être mal utilisées. On peut en effet définir une page statique pour l'accueil et une autre page pour son blog. Cette dernière va renvoyer true avec la fonction is_home() même s'il ne s'agit pas de la page d'accueil du site. Lorsque l'on utilise les fonctions is_home() et is_front_page(), il faut donc les tester dans le bon ordre pour être sûr des données affichées, quelle que soit la configuration choisie par l'utilisateur. Celui-ci peut en effet choisir :

  • une page d'accueil par défaut avec des articles
  • une page d'accueil qui utilise une page statique et pas de page de blog
  • une page d'accueil qui utilise une page statique et une page de blog

Pour faire cela, il faut donc utiliser conjointement les deux fonctions dans l'ordre donné dans cet exemple :

if ( is_front_page() && is_home() ) {
  // La page d'accueil par défaut
} elseif ( is_front_page() ) {
  // La page d'accueil statique
} elseif ( is_home() ) {
  // La page du blog
} else {
  //everyting else
}

Voir les Ressources externes

Les pages de l'administration

is_admin()
Retourne true quand le tableau de bord ou une page de l'administration est affichée.

Attention : la page wp-login.php ne fait pas partie de l'administration. Cette page n'a pas de marqueur conditionnel. Pour vérifier si c'est cette page qui est affichée, utilisez la variable globale d'administration $pagenow.

La barre d'outils (Admin Bar)

is_admin_bar_showing() 
Retourne true si la barre d'outils sera affichée.

Note : Pour afficher ou non cette barre, utilisez show_admin_bar(), cette function doit être appelée immediatement après le hook plugins_loaded ou placée dans le fichier functions.php du thème.

Une page d'article unique (single post)

Concerne les articles qui sont affichés à l'unité (en général, utilise le fichier single.php du thème).

is_single() 
Retourne true quand un article (ou attachement ou type de contenu personnalisé (custom post type)) est affiché. (Faux pour une Page)
is_single( '17' ) 
Retourne true quand l'article avec l'ID 17 est affiché.
is_single( 'Pain et Fromage' ) 
Retourne true quand l'article dont le titre est "Pain et Fromage" est affiché.
is_single( 'pain-fromage' ) 
Retourne true quand l'article dont le nom (post_name, ou slug utilisé dans les permaliens) est "pain-fromage" est affiché.
is_single( array( 17, 'pain-fromage', 'Pain et Camembert' ) ) 
Retourne true quand l'article affiché a l'ID 17, ou son post_name valant "pain-fromage", ou son post_title valant "Pain et Camembert".
is_single( array( 17, 19, 1, 11 ) ) 
Retourne true quand l'article affiché a son ID valant 17, ou son ID valant 19, ou son ID valant 1, ou son ID valant 11.
is_single( array( 'pain-fromage', 'pain-camembert', 'quiche-maroilles' ) ) 
Retourne true quand l'article affiché a son post_name valant "pain-fromage", ou son post_name valant "pain-camembert", ou son post_name valant "quiche-maroilles".
is_single( array( 'Pain et Fromage', 'Pain et Camembert', 'Quiche au Maroilles' ) ) 
Retourne true quand l'article affiché a son post_title valant "Pain et Fromage", ou son post_title valant "Pain et Camembert", ou son post_title valant "Quiche au Maroilles".

Note : Cette function ne fait pas la distinction en l'ID de l'article (ID), le title de l'article (post_title), ou le nom de l'article (post_name). Un article appelé "17" retournera true si l'ID 17 a été demandé. Même chose si le nom (slug) de l'article valant "17".

Les articles à la une (Sticky Post)

is_sticky() 
Retourne true si la case à cocher "Mettre cet article en avant sur la page d’accueil" est cochée pour l'article en cours d'affichage. Dans cet exemple aucun ID d'article n'est donné, ce sera alors l'ID de l'article en cours d'itération dans la Boucle qui sera utilisé.
is_sticky( '17' ) 
Retourne true quand l'article avec l'ID 17 est mis en avant.

Un type de contenu est hiérarchique

is_post_type_hierarchical( $post_type ) 
Retourne true si le type d'article (CPT) $post_type supporte le format hiérarchique.
is_post_type_hierarchical( 'vignoble' ) 
Retourne true si le type d'article (CPT) "vignoble" supporte le format hiérarchique.

Un type de contenu archive (Post Type Archive)

is_post_type_archive() 
Retourne true si la page en cours d'affichage est une archive, tout types de contenu (CPT) confondus.
is_post_type_archive( $post_type ) 
Retourne true si la page d'archives affichée correspond à $post_type.
is_post_type_archive( array( 'truc', 'machin', 'bidule' ) ) 
Retourne true si la page d'archives affichée correspond au type de contenu (CPT) "truc", "machin", ou "bidule".

Note : Pour activer les archives sur un type d'article, utilisez 'has_archive' => true quand vous enregistrez votre type de contenu.

Les commentaires en Popup

is_comments_popup() 
Retourne true quand la fenêtre affichée est celle des commentaires en Popup.

Toute page contenant des articles

comments_open() 
Retourne true quand les commentaires sont autorisés pour l'article en cours d'affichage dans la Boucle.
pings_open() 
Retourne true quand les pings sont autorisés pour l'article en cours d'affichage dans la Boucle .

Une PAGE

Cette section concerne les Pages WordPress, et pas n'importe quelle page générique de votre blog ou en d'autres terme il s'agit du type de contenu post_type='page'.

is_page() 
Retourne true quand n'importe quelle page est affichée.
is_page( '42' ) 
Retourne true quand la page avec l'ID 42 est affichée.
is_page( 'À propos de moi' ) 
Retourne true quand la page dont le titre (post_title) est "À propos de moi" est affichée.
is_page( 'about-me' ) 
Retourne true quand la page dont le nom (ou slug contenu dans le permalien, le post_name) est "about-me" est affichée.

Note : Il n'existe pas de fonction pour tester si une page est une sous-page. On peut cependant, contourner ce problème :

if ( is_page() && $post->post_parent > 0 ) { 
    echo "Ceci est une page enfant";
}

Les modèles de page (Custom Page Template)

Afin de déterminer si oui ou non la page affichée utilise un template personnalisé. Que ce soit un modèle de page que l'on retrouve dans la boite des propriétés d'une page, ou qu'elle dépende de la hiérarchie de modèles.

is_page_template() 
Retourne true dès qu'un modèle de page est utilisé.
is_page_template( 'about.php' ) 
Retourne true si le fichier 'about.php' est utilisé en modèle.

Note : Si vous rangez vos fichiers de modèles de page dans un sous-dossier (bonne pratique) dans votre thème, vous devrez spécifier son chemin complet à partir de la racine du thème, par exemple is_page_template( 'pages-template/about.php' ).

Une page de catégorie

is_category( $category ) 
Retourne true quand la page en cours d'affichage est associée à la catégorie d'archive $category est affichée (peut être un entier, un nom, un identifiant).
is_category( '6' ) 
Retourne true quand la page de catégorie d'archive dont le term_ID est "6" est affichée.
is_category( 'Des fromages' ) 
Retourne true quand la page de catégorie d'archive avec le nom (name) "Des fromages" est affichée.
is_category( 'des-fromages' ) 
Retourne true quand la page de catégorie d'archive avec l'identifiant (slug) "des-fromages" est affichée.
is_category( array( 9, 'fromage-bleu', 'Fromages qui puent' ) ) 
Retourne true quand la page d'archive a le term_ID à "9", ou son identifiant (slug) sur "fromage-bleu", ou son nom (name) sur "Fromages qui puent".
in_category( '5' ) 
Retourne true si l'article en cours d'affichage fait partie de la catégorie dont l'ID est "5". Voir aussi in_category()
in_category( array( 1, 2, 3 ) ) 
Retourne true quand l'article (tout type de contenus (CPT) confondus) fait parti d'une des categories "1", "2", ou "3".
! in_category( array( 4, 5, 6 ) ) 
Même chose à l'envers : ne fait pas parti des catégories "4", "5", et "6".

Attention : Soyez sûr de votre orthographe entre "is" et "in", la différence est grande.

Voir aussi is_archive() et Category Templates.

Une page de mot-clés (Tag)

is_tag() 
Retourne true quand n'importe quelle page d'archive de mot-clés est affichée.
is_tag( 'moyenne' ) 
Retourne true quand la page d'archive du mot-clé 'moyenne' est affichée.
is_tag( array( 'petite', 'moyenne', 'grande' ) ) 
Retourne true quand la page d'archive du mot-clé 'petite', 'moyenne', ou 'grande' est affichée.
has_tag() 
Retourne true quand l'article en court d'affichage contient le mot-clé spécifié.

Note : Avant WordPress 2.7, cette fonction n'est utilisable que dans la Boucle.

has_tag( 'moyenne' ) 
Retourne true quand l'article en court d'affichage contient le mot-clé 'moyenne'.
has_tag( array( 'petite', 'moyenne', 'grande' ) ) 
Retourne true quand l'article en court d'affichage contient le mot-clé 'petite', 'moyenne', ou 'grande'.

Voir aussi is_archive() etTag Templates.

Une page de taxonomie (et associées)

is_tax

is_tax() 
Retourne true quand la page affichée est une taxonomie.

Note : Retourne false sur une page de catégorie et de mot-clé, utilisez is_category() et is_tag;

is_tax( 'taille' ) 
Retourne true quand la page d'archives de la taxonomie 'taille' est affichée.
is_tax( 'taille', 'moyenne' ) 
Retourne true quand la page d'archives fait partie de la taxonomie 'taille' ou 'moyenne'.
is_tax( 'taille', array( 'petite', 'moyenne', 'grande' ) ) 
Retourne true quand la page d'archives fait partie de la taxonomie 'taille', 'petite', 'moyenne' ou 'grande'.

has_term

has_term() 
Retourne true si l'article (tout type de contenus (CPT) confondus) est associé à n'importe quel termes parmis ceux demandés. Le premier paramètre doit être une chaîne vide. Le second doit être le nom (name) ou l'identifiant (slug) d'une taxonomie.
has_term( 'couleur', 'bleue' ) 
Retourne true quand l'article en cours d'affichage est associé au terme 'couleur' ou 'bleue'.
has_term( array( 'bleue', 'blanche', 'rouge' ), 'couleur' ) 
Retourne true quand l'article en cours d'affichage est associé au terme 'bleue', 'blanche', 'rouge', ou 'couleur'.

term_exists

term_exists( $term, $taxonomy, $parent ) 
Retourne true si $term existe dans n'importe quelle taxonomie. Si $taxonomy est renseigné, le terme doit alors exister dans celle-ci. Le 3ème paramètre $parent est lui aussi optionnel, si renseigné, le terme demandé doit être un enfant de ce parent, la taxonomie doit alors être hiérarchique.

is_taxonomy_hierarchical

is_taxonomy_hierarchical( $taxonomy ) 
Retourne true si la taxonomie demandée $taxonomy est de type hiérarchique. Pour déclarer une taxonomie hiérarchique utilisez 'hierarchical' => true lors de l'utilisation de register_taxonomy().

taxonomy_exists

taxonomy_exists( $taxonomy ) 
Retourne true si $taxonomy a été enregistrée pour ce site avec register_taxonomy().

Voir aussi is_archive().

Une page d'auteur

is_author() 
Retourne true quand la page d'archive de de n'importe quel un auteur est affichée.
is_author( '2112' ) 
Retourne true quand la page d'archive d'auteur pour le numéro d'auteur (ID) 2112 est affichée.
is_author( 'Jonathan Buttigieg' ) 
Retourne true quand la page d'archive d'auteur avec le surnom(1) "Jonathan Buttigieg" est affichée.
is_author( 'julio-potier' ) 
Retourne true quand la page d'archive d'auteur avec l'identifiant(2) "julio-potier" est affichée.
is_author( array( 79, 'julio-potier', 'Greg' ) ) 
Retourne true quand la page d'archive d'auteur avec l'ID "79", l'identifiant(2) "julio-potier" ou le surnom(1) "Greg" est affichée.

(1) La donnée meta utilisateur nickname

(2) user_nicename et non la donnée meta utilisateur nickname !

Voir aussi is_archive() et Author Templates.

Un site multi-auteur

is_multi_author() 
Retourne true quand plus d'un auteur a déjà publié du contenu sur le site.

Note : Disponible depuis WordPress Version 3.2.

Une page de date

is_date() 
Retourne true quand n'importe quelle page d'archive basée sur le temps est affichée (c.a.d une archive mensuelle, annuelle, quotidienne ou basée sur l'heure).
is_year() 
Retourne true quand une archive annuelle est affichée.
is_month() 
Retourne true quand une archive mensuelle est affichée.
is_day() 
Retourne true quand une archive quotidienne est affichée.
is_time() 
Retourne true quand une archive à l'heure, la minute ou la seconde est affichée.

Voir aussi is_archive().

Les pages d'archives

is_archive() 
Retourne true quand n'importe quelle page de type "Archive" est affichée. Les pages de Catégorie, d'Auteur et les pages Datées sont toutes de type "Archive".

Une page de résultat de recherche

is_search() 
Retourne true quand une page affichant les résultats de recherche dans les archives est affichée.

Une page 404 "Not Found"

is_404() 
Retourne true quand une page ou un fichier est non trouvé sur le site et affiche le message d'erreur "HTTP 404: Not Found".

Une page paginée

is_paged() 
Retourne true quand la page affichée est "paginée". Cela concerne une archive ou la page d'accueil quand elle est séparée en plusieurs pages. Cela ne se réfère pas à un article ou une page dont le contenu serait divisé par l'utilisation de la balise

<!--nextpage-->

Voir les quicktags

Une page d'attachement

is_attachment() 
Retourne true quand un document attaché à un article ou une page est affiché.

Un attachement (post_type=attachment) est une image ou autre fichier téléversé par l'intermédiaire de l'utilitaire de téléchargement de l'éditeur d'article. Les attachements peuvent aussi être affichés sur leur propre 'page' ou modèles (template).

Voir aussi Utilisation d'image ou de fichiers joints.

L'attachement est une image

wp_attachment_is_image( $post_id ) 
Retourne true si le fichier attaché à l'article dont l'ID est $post_id est bien une image. Les formats mime et extensions acceptés sont : .jpg, .jpeg, .gif, et .png.

Un attachement local

is_local_attachment( $url ) 
Retourne true si le lien passé dans $url est bien un fichier d'attachement de ce site.

Une page, un article, une attachement ou n'importe quel autre type de contenu

is_singular()
Retourne true si is_single, is_page, ou is_attachment.
is_singular( 'truc' ) )
Retourne true si le type d'article en cours d'affichage est "truc".
is_singular( array( 'truc', 'machin', 'bidule' ) )
Retourne true si le type d'article en cours d'affichage est "truc", "machin", ou "bidule.

Voir aussi les Custom Post Types.

Un type de contenu existe

post_type_exists( $post_type ) 
Retourne true si le type de contenu (CPT) $post_type a été enregistré sur le site avec register_post_type().

La requête principale (Main Query)

is_main_query()
Retourne true si la requête courante (celle dans la Boucle la plupart du temps) est bien la requête principale et non une seconde requête/boucle dans la page.

Exemple avec le hook the_content

add_action( 'the_content', 'baw_add_social_buttons' );
function baw_add_social_buttons( $content ) {
    if ( ! is_admin() && is_main_query() ) {
        return $content . function_from_a_social_plugin();
    }
    return $content;
}

Si, lorsque WordPress souhaite afficher le contenu de chaque article dans la boucle ou dans la page de l'article seul, nous sommes dans la requête principale et pas côté administration, on ajoute des boutons sociaux (par exemple).

Exemple avec le hook pre_get_posts

add_action( 'pre_get_posts', 'baw_modify_query_exclude_category' );
function baw_modify_query_exclude_category( $query ) {
    if ( ! is_admin() && $query->is_main_query() && ! $query->get( 'cat' ) ) {
        $query->set( 'cat', '-5' );
    }
}

Dans pre_get_posts, il n'est pas possible d'appeler directement is_main_query, il faut donc passer par $query qui est passée en paramètre.

Un nouveau jour

is_new_day() 
Retourne true si aujourd'hui est un nouveau jour. Voir les ressources externes pour un exemple.

Une syndication (RSS feed)

is_feed() 
Retourne true quand le site est appelé depuis une Syndication. Ce marqueur n'est pas couramment utilisé par les utilisateurs ; il est utilisé en interne par WordPress et est disponible pour les développeurs de plugins.

Un trackback

is_trackback() 
Retourne true quand le site est appelé depuis un hook vers le moteur de Trackback de WordPress. Ce marqueur n'est pas couramment utilisé par les utilisateurs ; il est utilisé en interne par WordPress et est disponible pour les développeurs de plugins.

Un aperçu (Preview)

is_preview() 
Retourne true quand l'article affiché est en brouillon, en mode aperçu.

Contient un résumé (Excerpt)

has_excerpt() 
Retourne true quand l'article en cours d'affichage contient un résumé.
has_excerpt( 42 ) 
Retourne true quand l'article avec l'ID "42" contient un résumé.

Contient un menu assigné

has_nav_menu( $location ) 
Retourne true si un menu est assigné dans $location.

Voir aussi register_nav_menu()

Dans la Boucle (The Loop)

in_the_loop() 
Retourne true si nous sommes dans la boucle.

Les barres latérales sont utilisées (SideBar)

is_dynamic_sidebar() 
Retourne true si la barre latérale courante a des widgets activés.

Une barre latérale activée (Sidebar)

is_active_sidebar( $sidebar ) 
Retourne true si la sidebar demandée est activée. Le paramètre $sidebar peut être le nom ou l'ID de la barre.

Note : Pour afficher le contenu d'une barre latérale, utilisez dynamic_sidebar( $sidebar ).

Un widget activé

is_active_widget( $widget_callback, $widget_id ) 
Retourne true si le widget donc la fonction de retour (callback) est $widget_callback, ou son ID est $widget_id sera affiché sur le front-end (la partie visiteur de votre site).

Note : Pour bien fonctionner, cette fonction doit être lancée après l'initialisation des widgets , donc minimum sur le hook action 'init' ou après, voir les références des actions.

Un blog installé

is_blog_installed() 
Retourne true si le blog en cours est bien installé.

Note : Le cache sera vérifié en premier. Si vous avez un plugin de cache qui sauve les valeurs en cache, cela va fonctionner. Si vous utilisez le cache par défaut de WordPress et que la base de données n'est plus là, vous pourriez avoir des problèmes.

Lecture de droite à gauche

is_rtl() 
Retourne true si la langue courante est lue de droite à gauche (Right To Left, RTL).

Exemple

 if ( is_rtl() ) {
   wp_enqueue_style(  'style-rtl',  plugins_url( '/css/style-rtl.css', __FILE__ ) );
   wp_enqueue_script( 'script-rtl', plugins_url( '/js/script-rtl.js',  __FILE__ ) );
 }

Un blog d'un réseau (Multisite)

is_multisite() 
Retourne true si le site visité fait parti d'une installation multisite.

Le site principal (Multisite)

is_main_site() 
Retourne true si le site visité est le site principal de l'installation multisite.

L'utilisateur est l'administrateur du réseau (Multisite)

is_super_admin() 
Retourne true si l'utilisateur connecté est l'administrateur du réseau de l'installation multisite (super admin).

L'utilisateur est connecté

is_user_logged_in() 
Retourne true si l'utilisateur courant est connecté, tout rôle confondu.

L'adresse e-mail existe

email_exists( $email ) 
Vérifie si l'adresse e-mail $email a déjà été utilisée pour un membre inscrit sur ce site, la fonction retourne alors l'ID de cet utilisateur, sinon false.

Le nom d'utilisateur existe

username_exists( $username ) 
Vérifie si le nom d'utilisateur $username a déjà été utilisé pour un membre inscrit sur ce site, la fonction retourne alors l'ID de cet utilisateur, sinon false.

Un plugin actif

is_plugin_active( $path ) 
Retourne true si le plugin spécifié est activé.
is_plugin_active( 'akismet/akismet.php' ) 
Retourne true si le plugin "Akismet" est activé.
is_plugin_inactive( $path ) 
Retourne true si le plugin spécifié est désactivé. Même chose que ! is_plugin_active( $path ).
is_plugin_active_for_network( $path ) 
Même chose mais pour vérifier si le plugin est actif sur le réseau d'une installation multisite.
is_plugin_page() 
Retourne true si la page chargée du côté administration est celle d'un plugin. Cette fonction est dépréciée depuis WordPress 3.1, sans alternative connue.

Un thème enfant

is_child_theme() 
Retourne true si le thème activé est un thème enfant.

Le theme supporte une fonctionnalité

current_theme_supports( $feature ) 
Retourne true si le thème supporte la fonctionnalité $feature demandée.
current_theme_support( 'post-thumbnails' ) 
Retourne true si le thème supporte les images à la une. Pour ajouter un support de fonctionnalité dans une thème, utilisez add_theme_support()

L'article contient une image à la une

has_post_thumbnail( $post_id ) 
Retourne true si l'article dont l'ID est $post_id contient une image à la une. Le thème doit supporter les images à la une (Featured Images), voir ci-dessus.

Le script est utilisé

wp_script_is( $handle, $list ) 
Retourne true si le script dont le handle est $handle a été 'enregistré', 'mis en queue', 'imprimé', ou 'à imprimer' selon le paramètre $list.

Note : Les valeurs possibles pour $list sont : registered, enqueued/queue, done, et to_do.

Exemple

    $handle = 'fluidVids.js';
    $list = 'enqueued';
      if ( wp_script_is( $handle, $list ) ) {
        return;
      } else {
        wp_register_script( 'fluidVids.js', plugin_dir_url(__FILE__).'js/fluidvids.min.js');
        wp_enqueue_script( 'fluidVids.js' );
      }

Ceci va vérifier si le script nommé "fluidVids.js" est mis en queue. Si non, le fichier sera alors enregistré et mis en queue.

Exemples

Voici des exemples pratiques qui montrent l'utilisation des Marqueurs Conditionnels.

Un article

Cet exemple montre comment utiliser is_single() pour un affichage spécifique à une page d'article :

if ( is_single() ) {
     echo 'Titre de cet article : ' . get_the_title();
}

Un autre exemple d'utilisation des tags conditionnales dans la Boucle. Choisissez d'afficher le contenu (post_content) ou son résumé dans in index.php quand ce fichier sera appelé pour l'accueil en mode blog ou pour un article.

if ( is_home() || is_single() ) {

   the_content();

}
else {

   the_excerpt();

}

Si vous avez besoin d'afficher du code ou des éléments quand ce n'est PAS la page d'accueil

<?php if ( ! is_home() ) {?>

 <p>Ajoutez votre contenu</p>

<?php }?>

Utiliser plusieurs marqueurs conditionnels

Vous pouvez utiliser les opérateurs PHP pour évaluer de multiples conditions dans un seul test.

C'est très utile si vous avez besoin de vérifier plusieurs conditions en même temps.

// Vérifie si on visite une page ou un article
if ( is_single() || is_page() ) ) {
  
	// oui

}

// Vérifie si on visite une page d'archive qui n'est pas de la catégorie "beret"
if ( is_archive() && ! is_category( 'beret' ) ) {
  
	// oui

}
// Vérifie si nous sommes dans la requête principale, dans une page d'archives du CPT 'product', et pas dans l'administration.


if ( is_main_query() && is_post_type_archive( 'product' ) && ! is_admin() ) {
  
	// oui

}

// Vérifie si on visite la page d'archives du CPT 'movie', ou la tanonomie personnalisée 'genre' ou 'acteur'.
if ( is_post_type_archive( 'movie' ) || is_tax( 'genre' ) || is_tax( 'actor' )  ) {
  
	// oui

}

Affichage par date

Si quelqu'un navigue sur le site en utilisant les liens datés, le code qui suit affectera des couleurs différentes aux Articles en fonction de l'année :

<?php
// Début de la Boucle (The Loop)
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2 id="post-<?php the_ID(); ?>">
<a href="<?php the_permalink() ?>" rel="bookmark" title="Lien permanent vers <?php the_title_attribute(); ?>">
<?php the_title(); ?></a></h2>
<small><?php the_time( get_option( 'time_format' ) ) ?> par <?php the_author() ?> </small>

<?php
// Affichage d'une page Datée ?
$class = 'entry';
if ( is_date() ) {
     if ( date( 'Y' ) != get_the_date( 'Y' ) ) {
          // cet Article a été publié une année antérieure
          // donc, on affiche en utilisant la classe "oldentry"
          $class = 'oldentry';
     }
}
?>
<div class="<?php echo $class; ?>">';
<?php
the_content( 'Lire la suite »' ); 
?>
</div>

Contenu variable de la barre latérale (sidebar)

Cet exemple affichera des contenus différents dans votre Sidebar en fonction du type de page en cours d'affichage.

<!-- début de la sidebar -->
<div id="sidebar">
<?php
// Génération d'informations liées à la page affichée
if ( is_home() ) {
        // Sur la home page, affichage des Catégories mères uniquement          
        echo '<ul>';
        wp_list_cats( 'optionall=0&sort_column=name&list=1&children=0' );
        echo '</ul>';
} elseif ( is_category() ) {
        // sur une page de catégorie, affichage de toutes les Catégories
         echo '<ul>';
        wp_list_cats( 'optionall=1&sort_column=name&list=1&children=1&hierarchical=1' );
        echo '</ul>';
} elseif ( is_single() ) {
        // Sur une page d'Article unitaire, aucune Catégorie n'est affichée
} elseif ( is_page() ) {
        // Affichage de page spécifiques
        if ( is_page( 'À Propos') ) {
             // Notre page A propos.
             echo '<p>Ceci est ma page À propos !</p>';
        } elseif ( is_page( 'Infos' ) ) {
             echo '<p>Ceci est la page d'information sur le blog ' . bloginfo( 'name' ) . '</p>';
        } else {
              // Pour toutes les autres pages
              echo "<p>Votez pour BAW !</p>";
        }
} else {
        // Affichage de tous les autres types de pages (archives, recherches, 404, etc)
        echo '<p>A bientôt.</p>';
} // C'est tout !
?>
<form id="searchform" method="get" action="<?php echo esc_url( $_SERVER['SCRIPT_NAME'] ); ?>">
<div>
<input type="text" name="s" id="s" size="15" />
<input type="submit" value="<?php _e( 'Search' ); ?>" />
</div>
</form>

</div>
<!-- fin de la sidebar -->

Une page 404 utile

Lorsqu'un visiteur arrive sur une page d'erreur 404, cela peut être intimidant et inutile. En utilisant WordPress, vous pouvez prendre avantage d'un 404 et le rendre utilise aux utilisateurs, et à vous même en vous envoyant un mail chaque fois qu'un utilisateur clique sur un lien menant vers une page inexistante.

<?php
// some variables for the script to use
// if you have some reason to change these, do.  but wordpress can handle it
$adminemail = get_bloginfo( 'admin_email' ); // the administrator email address, according to wordpress
$website = home_url(); // gets your blog's url from wordpress
$websitename = get_bloginfo( 'name' ); // sets the blog's name, according to wordpress
$url = esc_html( $_SERVER['REQUEST_URI'] );
if ( ! wp_get_referer() ) {
	// politely blames the user for all the problems they caused
	$text = 'Vous avez essayé de joindre '; // starts assembling an output paragraph
	$casemessage = 'Tout n\'est pas perdu !';
} else {
	// this will help the user find what they want, and email me of a bad link
	$text = 'Vous avez cliqué sur un lien vers '; // now the message says You clicked a link to...
	// setup a message to be sent to me
	$failuremess = 'Un visiteur a essayé de joindre ' . $website . $url;
	$failuremess .= ' et est tombé sur une page 404.<br />';
	$failuremess .= 'Ce n\'est pas de sa faute, essayez de la réparer.<br />';
	$failuremess .= 'Il venait de ' . wp_get_referer() . '<br />';
	mail( $adminemail, '404 sur ' . $url, $failuremess, 'From: ' . get_bloginfo( 'name' ) . ' <noreply@' . $website . '>' ); // email you about problem
	$casemessage = 'Un administrateur a été alerté du problème.';// set a friendly message
}
$text .= $website . $url;
?>

<p>
<?php echo $text; ?> et cela n'existe pas.<br />
<?php echo $casemessage; ?><br />
Vous pouvez tenter de revenir en arrière ou utiliser la recherche :<br />
<?php get_template_part( 'searchform' ); ?>
</p>

Menu Dynamique mis en évidence

L'article Dynamic Menu Highlighting explique comment utiliser les marqueurs conditionnels afin de permettre la mise en évidence de la page courante dans un menu.

Dans le pied de page du thème, footer.php

Parfois les requêtes effectuées dans d'autres modèles tels que sidebar.php pourraient perturber certains marqueurs conditionnels. Par exemple, dans header.php un marqueur conditionnel fonctionne correctement mais plus dans le fichier footer.php du thème. L'astuce est d'ajouter wp_reset_query avant le test conditionnel dans le pied du site.

<?php
wp_reset_query();
if ( is_page( '2' ) ) {
    echo 'Page 2 !';
} 
?>
See also index of Function Reference and index of Template Tags.

Ressources externes