サポート » 使い方全般 » category.phpで2つのカテゴリに属する投稿を表示させたい(カテゴリの一つは

  • いつも稚拙な質問ですいません。

    category.phpを作っているのですが色々調べて方法を考えましたが実装できずに悩んでいます。

    http://fukudon.com/multi-taxonomy/

    上記URLの記事をベースにカスタマイズしているのですがどうも上手く動作しません。

    ①都道府県カテゴリ48個
    ②カテゴリA
    ③カテゴリB

    ※カテゴリAもカテゴリBも都道府県カテゴリに属しています

    カテゴリAの都道府県一覧からアクセスし
    ①と②に属する記事を、表示都道府県カテゴリから取得して表示したいです。

    変数を使って一つのcategory.phpで処理する事を目指していますがで出来るのかも分からないので不可能であれば48個分のカテゴリページを作ろうと思います。

    https://ja.forums.wordpress.org/topic/1708?replies=3
    https://ja.forums.wordpress.org/topic/12378?replies=2
    https://ja.forums.wordpress.org/topic/21231?replies=2

    リンク時のURLは自分で貼るので手間が増えても問題ありません。

    言葉が乏しく正しく伝えられているかわかりません。
    勉強不足で変数も良くわからない為、困っています。
    ご教授頂ければ幸いです。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • ちょっと記事は古いのですが
    http://qiita.com/tsujimomo/items/e540e200a2f007e4e521
    あたりを参考に、複数カテゴリをAND検索して取得したらよいかなと思います。

    カテゴリーIDの取得方法は、get_cat_ID が使えるかなーと思います。

    トピック投稿者 velfarre000

    (@velfarre000)

    ありがとうございます。
    なんとなく見えてきました。

    https://ja.forums.wordpress.org/topic/21231?replies=2

    この記事を参考に

    <?php
    query_posts( array( 'category__and' => array( $test, $test2 ),'orderby' => 'rand', ) );
    ?>
    <?php
    //query_posts用の配列を作成
    $list = array(
        'post_type' => array('post'),//投稿タイプを
        'showposts' => -1,//表示件数
        'terms'=>array( $test, $test2 ),//スラッグ
    );
    ?>
    <?php query_posts($list); ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    と書いてみたのですが何が悪いか分かりません。出来れば詳しく教えていただけると助かります。よろしくお願いいたします。

    ①都道府県カテゴリ48個
    ②カテゴリA
    ③カテゴリB

    ※カテゴリAもカテゴリBも都道府県カテゴリに属しています

    実現したいことがちょっと分からないので、先に教えてください。

    ・なぜ都道府県カテゴリが47でなくて48個あるのでしょうか?
    ・カテゴリAおよびカテゴリBは都道府県のひとつなのでしょうか?
    ・たとえば東京都カテゴリ一覧ページを表示する際にはどのカテゴリの記事を含めたいのでしょうか?

    おおー 都道府県は確かに47ですね。。。もしかして全都道府県という意味で1つ追加されているとか。

    コードをみましたが、query_posts を二度呼ばれていています。
    前者はそういう感じの記述ですが、後者はOR検索になってしまいますよ〜。
    http://elearn.jp/wpman/column/c20110906_01.html
    をご覧あれ。

    つまりは片方は不要です。また出来ないとはどのような結果が出てしまうのでしょうか。
    さらにですが、$test と $test2 には何が入っているでしょうか。ここに意図したデータが入っていないと検索できないですし。

    トピック投稿者 velfarre000

    (@velfarre000)

    説明不足ですいません。

    おっしゃる通り「47の各都道府県」と「各都道府県」というカテゴリを合わせて48としています。
    カテゴリA(フットサルコート)とカテゴリB(フットサル体育館)となっていて都道府県とは別のカテゴリとして存在しています。

    今回はカテゴリA、カテゴリBそれぞれのカテゴリーページを制作し
    各都道府県のカテゴリAを表示できるようにしたいということです。
    (例:東京都のフットサル体育館を表示する)
    (例2:北海道のフットサルコートを表示する)

    カテゴリAとカテゴリBで別のカテゴリページを使用してそれぞれの地域にある体育館とコートを表示できるようにしたいという事です。

    体育館ページでは各都道府県のリンクがあり、そこから
    用意したcategory-court.php と category-gym.phpにそれぞれアクセスし、アクセスした都道府県カテゴリに該当する地域のコートや体育館を表示したいです。

    48個目の「都道府県」というカテゴリは別の使用用途があるので制作しています。
    今回の件では使う必要は無いかなと考えていました。

    よく分かりました。ありがとうございます。
    最適な方法かは分からないですが、私なら以下のようにするかなというところを書いておきます。

    カテゴリAおよびカテゴリBは都道府県とは別の文脈になりますので、別途カスタム分類を作成します。例えば、facilityタクソノミーを作成して、そのタームとしてgymとcourtを登録します。
    こちらはtaxonomy.phpとかで都道府県カテゴリへのリンク一覧を作ります。リンク先にGETとかでタームを都道府県カテゴリページに送ります。ex. <a href="/category/tokyo/?facility=gym">

    都道府県カテゴリページはcategory.phpで、GETで送られてきたfacilityをquery_postなりWP_Queryなりのタクソノミーパラメータにセットして該当する施設のみを表示する。

    http://wpdocs.osdn.jp/テンプレート階層#.E3.82.AB.E3.82.B9.E3.82.BF.E3.83.A0.E5.88.86.E9.A1.9E.E8.A1.A8.E7.A4.BA

    http://wpdocs.osdn.jp/関数リファレンス/WP_Query#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.81.AE.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF

    本来ならカスタム投稿を使う事例かと。
    カスタム投稿 フットサルができる場所
    カスタム分類 都道府県
    カスタム分類 形態

    site_url/?都道府県=東京&形態=体育館
    呼びだされたテンプレートで形態=体育館or屋外で絞込。

    カスタム分類に伴うカスタマイズは必要かもしれませんが。

    トピック投稿者 velfarre000

    (@velfarre000)

    みなさんありがとうございます。
    時間が掛かりましたが色々考えて下記のような形へ修正を行おうかと検討しています。

    ・カスタム投稿タイプで「コート」と「体育館」
    ・カテゴリで格都道府県
    ・カスタム投稿タイプのカテゴリで各地域一覧を出力

    と考えているのですが上記の様な事は可能なのでしょうか?
    この場合はアドバイス頂いた通り、各都道府県へのリンクを作りそこにパラメータをセットするのが一般的なやり方なのでしょうか??

    投稿を2つに分ける意味があるのかな。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「category.phpで2つのカテゴリに属する投稿を表示させたい(カテゴリの一つは」には新たに返信することはできません。