カスタム投稿タイプの記事をサイドバーに一覧表示する
特定のカスタム投稿タイプの記事をサイドバーに一覧表示するには、通常の投稿と同じようにquery_posts関数を使ってデータを取得して表示することもできますが、プラグインを使って簡単に表示することもできます。プラグインを使う方法と、テンプレートをカスタマイズするコードの両方を紹介します。
プラグインを使ってカスタム投稿タイプの投稿を一覧表示する
Custom Post Type List Widgetプラグインが役立ちます。ウィジェットメニューから、サイドバーに一覧表示するカスタム投稿タイプを設定することができます。
まず、「プラグイン」‐「新規追加」メニューからCustom Post Type List Widgetプラグインをインストール、有効化して、「外観」‐「ウィジェット」メニューでパーツをサイドバーウィジェットにドラッグアンドドロップします。
これにより、サイドバーにカスタム投稿タイプの投稿が一覧表示されます。
ポイントはPost Typeでカスタム投稿タイプを選ぶことですが、これを含めて次のような表示オプションを使用可能です。
- Include Post-Type description --- カスタム投稿タイプの説明文を表示
- Shorten Long Titles --- 10文字を超えるタイトルは省略(文字化けします)
- Title --- 一覧のタイトルを入力
- Post Type --- カスタム投稿タイプを選択(投稿「post」や固定ページ「page」も選択可)
- Count --- 件数、日付などで絞り込む
- Sort Order --- 並び順を選択(日付、タイトル、ランダム、著者など)
- Format --- フォーマット(箇条書き、ドロップダウンリスト、改行)
テンプレートを編集してサイドバーにカスタム投稿タイプの投稿を一覧表示する
通常の投稿をサイドバーに一覧表示するコードは、次のようになります。サイドバーテンプレート(sidebar.php)に記述します。
※通常の最新投稿をサイドバーに一覧表示したいだけなら、ウィジェットメニューを使えば良いのでコードを書く必要はありません。
<ul> <?php query_posts('showposts=10'); if (have_posts()) : while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <?php the_title(); ?></a></li> <?php endwhile; endif; ?> </ul>
実行結果は次のようになります。
カスタム投稿タイプの投稿を一覧表示する場合は、投稿を取得するquery_postsにカスタム投稿タイプのデータを取得するように条件「post_type=shops」を追加します。
<ul> <?php query_posts('showposts=10&post_type=shops'); if (have_posts()) : while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <?php the_title(); ?></a></li> <?php endwhile; endif; ?> </ul>
実行結果は次のようになります。