Fr:Marqueurs conditionnels

来自WordPress中文文档
跳转至: 导航搜索

wordpress.org.cn 模板:French Header

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.

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() 
Quand la page principale est affichée.

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 des thèmes).

is_single() 
Quand une page d'Article unique est affichée.
is_single('17') 
Quand l'Article 17 est affiché sur une page d'Article unique.
is_single('Beef Stew') 
Quand l'Article dont le titre est "Beef Stew" est affiché en page unique.
is_single('beef-stew') 
Quand l'Article dont le nom est "beef-stew" est affiché en page unique (utilisé dans les permaliens).

Toute Page Contenant des Articles

comments_open()
Quand les commentaires sont autorisés pour l'Article en cours dans la Boucle WordPress.
pings_open()
Quand les pings sont autorisés pour l'Article en cours dans la Boucle WordPress.

Une PAGE

Cette section concerne les Pages WordPress, et pas n'importe quelle page générique de votre blog.

is_page() 
Quand une Page est affichée.
is_page('42') 
Quand la Page 42 est affichée.
is_page('About Me') 
Quand la Page dont le Titre est "About Me" est affichée.
is_page('about-me') 
Quand la Page dont le nom est "about-me" est affichée.

Malheureusement, il n'existe pas encore de fonction is_subpage() (pour tester si une page est une sous-page). On peut cependant, contourner ce problème :

if(get_the_title($post->post_parent) != the_title(' ' , ' ',false)) { echo "This is a subpage"; } 
Détermine si la page en cours est une sous-page en vérifiant qu'elle n'est pas son propre parent (les pages qui ne sont pas des sous-pages sont leurs propres parent). Si c'est le cas, cela affichera "This is a subpage".

Une Page de Catégorie

is_category() 
Quand une page de Catégorie d'archive est affichée.
is_category('6') 
Quand la page de Catégorie d'archive 6 est affichée.
is_category('Cheeses') 
Quand la page de Catégorie d'archive avec le nom "Cheeses" est affichée.
is_category('cheeses') 
Quand la page de Catégorie d'archive avec l'identifiant "cheeses" est affiché.
in_category('5') 
Renvoi vrai, si l'article en cours d'utilisation est dans l'id de la catégorie spécifiée. lire plus

Voir aussi is_archive() et Category Templates.

Une Page d'Auteur

is_author() 
Quand une page d'un auteur est affichée.
is_author('1337') 
Quand la page d'archive pour le numéro d'auteur 1337 est affichée.
is_author('Elite Hacker') 
Quand la page d'archive pour l'auteur avec le surnom "Elite Hacker" est affichée
is_author('elite-hacker') 
Quand la page d'archive pour l'auteur avec le surnom "elite-hacker" est affichée

Voir auss is_archive() et Author Templates.

Une Page Datée

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

Voir aussi is_archive().

Une Page d'Archive

is_archive() 
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() 
Quand une page affichant les résultats de recherche dans les archives est affichée.

Une Page 404 Not Found

is_404() 
Quand une page s'affiche après un message d'erreur "HTTP 404: Not Found".

Une page Paginée

is_paged() 
Quand la page affichée est "paginée". Cela concerne une archive ou la page principale quand elle est séparée en plusieurs pages. Cela ne se réfère pas à un Article ou une Page dont le contenu est divisé par l'utilisation de la balise <!--nextpage--> (voir les quicktags).

An Attachment

is_attachment() 
Lorsqu'un document attaché à un Article ou une Page est affichée. Un attachement est une image ou autre fichier uploadé par l'intermédiaire de l'utilitaire de téléchargement de l'éditeur d'article. Les attachements peuvent aussi être affichées sur leur propre 'page' ou modèles (template). Pour plus de détails, jettez un coup d'oeil à Utilisation d'image ou de fichier joints.

Une Syndication

is_feed() 
Quand le site appelé est 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() 
Quand le site appelé est 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.

Exemples

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

Article unitaire

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

if (is_single())
{
     echo 'This is just one of many fabulous entries in the ' . single_cat_title() . ' category!';
}

Affichage par date

Si quelqu'un navigue sur le site en utilisant les liens Datés (les archives par exemple), 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="Permanent Link to <?php the_title(); ?>">
<?php the_title(); ?></a></h2>
<small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>

<?php
// Affichage d'une page Datée ?
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"
          echo '<div class="oldentry">';
     } else {
          echo '<div class="entry">';
     }
} else {
     echo '<div class="entry">';
}
the_content('Read the rest of this entry »'); 
?>
</div>

Contenu Variable de la 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('A Propos')) {
             // Notre page A propos.
             echo "<p>Ceci est ma page A propos !</p>";
        } elseif (is_page('Colophon')) {
             echo "<p>Ceci est la page d'information sur le blog " . bloginfo('version') . "</p>";
        } else {
              // Pour toutes les autres pages
              echo "<p>Votez pour AmO !</p>";
        }
} else {
        // Affichage de tous les autres types de pages (archives, recherches, 404, etc)
        echo "<p>Oo vous offre sa protection.</p>";
} // C'est tout !
?>
<form id="searchform" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<div>
<input type="text" name="s" id="s" size="15" />
<input type="submit" value="<?php _e('Search'); ?>" />
</div>
</form>

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

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.

<p>You 
<?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

  if (!wp_get_referer()) {
    #politely blames the user for all the problems they caused
        echo "tried going to "; #starts assembling an output paragraph
	$casemessage = "All is not lost!";
  } else {
    #this will help the user find what they want, and email me of a bad link
	echo "clicked a link to"; #now the message says You clicked a link to...
        #setup a message to be sent to me
	$failuremess = "A user tried to go to $website"
        .esc_html( $_SERVER['REQUEST_URI'] )." and received a 404 (page not found) error. ";
	$failuremess .= "It wasn't their fault, so try fixing it.  
        They came from ".wp_get_referer();
	mail($adminemail, "Bad Link To ".esc_html( $_SERVER['REQUEST_URI'] ),
        $failuremess, "From: $websitename <noreply@$website>"); #email you about problem
	$casemessage = "An administrator has been emailed 
        about this problem, too.";#set a friendly message
  }
  echo " ".$website.esc_html( $_SERVER['REQUEST_URI'] ); ?> 
and it doesn't exist. <?php echo $casemessage; ?>  You can click back 
and try again or search for what you're looking for:
  <?php include(TEMPLATEPATH . "/searchform.php"); ?>
</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.

includeonlydiv style=clear:both; background-color:#F7F7F7; border:1px solid #CCCCCC; color:#000000; padding:7px; margin:0.5em auto 0.5em auto; vertical-align:middle;See also index of Function Reference and index of Template Tags./div/includeonlynoinclude

Description

This Template is used by Codex:Template Messages.

Usage

pre 检查到模板循环:模板:Message /pre

Result

检查到模板循环:模板:Message

/noinclude