サポート » テーマ » カテゴリを複数選択したアーカイブでの現表示カテゴリ表示

  • 解決済 kenkenzosasaki

    (@kenkenzosasaki)


    カテゴリを複数選択したアーカイブ画面を用意し、簡易な絞込み検索画面を用意しようとしています。
    具体的には、カテゴリアーカイブ画面に ?cat=1 などのリンクを用意し選択させ、

    http://domain.com/archives/category/hogehoge?cat=1

    として指定複数カテゴリ(この場合、hogehoge と カテゴリIDが1)のアーカイブを表示します。

    そこで、表示画面のタイトルなどで、どれどれのカテゴリを選んでいると表示したいのですが、
    get_the_category(); や get_query_var(‘cat’); や single_tag_title(); ではひとつしか表示してくれません。

    何かさっくり、表示中の複数カテゴリ名の文字を全て取得し表示できる方法はあるでしょうか?

    ※それともURLを用いた複数カテゴリアーカイブの表示は手法としてよくないでしょうか?

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • うまく内容をくみ取ってはいないのですが、

    https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_the_category

    こちらの、用例の「全てのカテゴリーをリンクで表示」を利用すればできるのではないでしょうか。
    とりあえず、記事一覧で記事ごとのカテゴリーは表示できました。

    トピック投稿者 kenkenzosasaki

    (@kenkenzosasaki)

    ありがとうございます。
    今回の場合、アーカイブ画面でのタイトルに選択中のカテゴリを表示したいという目的なので、提示頂いたものは向かないようです。現在試作で使用しているcategory.phpで少し試してみましたが思い通りには持って行けませんでした。
    説明もわかりにくく、申し訳ないです。

    例えば、「ラーメン」のカテゴリアーカイブ画面で、地区で絞り込むで「北区(catidが11)」のリンク(href=”?cat=11″)を選んだら
    http://domain.com/archives/category/ramen?cat=11
    のURLになる。その画面のタイトルに「ラーメン 北区」と大きく表示してあげたい、という感じです。

    「ラーメン 北区」を取得する簡単な例が見つかればいいのですが。
    現在表示しているURLの文字列から該当カテゴリ文字を抜き出すという方法も考えたのですが、PHPが素人すぎてコードを組み立てられませんでした。

    なるほど。
    現状、カテゴリアーカイブ画面で、地区で絞り込むまでできていて、
    タイトル表示に困っているということですかね。

    絞り込むのにgetなりpostなりでカテゴリー名を渡しているのなら
    そのままつけられないものですかね。

    わたしも素人なのであまりお役に立てません。

    トピック投稿者 kenkenzosasaki

    (@kenkenzosasaki)

    こちらこそありがとうございます。

    実際に複数(and)のカテゴリーに該当するアーカイブをwordpressが吐き出してるんだから、同時に、その時wordpressが要求されたカテゴリ名も吐き出してもらう方法がありそうだなぁと思っていたんですが、安易だったのかも知れません。
    検索してもなかなか実例が見当たらなかったので。
    カテゴリの絞込み(and検索)的なものの実現にURLリンクを選ばせるという方法は、私のようなレベルではいろいろ使い勝手が悪いのかも、と思い始めています。

    視野は広げるべきだと思う。
    もう少し無駄にwordpressについて検索して知識を増やすべきだと思う。
    wordpressのカテゴリーの機能的に見て、ラーメンと北区は同列かもしれないが、
    それ以外の場合、果たしてラーメンと北区は同列なんでしょうかね。
    ラーメンは食品だし、北区は地域だし。
    スレ主の記事の主題が、ラーメンならこれをカテゴリーとして置いておいて、
    カスタム分類:地域に北区を作れば、
    siteurl/?cat=ラーメン&地域=北区
    でcategory.php呼び出した時に、カスタム分類:地域の値を取得して、
    タイトルに加えるとかすればいいのではないかと。「ない場合」もコードには必要かもしれませんが。

    コピペ職人なんでコードはかけないけど。

    トピック投稿者 kenkenzosasaki

    (@kenkenzosasaki)

    なるほど、時間をなんとか作ってカスタム分類も使ったアーカイブ表示の絞込みを試作してみたいです。
    ちょっと検索したら選択カスタム分類名の表示は自分でも出来そうな感じがするので。
    (自分も所詮コピペ職人レベルです)

    今は、カテゴリーの持ち方は例えば
    種類(親) – ラーメン 和食 イタリアン フレンチ ファーストフード
    地区(親) – 北区 南区 西区 東区
    名前(親) – あ行 か行 さ行 …
    な感じで、その中でカテゴリーを複数指定させようと考えていました。
    get_the_category だと、選んだものに関わらず先端のエントリーの所属カテゴリーを全部表示するようだし、
    get_query_var(‘cat’) のほうか確実に合うものを出してくれるけどひとつしか出ない。

    どうも望むものを出してくれる便利なものはなさそうなので、時間切れになる前に、カスタム分類も絡めたものについても調べてみようと思います。

    正確かどうかは責任持たないけど、
    クエリー文字列、/?cat=とか/?s=とか(wordpress パラメータあたりで検索すると一覧もあるような)をphpのスーパーグローバル変数に連想配列格納して使うので、cat=1とcat=2の区別がつかないとかなんとか。
    array('cat'=>'1','cat'=>'2')
    だとして[cat]には1か2かどちらが入っているでしょうということなんかなと。
    ちなみに最初のクエリー文字列のパラメータによって、呼び出されるテンプレートが選択される。
    /?cat=ならcategory.phpとかね。その後、その後ろのパラメータを取得して、
    WP_Queryとか使って記事を取得するとかなんとかだと思う。
    自分でも悪文だなーと思う。ごめんね。

    トピック投稿者 kenkenzosasaki

    (@kenkenzosasaki)

    興味深いですね。cat=1とcat=2の区別がつかないからにはすんなり出すのも難しいということでしょうか。
    自分にはご指摘の内容を裏付けられる術も時間もないけど、やはり今回の手法は一旦諦めたほうがいい気がしますね。

    テンプレート選択の話は調べたことがなかったのでかなり参考になりました。別の絞込み表示の流れを考える時に、リンクURLで考慮して仕様を決めることにします。
    ありがとうございます。時間があればもっとちゃんと調べたいなぁ。

    正解提示できればいいんですが、なんせコピペだけなもんで。
    ご健闘をお祈りします。

    トピック投稿者 kenkenzosasaki

    (@kenkenzosasaki)

    うまいことオチが付けられず申し訳ないですが、今回のこのトピックは絞めたいと思います。
    どんな代替法でカテゴリー絞込みを実現するかも現在作業中でまだまだ日数がかかりそうなためご紹介できませんが、恐らくカテゴリーとタグの併用とか特定キーワードとかそのあたりで、簡単なリンク選択で絞込みをサクサク表示してあげようと思います。
    情報頂いた皆様、本当にありがとうございました。
    方針検討にあたって参考になりました。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「カテゴリを複数選択したアーカイブでの現表示カテゴリ表示」には新たに返信することはできません。