ウィジェットがだいぶゴチャゴチャとしてきたので、思い切って投稿タイプ別にサイドバーを追加しました。
今のところ4つ投稿タイプを作っているので4つ追加です。
register_sidebar( array( 'name' => 'お知らせ用サイドバー') ); register_sidebar( array( 'name' => 'ナントカ用サイドバー') );
こんな感じでfunction.phpに追加しました。
ただ連番でよければ
register_sidebars(4, array('name'=>'Sidebar %d'));
と、書いていけばいいんですが、なんせ4つもカスタム投稿タイプがあるので何番のサイドバーをどのタイプにしたっけと追いかけるのも面倒です。そのため、ひとつずつ名前をつけて登録しました。
ひとつずつの場合、sidebarですが、複数を指定するときはsidebarsと複数形にします。
今回はウィジェットを使いません。もうゴッチャゴチャになるので、新しいサイドバーの中身は真っ白から始めて、ガジガジとphpを書いていきます。
まずは記事一覧を表示したかったので前の記事を応用です。日付を外して20記事まで表示できるようにしました。
こんな感じ。
<?php $myQuery = new WP_Query(); // WP_Queryオブジェクト生成 $param = array( //パラメータ。 'posts_per_page' => '20', //(整数)- 1ページに表示する記事数。-1 ならすべての投稿を取得。 'post_type' => 'news', //カスタム投稿タイプのみを指定。 'post_status' => 'publish', //取得するステータスを指定:publish(公開済み) 'orderby' => 'ID', 'order' => 'DESC' //降順。大きい値から小さい値の順。 ); $myQuery->query($param); // クエリにパラメータを渡す ?> <ul style="margin:0px;padding:0px;text-indent:-4.5em;padding-left:4.5em;"> <?php if($myQuery->have_posts()): while($myQuery->have_posts()) : $myQuery->the_post(); ?> <li style="line-height:150%;"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ"><?php the_title(); ?></a></li> <?php endwhile; endif; ?> </ul>
スカッときれいに出てくれます。あとはcssで整えて、お知らせで使っているタームの一覧とアーカイブとツイッターを表示させました。
それから投稿タイプ別にアーカイブとシングルページも作っていたので、それぞれのサイドバーの読み込みの名前を直しました。
例:
<?php include('sidebar-news.php'); ?>
この記事一覧を出したかったのです。
カスタムメニューで作って表示させていたのですが、数が多くなるにつれて重くなるし、書いたらいちいちカスタムメニューに追加させないといけないしで、結構手間を感じていました。
これならすっきりです。
この記事へのコメントはありません。