Internet

WordPressテーマXeory Baseの記事一覧を全文表示から抜粋表示に変更するコード

今日もWordPressのブログのカスタマイズをしています。勉強のため、バズ部さんのXeory Baseテーマを利用しています。

シンプルなつくりなので勉強になります。ところで、セオリーベースでは、トップページの投稿一覧に全文が表示される仕様となっています。

トップページ投稿リストには、アイキャッチ・日付・タイトル・抜粋が掲載されていればよかったので。

全文表示のコードを変更して、投稿リストの記事一覧内では単一記事本文を抜粋表示にしました。

検索しても見つからなかったので、以下のコードを書きました。

CodeSnippetsか子テーマのfunctions.phpに貼り付けです。

add_filter( 'the_content', function ( $content ) {
    // 管理画面、フィード、個別記事ページ、メインクエリ以外、ループ外を除外
    if (
        is_admin() || 
        is_feed() || 
        is_singular() || 
        ! in_the_loop() || 
        ! is_main_query()
    ) {
        return $content;
    }

    $post = get_post();
    if ( ! $post || $post->post_type !== 'post' ) {
        return $content;
    }

    $excerpt = trim( (string) $post->post_excerpt );

    if ( $excerpt === '' ) {
        $excerpt = wp_trim_words(
            wp_strip_all_tags( strip_shortcodes( $content ), true ),
            80,
            '…'
        );
    }

    return '<p class="retro-list-excerpt">' . esc_html( $excerpt ) . '</p>';
}, 1 );

以上でXeory Baseの記事一覧が抜粋表示になりました。