追加したカスタム投稿タイプをページで表示する方法【WordPress】
カテゴリー・タグも含めた新しい投稿タイプを追加する方法【WordPress】inoma-design.hatenablog.com
↑のつづき
個別ページや固定ページなどで表示する方法。
カテゴリーとタグの場合
まずは作ったsample投稿のカテゴリーとタグの表示。
<?php echo get_the_term_list( $post->ID, 'sample_cat', 'カテゴリー: ', ', ' ); ?> <?php echo get_the_term_list( $post->ID, 'sample_tag', 'タグ: ', ', ' ); ?>
この記述では「カテゴリー:日記,料理,写真」のように表示される。
特に必要無い場合は( $post->ID, 'sample_cat', '' );
区切りたい文字を「''」の中に記述すればよい。
このままでは箇条書きになってしまうが、任意のHTMLを入れて記述したい場合。
<?php echo '<ul>'; echo get_the_term_list( $post->ID, 'sample_cat', '<li>', '</li><li>', '</li>' ); echo '</ul>'; ?>
個別ページの場合 single.php
既存である「single.php」を複製。
名前を「single-sample.php」にする。
sampleの部分は自分で新しく作ったphpのタイトルを記述。
これでsample投稿の個別ページに記事を書くと反映される。
固定ページの場合 page.php
single同様に、既存である「page.php」を複製。
名前を「page-sample.php」にする。
次にそのphpの上部に、固定ページのテンプレート名を記述。
<?php /* Template Name: サンプルページ */ ?> <!-- ここから下に本文 -->
これにより、管理画面で固定ページを作成するときに、この「サンプルページ」がテンプレートに追加されている。
続いて本文の部分
<?php $temp = $wp_query; $wp_query = null; $wp_query = new WP_Query(); $wp_query->query('post_type=sample' . '&paged=' . $paged . '&posts_per_page=8'); //posts_per_pageは表示する記事数 ?> <?php if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?> <!-- ループする部分 --> <h2><?php the_title(); ?></h2> <?php the_post_thumbnail(); ?> <div><?php the_excerpt(); ?></div> <?php endwhile; ?> <!-- ページ送り --> <?php else : ?> <!-- 記事がなかった時 --> <?php endif; ?>
「archive.php」の場合もこの文で呼び出す。
singleやpage同様、既存のphpを複製して「archive-sample.php」にする。
タクソノミーの場合 taxonomy.php
タクソノミーはカテゴリーやタグ別のページです。
「taxonomy-sample_cat.php」
「taxonomy-sample_tag.php」
上記同様、既存である場合は複製し、無い場合は新しく作ります。
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <!-- ループする部分 --> <?php endwhile; ?> <!-- ページ送り --> <?php else : ?> <!-- 記事がなかった時 --> <?php endif; ?>
記述は従来の通りでOK。
一ページに表示する記事数制限は、上記の固定ページとは異なり、管理画面の設定>表示設定で、表示する投稿数を指定するとよい。