抜粋を表示するカスタムテーマがあります。
$data = get_the_excerpt();
if ($data) echo "<div class='excerpt'>$data</div>";
投稿エディタの抜粋フィールドに何も入力しないと、Wordpress は自動的に自動生成されたティーザー を使用します。
私はこのふるまいを取り除きたいのです。それをする方法はありますか?現時点では、自動ティーザーが表示されないようにするために、すべての投稿の抜粋フィールドにスペースを入力する必要があります。
代わりに$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>";
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();
}