ページでタイトルリストを表示 + ページテンプレート作成
どういうことをしたかったかというと、新規に投稿したときに、そのカテゴリーの日付とタイトルだけを違う特定のページに表示させたかったのです。
普通、カテゴリーを表示させた場合、そのカテゴリーの記事が一覧表示されるのですが、それに加えちょっとした説明文を加えたりしたいと考えいろいろ調べてみました。すぐに見つかったのが、カテゴリのタイトルをリスト表示させるというものです。hyperpupさんのサイトでまさにその「カテゴリを選ぶとタイトルリストに」というのが詳しく書かれていました。
でもこの場合だとそのページに追加で文章が書けないし、ちょっとやり方が違うんじゃないかと気がついた。もう少し調べてみると、新規で記事を投稿したときにデフォルトのテンプレートを選択せずに、それように作ったテンプレートを選択すればいいことがわかった。早速WordPressのサイトに行きドキュメントを調べてみるとページプレートの作り方が書いてある。phpのはじめに
<?php /* Template Name: [テンプレート名] */ ?>
とするとそのファイルはページテンプレートとして認識するようだ。
WordPressでは、管理画面で表示投稿数を設定すると、カテゴリの表示もその数になってしまうようだ。hyperpuさんのサイトにCustom posts per pageというプラグインが紹介されていたが、リンク先はページエラーで表示できなかった。他のサイトでもそのプラグインは紹介されていましたが、入手することはできませんでした。それで結局自分で試行錯誤して作ったのが下記のテンプレートです。
<?php /* Template Name: [テンプレート]シンプルなTemplate */ ?>
<?php get_header(); ?>
<div id="content">
<?php if (have_posts()) : ?>
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<h2><?php the_title(); ?></h2>
<?php while (have_posts()) : the_post(); ?>
<div <?php post_class() ?>>
<div>
<?php the_content(); ?>
<?php $posts = get_posts('numberposts=20&category=3');
foreach($posts as $post) : setup_postdata($post); ?>
<div><?php the_time('Y.m.d');?></div>
<div><a href="<?php the_permalink() ?>">
<?php if ( get_the_title() ) the_title(); else the_ID(); ?></a>
</div>
<?php endforeach; ?>
</div>
</div>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
他のテンプレートを複製して作ったのですが、とりあえずこれで自分がしたかったことはできています。それで上記のphpの中の(‘numberposts=20&category=3’)の部分ですが、20というのは表示させる項目数で、3というのはカテゴリーのIDです。そこはカテゴリースラッグでもいけるかも知れません。
ちなみに今使用しているテーマは、WordPressをインストールしたときのdefaultのテーマを改変したものです。
◆便利なWordPress日本語フォーラム
上記のようにいろんな情報がすぐに調べられるWordPress日本語フォーラムは、とても便利です。
記事を書いたとき、“続きを読む”というのは、どうしたらいいのか知りませんでした。もちろんちゃんとドキュメントに目を通していれば当たり前のことなのですが、<!–more–>を入れるといいのですね。で、それがどこにあるのか戸惑っちゃったりしてね…。逆に<!–more–>を入れても全文を表示さす方法とかを先に見つけてしまうこともあります。それも重要だったり、そこからヒントを見つけたりできますよね。調べものをしていてもついつい他の気になることが目に入っちゃったりで、あっという間に時間が過ぎてしまいます。
[…] 、各テンプレートの案内はリスト表示させ、更新状況は記事として書くことにした。ページにリスト表示させるのは「ページでタイトルリストを表示 + ページテンプレート作成」です。 […]