inoma-NOTE

自分のためのメモじゃ

追加したカスタム投稿タイプをページで表示する方法【WordPress】

カテゴリー・タグも含めた新しい投稿タイプを追加する方法【WordPressinoma-design.hatenablog.com

↑のつづき

個別ページや固定ページなどで表示する方法。

  1. カテゴリーとタグの場合
  2. 個別ページの場合 single.php
  3. 固定ページの場合 page.php
  4. タクソノミーの場合 taxonomy.php

カテゴリーとタグの場合

まずは作った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投稿の個別ページに記事を書くと反映される。

f:id:inoma_design:20160612224329j:plain

固定ページの場合 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。
一ページに表示する記事数制限は、上記の固定ページとは異なり、管理画面の設定>表示設定で、表示する投稿数を指定するとよい。