Jun
05
2005
サイドメニューからカテゴリを選んで投稿が表示される時に、タイトルのリストで表示された方が見やすいんじゃないかなとちょっと前から思うようになり、でもこんなの今のテンプレートの機能を使ってcategory.phpだけタイトルのタグだけいれれば簡単だーと安易に考えていつでもできると先延ばしにしていました。
今日試しにやってみたところ、問題が発生しました。それは管理画面で表示投稿数を設定するのと同じ数しかリスト表示されないこと。例えば今だと1ページに5投稿表示する設定にしているのですが、カテゴリを選択すると5個しかタイトルがでてこないことになります。CodexのThe Loopのクエリーや、get_postsのページを見ながら色々やってみますが数は指定できてもカテゴリが全部表示されてしまったりとうまいこといかず。WPのサポートフォーラムで調べていたら、Display title and date only for categories and archivesというまさに同じことしたがっている人の投稿を見つけて、そこで答えていた人のサイトをみたらうまいこと私がやりたいようなことが出来ていました。もう一度フォーラムで今度は表示する投稿数をページ毎に変更する方法で検索しなおして、different number of postsを見つけCustom posts per pageというプラグインを見つけました。これはその名の通り、表示されるテンプレートによって表示される投稿の数を変更できるプラグインで、プラグインをテキストエディタで開いて数を変更できるようになってます。とりあえずhomeに表示されるのだけ今と同じ5に変更してプラグインフォルダに入れて有効化。そうしたらうまいこと表示されるようになりました。このプラグインではcategoryの数は999表示することになってます。大概の場合これ以上の数の投稿って1カテゴリでないだろうし、ここまで行ったら別に次のページにわけて表示してもいいですもんね。その場合はやっぱりページナビゲーションもテンプレートに入れないと次のページへいけませんよね。
とりあえずカテゴリを選ぶとタイトルだけ表示してタイトルを押すと各投稿へ飛ぶようになりました。スタイルは又おいおい設定していこうと思います。
やり方をまとめてみます。サイドメニューのカテゴリを選ぶとそのカテゴリ内の投稿がずらーっとでてくるのではなく、投稿のタイトルのリストを表示し、リストを押すと各投稿が表示されるためには:
- プラグインのCustom posts per pageを入れる。
- category.phpやarchive.phpを好きな項目だけ表示させるように編集する。
です。プラグインの導入方法は上にも書いたとおり、リンク先のページをテキストエディタにコピペして保存。私はperpage.phpという名前で保存しました。そして、$posts_perで始まる部分の数を[]内のページによって変更。あとはいつものようにプラグインフォルダに入れて管理画面で有効化するだけです。あくまでこのプラグインは、テンプレートによって表示される投稿数を変更するものであって、カテゴリ別にタイトルリストにするためのプラグインではありません。表示される投稿の数が、管理画面で設定した数しかでてこないので(今の私の場合だと5)、タイトルリストもこのままだと5行しか出てこないけれど、リストには全部のタイトルを表示したいのでこのプラグインを使っているだけです。タイトルリストを表示するだけならプラグインは必要なくて、テンプレートの編集(cagegory.php、archive.phpなど)をすればいいだけです。これはCodexのTemplate_Hierarchyに書いてあるように、読み込まれるテンプレートファイルが違ってくるからできることです。最低限必要なテンプレートファイルの他にもTheme_Developmentを見たら付け足せるテンプレートファイルがわかります。
今回はカテゴリを選ぶとWordPressが
- category-x.php(xはカテゴリのID)
- category.php
- archive.php
- index.php
の順番でテンプレートファイルを適応させていくことを利用しています。私の場合今は個々のカテゴリ毎にテンプレートを作っていないのでcategory-x.phpというファイルは存在しない為、category.phpが読み込まれています。単純なTHEMEの場合だとテンプレートのファイル数が少なくてindex.phpしかない場合もあります。その場合は新しく作っていけば大丈夫です。私もcategory.phpが無かったのでindex.phpをコピーしてループの箇所を編集しました。もし「このカテゴリだけはタイトルリストじゃなくて投稿をそのまま表示したい」って時はそのカテゴリIDのテンプレートを作成すればいいだけです。
今回のcategory.phpやarchive.phpの編集は、私はdeveloped trafficさんのWordPress Customization Notesを参考に
<ul> <?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>
<li id="catpost-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"> <?php the_title(); ?></a><br /><?php the_date(''); ?> at <?php the_time() ?></li>
<?php endforeach; else: ?> </ul>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
こんな感じにしました。まだCSSでスタイルをつけてないのでidやclassはまた付け足していこうと思います。リストの<ul></ul>を<ol></ol>に変更すると、題名の最初にふり番がふられます。
Trackback URI: http://www.hyperpup.com/main/archives/165/trackback/
8 Responses to “カテゴリを選ぶとタイトルリストに”
Trackbacks & Pingbacks
-
Trackback by [MM]MMRT daily life[MM]過去ログ簡単検索プロジェクト完結?
先日のpostの「KG Archives」に端を発し、火がついてしまったサイト弄り。(またかよぉ~) とりあえず、MMRT daily lifeが採用したのは、これだっ!
1) KG Archives プラグイン(リンク先の記事… -
Trackback by 読むカウンセリングカテゴリーの記事一覧を表示する
カテゴリーの記事一覧を表示させる方法が、hyperpup » カテゴリを選ぶとタイトルリストにに紹介されていましたので参考にさせて頂きました。
表示される日時の体裁を整える為には -
Trackback by こっからカテゴリー・月別アーカイブを一覧に…
カテゴリー・月別アーカイブはシンプルなリストの方が分かりやすいだろうと考えていました。
カスタマイズが分からなくて、なかなか実行に移せませんでした。
が、思い立って、実 (more…) -
[…] ほぼ、途方にくれていたところhyperpupさんで情報発見! hyperpupさんの情報をヒントにしながら、category.phpをいじってみました。 […]



一覧表示させるだけならcategory.phpの編集だけで出来るんですねぇ
すばらしい情報を有り難うございました。やっとできあがりました
yutaka
Tue, June 7, 2005 @ 16:46
よかったですぅ

>一覧表示させるだけならcategory.phpの編集だけで出来るんですねぇ
そうなんですよ、考えとしては普通のブログのテンプレートでタイトル以外を全部削除したらタイトルしか出てこないって感じですね。それをリストタグでくくってやればいいんです。でも投稿数の表示がネックになりましたが良いプラグインが見つかってよかったです
Mayu
Tue, June 7, 2005 @ 17:08
Customizable Post Listingsっていうのでも似たようなことが出来るみたいです。
それだとリストに記事の抜粋なども表示できたりするんだけども、設置が私にはちょっとややこしかったです
http://kogera.s7.xrea.com/2005/05/news_topic.php
↑これがCustomizable Post Listingsを使ってみた記事です。
今はエントリに無理矢理埋め込んでいます
Kaira
Thu, June 9, 2005 @ 12:40
Kairaさん、お帰りなさい
Kairaさんのサイトは綺麗にリストが出来てますね。
調べてみたらCoffee2codeさんのプラグインですね。1つのプラグインで色々できそうな感じですよね。でも確かに導入が難しそうです
Mayu
Thu, June 9, 2005 @ 13:51