web-dev-qa-db-ja.com

カテゴリテンプレートに部分的な投稿ではなく完全な投稿を表示させるにはどうすればよいですか。

私はWordpress 3.0.1をTwenty Tenテーマで使っています。カテゴリビューの投稿の表示方法を変更しようとしています(つまり、mywebsite.com/category/mycategoryのようなURLに移動します)。現在、カテゴリビューの投稿には投稿の最初の部分しか表示されていませんが、全体を表示するように変更したいと思います。

カテゴリテンプレート(category.php)ファイルには、カテゴリデータの生成を担当しているように見える数行のコードがあります。

/* Run the loop for the category page to output the posts.
 * If you want to overload this in a child theme then include a file
 * called loop-category.php and that will be used instead.
 */
get_template_part( 'loop', 'category' );
?>

コメントは子テーマの設定について言及しているので、私は先に進んで これらの指示 (via この答え )に従って子テーマを設定して私のカスタム機能を追加できます。

私のカスタム実装でloop-category.phpというファイルを作成することになっているというコメントからわかりますが、そのファイルにどのコードを入れる必要があるのか​​わかりません。完全なブログ投稿でカテゴリビューを表示するには、loop-category.phpに何を追加する必要がありますか?

注:私は長い間Wordpressを使用してきましたが、これがテーマのカスタマイズについての私の最初の飛び込みです。どんな助けでも大いに有り難いです。

1
Ben McCormack

@Ben、

Twentytenのloop.phpの132行目を見ると、WordPressにカテゴリアーカイブのthe_excerptのみを表示するように指示している条件文があります。そのすぐ下の<?php else : ?>の後には、アーカイブページ、サイドカテゴリまたはギャラリーカテゴリにないすべての投稿が表示されます。 (asidesとgalleryのカテゴリはloop.phpの始めをターゲットにしています)

<?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
            <div class="entry-summary">
                <?php the_excerpt(); ?>
            </div><!-- .entry-summary -->
    <?php else : ?>
            <div class="entry-content">
                <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?>
                <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
            </div><!-- .entry-content -->
    <?php endif; ?>

Loop-category.phpファイルで最も簡単なことは、loop.phpファイル全体をコピーして貼り付け、上記のコードのセクションを次のように変更することです。

<?php if ( is_search() ) : // Only display excerpts for archives and search. ?>
            <div class="entry-summary">
                <?php the_excerpt(); ?>
            </div><!-- .entry-summary -->
    <?php else : ?>
            <div class="entry-content">
                <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?>
                <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
            </div><!-- .entry-content -->
    <?php endif; ?>

is_archiveを条件文から削除しただけなので、カテゴリアーカイブはthe_contentではなくthe_excerptを含むelse文の後のコードを使用して表示されます。

7
Chris_O

Loop.phpから "is_archive()||"の2番目のインスタンスを削除し、各投稿全体をcategory/catslugページに表示するようにしました。 loop-category.phpファイルを作成する必要はありませんでした。私はChris_Oの指示なしではできなかったでしょう。ありがとう、クリス!

1
thepete