特定カテゴリーをサイドバーで表示する方法
ホームページを作成するにあたっては、いくつかの段階があると思う。
- 既成のブログに投稿するレベル
- HTMLがいじれるレベル
- スタイルシートの設定ができるレベル
- PHPが組めるレベル
WordPressを使うことにより、ホームページの作成が相当楽になったが、それでも、細かいことをしようと思ったらやはり4のレベルまでなってないと難しい。
だが、あいにく私はまだ2~3のレベルであり、4も、今は実例を見ながら勉強中、といったところである。
WordPressを使っていて思ったのは、せっかくのウィジェットも、自動表示できるのは、カテゴリー、タグ、ページといった大元の組み分け自身だけであり、組み分けされた中の細かい部分、特定のカテゴリーだけタイトルを表示、といったことに対してはほとんど無力であり、もしそれを表示しようと思えば、自動表示をあきらめ、『テキスト』入力のときにHTMLを組まなければならず、まだまだ痒いところに手が届いてない、というのが現状であろう。
そこで、改めて、
『ウィジェット内で特定のカテゴリーのタイトルを表示』
ということをさせたいと思ったときに、ネットで調べてみても、どうもいい方法がなかった。
と、言うか、どれも「PHP」で組まれており、どこにどう配置してよいかわからないことばかりであった。
そして、ようやく調べに調べたところ、以下の組み合わせをすれば実現できることが確認できたので、自分自身の備忘録としての意味も込めて記録しておく。
まず、ウィジェットの『テキスト』では、「PHP」を組んでも無視されることがわかった。そこで、ウィジェット内でPHPを使えるというプラグインを探してみた。
プラグインの名称はこのような名前だが、管理コントロールパネルの「さらにプラグインを入手」を選んで自動インストールをするときは、「PHP Code Widget」という名前で探すことになる。
現在このメッセージはWordPress2.7.1で作成されているが、問題なく動いている。
とりあえずこれをインスト―ルして、使用できるようにすると、「利用できるウィジェット」の項目の中に、「PHP Code」というのが出てくるようになる。
一見すると『テキスト』と同じように見えるが、こちらは、中身を「PHP」で書いても実行してくれる、というもので、それをウィジェットとして配置場所を決めて設置する、というものである。
本ブログの右メニューで、それぞれ「一覧」となっているところはみんなそうである。
次に、挿入する中身である。
私は
query_postsで特定のカテゴリの記事を表示する[WordPressテンプレート作成#12]
このページの内容をそのまま使わせていただいた。(PAOLOGさんありがとうございます。)
<?php if ( have_posts() ) : query_posts('cat=1'); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>">
<?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
<?php endif; ?>
これをそのまま先ほどの「PHP Code」の中に入れればよい。また、タイトルは自由に付けることができる。
上記で「1」とある部分がカテゴリーIDのナンバーである。
ナンバーの調べ方は、投稿のカテゴリーから一覧を作成したり、カテゴリーの編集でURLが表示されている部分に『ID=いくつ』と表示されているので、それを使う。
表示される個数については、管理コントロールパネルの「設定」の中の「表示設定」で「1 ページに表示する投稿数 xx件」というところで設定した表示数が適用される。
これが実現すると、ブログへの投稿はできるがHTML等はわからない、というレベルの人に対してでも、投稿のカテゴリー分けでメニューの作成が自動でできるので、運用が非常に楽になる。
なぜWordPressで標準機能にしなかったのかが不思議なくらいの機能だと思うが、これでWordPresの運用方法は完璧に近くなった。
