J'ai un thème personnalisé qui affiche l'extrait:
$data = get_the_excerpt();
if ($data) echo "<div class='excerpt'>$data</div>";
si rien n'est entré dans le champ extrait de l'éditeur de publication, Wordpress utilisera automatiquement le teaser généré automatiquement .
Je voudrais me débarrasser de ce comportement. Y a-t-il un moyen de le faire? Pour le moment, je dois insérer un espace dans le champ extrait de chaque message pour empêcher l'affichage du teaser automatique.
Essayez d'utiliser $post->post_excerpt
à la place:
// globalize $post, just in case
global $post;
// find out if the post has a defined excerpt
$data = $post->post_excerpt;
// If so, output something
if ($data) echo "<div class='excerpt'>$data</div>";
Cette méthode contournera la génération d’extrait automatique inhérente à get_the_excerpt()
.
EDIT
À la demande générale, le même code, en utilisant has_excerpt()
:
// find out if the post has a defined excerpt
$data = ( has_excerpt() ? get_the_excerpt() : false );
// If so, output something
if ($data) echo "<div class='excerpt'>$data</div>";
Une méthode que j'utilise et qui ne nécessite pas l'utilisation de global $post;
consiste à utiliser ce snipit juste avant the_excerpt()
dans la boucle.
<?php
if (!has_excerpt()) {
the_content(); //show the content if no excerpt
} else {
the_excerpt(); //else show excerpt
}
?>
Si vous ne vouliez montrer que the_excerpt()
s'il existait et pas du tout the_content()
, vous pouvez utiliser:
if(has_excerpt()){
the_excerpt();
}