サポート » 使い方全般 » パンくずに固定ページを特定のカテゴリーの上の層に表示する方法

  • 解決済 lililehua

    (@lililehua)


    いつもお世話になります。
    タイトルにある通り、パンくずに固定ページを特定のカテゴリーの上の層に表示する方法を探しています。

    やりたいこととしては、複数のカテゴリーの上に、カテゴリーでなく固定ページを親として設定することはできないと思うので、せめてユーザには見た目そのように見えるように、グローバルメニューでこの固定ページの下にこれらのカテゴリーを入れることにしました。

    問題はこれらのカテゴリー内にいる時に表示されるパンくずでは、これらカテゴリーの親はHomeなので、間に入っていると見せたい固定ページの情報(とリンク)は表示されません。

    要はAというカテゴリの一覧ページにいる際に、Home>固定ページ名>カテゴリーAというふうに現在地点が固定ページの下に出るようにしたいと思っています。

    色々と検索してみた結果、この解決済フォーラムの方の質問と同じだと思うのですが、それなりに頑張ったのですが、初心者なため、自分のパンくずにうまく取り入れられませんでした。
    どなたか表記の仕方をご教示頂けませんでしょうか。

    今現在のパンくずの関連すると思われる抜粋部分は下記となります。
    何卒よろしくお願い致します。

    function breadcrumb($divOption = array(“id” => “breadcrumb”, “class” => “clearfix”)){
    global $post;
    $str =”;
    if(!is_home()&&!is_admin()){
    /* !is_admin は管理ページ以外という条件分岐 */
    $tagAttribute = ”;
    foreach($divOption as $attrName => $attrValue){
    $tagAttribute .= sprintf(‘ %s=”%s”‘, $attrName, $attrValue);
    }
    $str.= ‘<div’. $tagAttribute .’>’;
    $str.= ‘

      ‘;
      $str.= ‘

    • Home
    • ‘;
      $str.= ‘

    • >
    • ‘;

    if(is_category()) {
    //カテゴリーのアーカイブページ
    $cat = get_queried_object();
    if($cat -> parent != 0){
    $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, ‘category’ ));
    foreach($ancestors as $ancestor){
    $str.=’

    • ‘. get_cat_name($ancestor) .’
    • ‘;
      $str.=’

    • >
    • ‘;
      }
      }
      $str.=’

    • ‘. $cat -> name . ‘
    • ‘;
      } elseif(is_single()){
      //ブログの個別記事ページ
      $categories = get_the_category($post->ID);
      $cat = $categories[0];
      if($cat -> parent != 0){
      $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, ‘category’ ));
      foreach($ancestors as $ancestor){
      $str.=’

    • ‘. get_cat_name($ancestor). ‘
    • ‘;
      $str.=’

    • >
    • ‘;
      }
      }
      $str.=’

    • term_id). ‘”>’. $cat-> cat_name . ‘
    • ‘;
      $str.=’

    • >
    • ‘;
      $str.= ‘

    • ‘. $post -> post_title .’
    • ‘;
      } elseif(is_page()){

      ~この後は省略~

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック投稿者 lililehua

    (@lililehua)

    追記:
    すみません。いったんWordに移しコピペしたのですが、なぜか一部とても読みにくくなってしましました。

    解決方法とは関係ない余談で申し訳ないのですが、一部とても読みにくくなっていることについて、参考情報を書きます。

    • WordPress関連のコードを扱う時、Wordを使うのは避けた方が無難です。こちらに参考情報があります。
    • コピペしたいコードをWordPress関連のコードを扱うのに適したテキストエディターに移しフォーラムの投稿フォームにコピペしてから、コピペした部分を選択し、フォーム本文入力欄の上にあるcodeボタンを押し(押すと、バッククオート文字みたいな感じの引用符で選択部分が囲まれます)、そのあとで投稿ボタンを押すと、読みやすくなることが多いです。
    • 本文に長いコードを含める場合の表記方法の指針がこちらの投稿の最後の方に書かれていますので、長めのコードをコピペする時は参考にしてみてください(この指針については、私も今日初めて知ったのですが)。
    トピック投稿者 lililehua

    (@lililehua)

    tg29359様、

    前回に続き、度重なるご指導ありがとうございます!
    なるほどそういうことですね。
    さっそくテキストエディタを一つダウンロードしてみました。
    どこで見ても皆さんがきちんと入れていらっしゃるコードがどのようにしてできるのか不思議に思っていました。実は今回投稿時にCodeボタンというものを見て押してみたのですが、テスト投稿後に削除できそうにないので、閉じてしまってました。

    早速、ちょっと見てみてから、せっかくなのでこの投稿のコードをここで練習がてらに入れてみますね。
    再度ご親切なアドバイスありがとうございました。
    今後ともよろしくお願いします!

    トピック投稿者 lililehua

    (@lililehua)

    すみません。
    こちら該当カテゴリのみマニュアルのパンくずで十分なのでクローズさせて頂きますが、その前にせっかくですので、ここでフォーラム投稿のテストをさせて頂ければと思います。
    下記、この投稿の問題とは全く無関係ですので、内容は無視して頂ければ幸いです<m(__)m>

    ここよりテストスタート
    <script src=”//pastebin.com/embed_js/7Zi08bZW”></script>

    <?php if(!is_category() && is_archive() || is_search()): //非カテゴリでかつアーカイブまたは検索結果なら ?>
    	<?php if(in_category('miss-aloha-hula') ) ://さらに結果にMAHカテゴリの投稿が含まれていたら ?>
    	<?php breadcrumb(); ?>
    	<?php endif; ?>
    <?php endif; ?>

    テスト終了

    トピック投稿者 lililehua

    (@lililehua)

    テスト2

    こちら

    トピック投稿者 lililehua

    (@lililehua)

    お世話になっております。
    解決済みではありませんが、トピックを閉じさせて頂きたいのですが、Googleサーチ等での検索結果に解決済みとして表示されるとそれはそれで問題なのではと思い、「質問の閉じ方」等で検索しましたが、解決済みにする以外、閉じる方法がわからなかったので、解決済みとして閉じさせて頂きます。
    その他にもし良い処理方法があり、さらにいったん閉じた後も変更可能であれば、ご教示いただければ幸いです。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「パンくずに固定ページを特定のカテゴリーの上の層に表示する方法」には新たに返信することはできません。