• はじめまして。

    親カテゴリーと子カテゴリーでデザインを変えたいのですが、ウマくできず・・・。
    お力を貸してくださーい><

    今、試しているのは、親カテゴリーと子カテゴリーを判定して、
    親の場合は「cat-oya.php」を読み込む。
    子の場合は「cat-ko.php」を読み込むようにと下記を試していますが
    ウマく表示してくれません・・・。

    <?php
    $cats = get_the_category();
    $cat = $cats[0];
    if($cat->parent){
    $parent = get_category($cat->parent);
    get_template_part(‘cat-ko’);
    }else{
    get_template_part(‘cat-oya’);
    }
    ?>

    何卒よろしくお願いいたします。m(_ _)m

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • 関数リファレンス/get template part
    get_template_partの引数の書き方が違ってるんじゃないですか。

    まずコーデックスで検索してみてはどうでしょう。

    トピック投稿者 yuuuuka

    (@yuuuuka)

    oisit様 はじめまして。

    アドバイスありがとうございます。

    コーデックスを再度、調べたのですが
    get_template_partの引数の書き方は間違っていないような・・・

    今は、なぜか
    子カテゴリーの1番目のみ「cat-ko.php」が読み込まれるのですが、
    子カテゴリーの2番め以降「cat-oya.php」が読み込まれてしまいます。

    説明

    テンプレートパーツ(ヘッダー、サイドバー、フッターを除きます)をテンプレートへ読み込みます。これにより、テーマがコードのセクションを再利用すること、また子テーマが親テーマのセクションを置き換えることが容易になります。

    テーマの $slug で指定したテンプレートパーツをインクルードします。$name が指定された場合は、そのパーツの個別版をインクルードします。テーマに {$slug}.php ファイルがなければ何もインクルードしません。

    $name パラメータの値は、例えばファイル “{slug}-special.php” をインクルードしたければ “special” にします。

    catがslugでoyaまたはkoがnameってことじゃないでしょうかね。

    使い方

    <?php get_template_part( $slug ); ?>

    <?php get_template_part( $slug, $name ); ?>

    それでも動かないなら他の部分なんでしょう。
    その場合、申し訳ないが自分にはよくわかりません。

    トピック投稿者 yuuuuka

    (@yuuuuka)

    oisit様

    ご回答ありがとうございます。

    <?php get_template_part( $slug, $name ); ?>
    この場合、カテゴリー毎のテンプレートパーツが必要になってしまいますので
    category.phpで、親カテゴリーと子カテゴリーの表示を変更したいと思っているのですが・・・。

    category.phpに最初のコードが書いてあると思ったんですが。
    get_template_partはincludeの代わりに使うようですよ。

    トピック投稿者 yuuuuka

    (@yuuuuka)

    oisit様

    いろいろとご回答いただきありがとうございます。

    get_template_partの箇所をいろいろと試してはいますが、
    思うどおりに表示されないです・・・。

    どうも親カテゴリーと、子カテゴリーの判別がウマくできていないようです・・。

    では親カテゴリーと子カテゴリーの判別で検索するといいかもしれませんね。
    コーデックスの条件分岐タグis_categoryin_categoryとかも見られると良いと思います。
    それとget_template_partはファイルを挿入に当たるので、
    読み込まれるファイルに書いてない部分はoya、koは共通になりますよ。
    おちからになれずすいません

    category.phpで$cats = get_the_category();とするのがおかしくないですかね?
    $catsの中身は期待通りですか?

    こんな感じだとどうでしょうか。

    <?php 
      $catInfo = get_queried_object();
      $catParent = $catInfo -> category_parent;
      if ( 0 < $catParent ){
        get_template_part(‘cat-ko’);
      } else {
        get_template_part(‘cat-oya’);
      }
    ?>
    oisit

    (@oisit)

    親のカテゴリーに関して、数が決まってるなら、is_category(親のカテゴリーID(複数の場合の書き方はコーデックス参照))にすればいいとは思います。

    category.phpを呼び出して、

    if (is_category(ID)){
        get_template_part(‘cat','oya’);
    }else{
        get_template_part(‘cat','ko’);
    }

    とかじゃないですか。

    挿入するファイルcat-oya.phpとcat-ko.phpを用意する。
    ハイフンがある場合、前と後をそれぞれ第1引数、第2引数とする。

    それとget_template_partは指定されたファイルの内容を元のファイルに読み込むだけなので、
    category.phpの代わりにcat-oya.phpやcat-ko.phpが呼び出されるわけじゃない。

    • この返信は8年前にoisitが編集しました。
    Honda

    (@rocketmartue)

    条件分岐の書き方を直せば上手くいくと思います。

    <?php
    $cats   = get_queried_object();
    $parent = $cats->parent;
    
    if($parent == 0){
    	get_template_part('cat-oya');
    }else{
    	get_template_part('cat-ko');
    }
    ?>
10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「親カテゴリーと子カテゴリーでデザインを変えたい」には新たに返信することはできません。