web-dev-qa-db-ja.com

WordPressフィールドを特定の文字数に制限する

私は<!--more-->タグで区切られた長くて長い投稿を使用するWordPressインストールを持っています。しかし私のRSSフィードでは、投稿全体が表示されます。

カスタムタグとは別に、WordPressフィードに表示される量を制限する方法や、 "More"タグまで表示する方法はありますか。

2
Paul Williams

読み取り設定でFull textSummaryのどちらかを選択できます。

settings menu

settings

Summaryを選択した場合、

a)フィードサマリーの単語数を制御するには、次のようにします。

add_filter('excerpt_length','custom_excerpt_length'); 
function custom_excerpt_length( $num_words ){
    return 30; // number of words to show
}

要約内のデフォルトの単語数は55です。

b)投稿コンテンツで<!--more-->を使用してフィードの概要を定義したい場合は、以下を使用できます。

add_filter( 'the_content', 'custom_content_feed' );
function custom_content_feed( $content ){
    if( is_feed() ){
        // <!--more--> used in the post content: 
        if( strpos( $content, '<span id="more-') !== FALSE ){
            // remove the excerpt length limit
            add_filter( 'excerpt_length', 'custom_long_excerpt_length' ); 
            // get the content before <!--more-->
            $content = stristr( $content, '<span id="more-', TRUE );
            // add the default 'read more' symbols at the end:
            $excerpt_more = apply_filters( 'excerpt_more', ' ' . '[&hellip;]' );
            $content .= $excerpt_more;
         }
    }
    return $content;
}
function custom_long_excerpt_length( $num_words ){
    return 99999;
}

c)a)とb)を一緒に使うこともできます。

3
birgire