web-dev-qa-db-fra.com

Désactiver les teasers automatiques

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.

1
Pekka 웃

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>";
1
Chip Bennett

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();
  }
0
Brooke.