web-dev-qa-db-ja.com

自動ティーザーを無効にする

抜粋を表示するカスタムテーマがあります。

    $data = get_the_excerpt();
    if ($data) echo "<div class='excerpt'>$data</div>";

投稿エディタの抜粋フィールドに何も入力しないと、Wordpress は自動的に自動生成されたティーザー を使用します。

私はこのふるまいを取り除きたいのです。それをする方法はありますか?現時点では、自動ティーザーが表示されないようにするために、すべての投稿の抜粋フィールドにスペースを入力する必要があります。

1
Pekka 웃

代わりに$post->post_excerptを使ってみてください。

// 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>";

このメソッドはget_the_excerpt()に固有の自動抜粋生成を迂回します。

EDIT

人気の要求により、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

global $post;を使う必要がない私が使う方法は、ループの中でthe_excerpt()の直前にこのスニペットを使うことです。

<?php
if (!has_excerpt()) {
         the_content(); //show the content if no excerpt
 } else {
         the_excerpt(); //else show excerpt
}
?> 

the_excerpt()が存在し、the_content()が存在しない場合にのみ表示する場合は、次のようにします。

  if(has_excerpt()){
          the_excerpt();
  }
0
Brooke.