サポート » テーマ » カテゴリーアーカイブについて。記事を古いものから表示したい。各カテ

  • 解決済 oira

    (@oira)


     はじめまして。自作のテーマを作っています。
     カテゴリーアーカイブについて2件質問させてください。

     一つ目です。
     カテゴリーアーカイブを開いたとき、新しい記事から順にではなく、古い記事から順に表示したい場合があるのですが、なにかやりかたはあるでしょうか。

     二つ目です。
     各カテゴリーアーカイブごとに表示を変えたい、具体的に言うと先頭の記事の前にそれぞれ別の文章を置きたいと思っています。
     category-[catID].php を複数用意するというので良さそうな気がしましたが、加える文章以外は同じでかまわないのに、まったく同じコードをたくさんコピーすることになります。大した長さのコードではないので、「そういうものならそれでいいや」という気もしていますが、もっとすっきりしたやり方はあるのでしょうか。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    oiraさん、こんにちは。

    カテゴリーアーカイブを開いたとき、新しい記事から順にではなく、古い記事から順に表示したい場合があるのですが、なにかやりかたはあるでしょうか。

    <?php query_posts('order=asc&cat=' . $cat ); ?>

    で再度昇順に取得する感じでしょうか。日月アーカイブなどテンプレートを共用する場合は、条件分岐をさせるのを忘れずに。

    二つ目です。
    各カテゴリーアーカイブごとに表示を変えたい、具体的に言うと先頭の記事の前にそれぞれ別の文章を置きたいと思っています。

    記事のループ開始前に

    <?php echo category_description(); ?>

    として、カテゴリーの説明文を表示させてみてはいかがでしょうか。

    トピック投稿者 oira

    (@oira)

     ご回答ありがとうございます。

     一つ目です。
     カテゴリーアーカイブを開いたとき、新しい記事から順にではなく、古い記事から順に表示したい場合があるのですが、なにかやりかたはあるでしょうか。

    <?php query_posts(‘order=asc&cat=’ . $cat ); ?>

     こちらのほうはこれで解決しました。
     ありがとうございました。

     二つ目です。
     各カテゴリーアーカイブごとに表示を変えたい、具体的に言うと先頭の記事の前にそれぞれ別の文章を置きたいと思っています。

    カテゴリーの説明文を表示させてみてはいかがでしょうか。

     こちらもこれで可能なようです。
     ただいくつか疑問が出ましたので……。
     一つ目ですが、このカテゴリーの説明文というのは、長さに制限があったりしないのでしょうか。長めのものを登録して試してみまして、大丈夫そうな感じはありますが……。
     二つ目ですが、この説明文が、管理画面のカテゴリーページでは全部表示されてしまうので、長いものを登録すると管理画面が縦長になってしまいます。どこか設定などで最初のほうだけを表示するように変更できればいいのですが。

     あと、必要なかったかもしれませんが、自分で調べて、get_the_category() というテンプレートタグを使ってカテゴリーのIDなどを取得すれば、カテゴリーごとに表示を切り替えられるのではないかと思いました。ためしにカテゴリーアーカイブのページでカテゴリーのIDや名前などを表示させてみたのですが、そのカテゴリーアーカイブのカテゴリーとは別のカテゴリーのデータが出てくる場合があります(見た限りでは、記事が存在するもっとも数の小さいIDのカテゴリーのデータが出ている感じです)。このテンプレートタグはカテゴリーアーカイブで使うものではないのでしょうか。

    モデレーター jim912

    (@jim912)

    oiraさん、こんばんは。

    一つ目ですが、このカテゴリーの説明文というのは、長さに制限があったりしないのでしょうか。長めのものを登録して試してみまして、大丈夫そうな感じはありますが……。

    WordPressでは制限していませんが、phpのメモリやDBの設定サイズによる制限はあります。実用的にはなしと考えてよいかと思います。

    二つ目ですが、この説明文が、管理画面のカテゴリーページでは全部表示されてしまうので、長いものを登録すると管理画面が縦長になってしまいます。どこか設定などで最初のほうだけを表示するように変更できればいいのですが。

    設定では残念ながら出来ません。cssで行の最大高を設定して、それ以上は表示しないようにするか、本体ファイルを修正して文字を切りつめることなら可能です。

    get_the_category() というテンプレートタグを使ってカテゴリーのIDなどを取得すれば、カテゴリーごとに表示を切り替えられるのではないかと思いました。

    get_the_category() は、記事が属するカテゴリーの情報を得るためのテンプレートタグです。具体的には、記事ループの中で、記事が属するカテゴリーを出力する際、内部的な関数として使われています。(記事ループの前に書けば、最初の記事のカテゴリーを取得しますし、ループ後なら最後の記事のカテゴリーになるはずです。)

    なお、カテゴリー毎に表示を変更するのであれば、カテゴリーアーカイブを表示している場合、$catという変数にカテゴリーのIDが代入されていますので、それで分岐させるのが手っ取り早いです。

    トピック投稿者 oira

    (@oira)

     ありがとうございました。
     すべてすっきりしました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カテゴリーアーカイブについて。記事を古いものから表示したい。各カテ」には新たに返信することはできません。