3

さまざまな長さの抜粋を表示する必要があるため、使用します

function custom_excerpt($length) {    
get_the_content();
... clean up and trim
return $excerpt;
}

ただし、カスタムの代わりにそれを使用するために、手動の抜粋が入力されたかどうかを検出したいと考えています。これを行う方法はありますか?

使ってみた

$wp_excerpt = get_the_excerpt();

しかし、それは手動の抜粋を返し、手動の抜粋が空の場合、自動的に 55 文字の抜粋を生成しますが、これは役に立ちません。

このようにアプローチする理由は、1 つのページに複数の抜粋 (異なる長さ) があり、必要な長さが WordPress の抜粋 (55) よりも長い場合、手動の抜粋が書かれていない限り、自分の抜粋を表示したいからです。 、その場合はそれを示したいと思います。

簡単にできれば完璧です

if ( manual_excerpt() == true ) {
}
4

3 に答える 3

3

excerp_length wordpress のデフォルト関数を置き換えるだけで、上記のコードに従うだけで、このカスタム関数を呼び出して長さを設定できます。

<?php
// custom excerpt length
function custom_excerpt_length( $length = 20 ) {
   return $length;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
?>   

回答更新 II

関数内での使用:

<?php
function custom_excerpt( $length = 55 ) {    
    if( $post->post_excerpt ) {
        $content = get_the_excerpt();
    } else {
        $content = get_the_content();
        $content = wp_trim_words( $content , $length );
    }
    return $excerpt;
}
?>
于 2013-11-12T17:10:32.117 に答える
1

post_excerpt投稿オブジェクトのスロットが空かどうかを確認します。

global $post;

if( '' == $post->post_excerpt )
{
    // this post does NOT have a manual excerpt
}

これを関数に変換するには:

function so19935351_has_manual_excerpt( $post )
{
    if( '' == $post->post_excerpt )
        return false;

    return true;
}
于 2013-11-12T19:23:59.103 に答える