サポート » 使い方全般 » 子カテゴリ別に記事を表示

  • カテゴリーページで、親カテゴリに属する子カテゴリの記事一覧を、子カテゴリ別に分けて表示できるようにしたいのですが、IDを直接指定して分ける方法しか分からなくて・・
    自動で子カテゴリ別に分けて表示する方法はあるでしょうか?

    できれば、プラグイン使用以外で・・・宜しくお願いいたします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • IDを直接指定して分ける方法

    ってどうしてるのですか?

    テンプレートタグだけでは解決できそうにないのでPHPプログラムを書く必要があるかと。

    コードの例示は出来ませんがアイデアとして、
    get_the_categoryでカテゴリーリストを取得してカテゴリごとにquery_postsする。
    で出来そうです。

    SQLを使ってもっとスマートにもできそうな感じもしますが・・・
    すみません、答えになってないですよね。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    念のため、やりたいこと確認させてください。

    例えば、カテゴリーが以下の構成とします。

    コンピューター
    ├ Mac
    ├ Windows
    └ Linux

    そして、Windows カテゴリーを指定したとき、Mac カテゴリーおよび Linux カテゴリーの記事一覧も見せたいということですよね? つまりは「兄弟姉妹カテゴリーの記事を見せたい」ということでしょうか??

    この場合、現在のカテゴリーの親を get_category_parents() で取得して、そこから get_category_children() で子カテゴリーを取ってくれば、兄弟姉妹カテゴリーが分かります。あとは、taikiken のおっしゃる通り、query_posts() なり、get_posts() なりで記事一覧を取ってくればいいです。

    テンプレートタグを書いたことがなければちょっと難しいですが、フォーラムには「特定カテゴリーの記事リストを別途表示する」課題は何回も出ていますので、サンプルコードを探してみてください。

    トピック投稿者 mmedo78

    (@mmedo78)

    すみません。説明不足だったようです。。

    例えば、

    コンピューター
    ├ Mac
    ├ Windows
    └ Linux

    の場合、コンピュータ(親カテゴリ)のカテゴリーページで、Mac、Windows、Linux(子カテゴリ)に投稿された記事一覧をそれぞれ、Mac、Windows、Linuxに分けて表示させたいのです。

    IDを直接指定して分ける方法(カテゴリーページ内)
    
    <ul>
    <?php if (have_posts()) : query_posts(’posts_per_page=5&cat=ID’); ?>
    <?php while (have_posts()) : the_post(); ?>
      表示させる内容
    <?php endwhile; endif; ?>
    </ul>

    上記の方法で、表示したい子カテゴリIDを指定し記事一覧を分けて表示させることが可能ですが、子カテゴリの追加毎に指定をしていかなければならないので、自動で書き出してくれる方法がないか悩んでいます。

    フォーラムでもこれらに関する記事を探してみたのですが見あたらなかったので・・

    lilyfanさんのおしゃっるようにget_category_children()を利用して、自動で子カテゴリー別に記事一覧をループさせる方法があるのでしょうか・・?
    phpは初心者なもので、いろいろ探しながら頑張ってみます。

    もし、関数の指定方法があればご教授ください。
    宜しくお願いいたします。

    コードの例示ありがとうございます。

    get_category_children()を利用して、自動で子カテゴリー別に記事一覧をループさせる方法があるのでしょうか・・?

    残念ながら自動にはならないです、子カテゴリIDを取得できるだけです。
    取得できたIDの数分ilyfanさんのいうようにquery_posts、get_postsを実行すると良いです。

    余談ですが、get_category_childrenというのが使えるのですね。
    Codexにも記載がないし、こういう関数リファレンスはどこで見てるのですか、lilyfanさんは良ければ教えてください。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    Codexにも記載がないし、こういう関数リファレンスはどこで見てるのですか、lilyfanさんは良ければ教えてください。

    Codex はどうも更新が遅いので、いつも WordPress コアのソースを見ています。テンプレートタグはたいてい wp-includes/*-template.php に入っています。カテゴリー関連の基礎的な関数ならば category.php 自体に入っていることもあります。

    ただし、wp-includes/ 配下にある関数すべてが公開された API なのかどうか不明なので、プラグインやテーマで使っていいかは悩ましいところです。これが PHP5 を前提としてコードになっていれば、public 宣言されているものは使える、private なら無理と明確なんですが。そのへんは、コードを見て「内部関数っぽい」と思ったらやめておくとかの柔軟な判断が必要です。

    WordPress コアのソースを見ています

    すみません、わざわざありがとうございます。

    2年前の投稿に返信させて頂いてよろしいでしょうか?

    今、同じ状況で悩んでおります。
    こちらは解決方法ありましたでしょうか?

    2年たったのでもしかしたら、方法があるのかと思いまして・・・

    よろしくお願いします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「子カテゴリ別に記事を表示」には新たに返信することはできません。