パンくずリストでカテゴリが表示されない

フォーラム 使い方全般 パンくずリストでカテゴリが表示されない

  • このトピックには2件の返信、2人の参加者があり、最後にsebastianにより8年、 10ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #74506
    sebastian
    参加者

    ——————————————-
    WordPress のバージョン:4.2.2
    Welcart のバージョン:1.4.15.1505012
    ご利用のテーマ:blanc(カスタム)
    症状を確認したブラウザ:Safari, FireFox
    サーバー(会社名、サービス名):エックスサーバー
    SSLの利用:あり
    WordPress のパーマリンク設定:/%post_id%
    ——————————————–

    ややこしい話ですが解決出来なかったので相談させてください。

    現在1つの商品に対し、商品用とブログ用に2つのカテゴリを使用していました。
    商品用:itembanana
    ブログ用:banana

    サイトリニューアルにあたり、ブログ用のカテゴリスラッグを商品用に使いURLをすっきりさせようと、スラッグを変更する事にしました。
    商品用:banana
    ブログ用:banana-blog

    ここまでは良かったのですが、気がついたらパンくずリストから「banana」カテゴリとその子カテゴリが表示されていませんでした。

    そこで、blankテーマのパンくずリストを変更し色んなパターンを試したのですがどれも「banana」以下のカテゴリが表示されません。
    (試したパンくずリストの1例:http://webdesignrecipes.com/wordpress-breadcrumb-list-tips/)

    他に試した事は、商品用の「banana」カテゴリスラッグを別のものに変更し、新規カテゴリにカテゴリスラッグ「banana」を割り当てましたが結果は変わらず。

    データベースで term_id がおかしくなっているのかと思いましたがIDとスラッグはちゃんと紐付け出来ていました。

    私の知識ではお手上げ状態です…。同じ症状の方がいらっしゃるとは思えませんが何か解決に向けてヒントを頂ければ幸いです。

    #74539
    nanbu
    キーマスター

    こんにちは。

    パンクズの取得方法が悪いために起こる症状かと思います。
    多くのパンくずプラグインは、get_the_terms()やget_the_category() 関数を使ってカテゴリーを取得し、取得できた複数のカテゴリーから先頭の一つを取って、それをターゲット(最下層のカテゴリ)として先祖を割り出していますが、この方法は誤りです。
    なぜならば、get_the_terms() 関数は、カテゴリ名でソートして結果を返します。その先頭を最下層のカテゴリとして割り当てるのはおかしいのです。

    正確には、ターゲット(最下層のカテゴリ)を割り出すためのロジックが必要になります。また、ツリー構造が2つ以上に分かれてしまっているような場合は、どちらをパンクズとして採用するかといったオプション設定も必要になってくるでしょう。

    弊社では、プライム・ストラテジーさんの WP SiteManager を利用させていただいておりますが、それに上記のパッチをあてて、思い通りのパンクズを表示させることができています。
    コードがちょっと複雑なのでここではお見せできませんが、プラグインとして公開できるようでしたらご提供したいと思います。

    ※ この症状は、シングルページ (固定ページ、個別投稿ページ、添付ファイルページ)にみられるものです。

    #74560
    sebastian
    参加者

    nanbu様

    回答ありがとうございます。
    原因がわかり助かりました。
    アドバイスを元に調べてみます。
    (プラグインで公開されたら助かります)

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。