前回のカスタム投稿タイプを使って『ScrapBook』という名のブックマークを目的とした子ブログを作成しましたという記事の第3弾です。
記事の内容が違うよというご指摘を頂きましたので、修正しました(2012/12/27) ご指摘・ご指導ありがとうございました。
ScrapBook作成 目次
- カスタム投稿とは? 作成方法をプラグインも含めて考える。
- パーマリンクについて!
- 実際に作成してみよう!その1:トップページをつくる!← いまここ
- 実際に作成してみよう!その2:シングルページをつくる!
- 実際に作成してみよう!その3:カスタム投稿タイプ一覧をつくる!
作成したモノの構成
トップページにサイドをなくして、タイル状に記事を並べるようにしたかったので、新たにjsを読み込まなくてはいけなかったことと、読了時間などあまり必要でないなと思われるものがあったのでその部分はなくしたことが大きな変更点。
ですが、さすがに1から作るのは大変なのでフレーム的なモノはそのまま流用し、少し手を加えて新たに以下の通りに作成しました。
- header-2.php ⇒header部分
- archive-scrapbook.php ⇒トップページ部分
- post_scrap.php ⇒ループ部分
- single-scrapbook.php ⇒記事詳細部分
- sidebar-2.php ⇒サイド部分
- footer-2.php ⇒footer部分
- taxonomy.php ⇒カテゴリ一覧
CSSに関しては、加えたものだけ書きたした感じなので、ほぼほぼ流用です。
ではでは、さっそく今日のお題『トップページをつくる!』です。
『トップページをつくる!』
カスタム投稿タイプでのトップページは、archive-投稿タイプ名.phpで作成します。
※ archiveを作成するには、
1 |
'has_archive' => true, |
この一文が必要です。
あとは、index(home)を作成した時のような中身でOK!なのですが、呼び込み方が通常とは異なります。
以下の文が必要です。
↓ 今回は、アーカイブを作成しましたので、以下の書き方はボツ
1 2 3 |
<?php //カスタム投稿タイプ呼び出し $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $wp_query = new WP_Query( array( 'post_type' => '投稿タイプ名', 'posts_per_page' => 10, 'paged' => $paged ) ); ?> |
上記の has_archive => true を記述した場合は、通常のテンプレートを作成するときと同じ書き方でOKです。
以下を記述。
1 |
<?php if (have_posts()) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?> |
これを加えて作成したものがこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php get_header(2); ?> <section class="content"> <?php if (have_posts()) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?> <?php get_template_part('includes/post_scrap'); ?> <?php endwhile; ?> <?php else : ?> <div class="post"> <div class="posttitle"> <h2 class="title">記事が見つかりませんでした</h2> </div> </div> <?php endif; ?> <?php get_template_part ('includes/pagenav'); ?> </section><!--#content--> <?php get_footer(2); ?> |
< ?php get_header(2); ?> と < ?php get_footer(2); ?>は今回新しく作成したヘッダーとフッターを呼び出しています。
本文のコンテンツ部分(ループするところ)とページナビの部分は別にテンプレート化してあるのでそれぞれを適所に呼び出しています。
※ PageNaviのプラグインを使用されている方は、カスタム投稿タイプでも使えますよ。
あとは、随時CSSで装飾をしておしまいです。
今までずっとテンプレートの呼び込みに includeを使っていましたが、今回 get_template_part を使って呼び出すようにしました。
少しまとめ
カスタム投稿タイプを実際作成してみるまで分かりませんでしたが、作ってみると案外簡単に出来るということがわかったのと、かなり自由度が高いのできちんとどういう目的で作成するのかということが分かっていないと作成に時間を取られてしまうなぁということ。
これは、カスタム投稿タイプ=子ブログみたいな感じに勘違いしていたので途中軌道修正が必要になってしまった自分への反省でもあります。
簡単ですが、以上です。おしまい。