サポート » 使い方全般 » 直下の子カテゴリー(ターム?)1つだけを表示したい

  • 解決済 yuka001

    (@yuka001)


    はじめまして。
    最近WordPressを使い始め、テーマにmesocolumnを使っています。

    TOPページやブログのテンプレートで一覧表示される記事の下部に表示される情報をカスタマイズをしたいのですが
    PHPの知識が全く無いため、ネットで検索して色々試しているのですがうまくいきません。

    やりたい内容なのですが、例えばカテゴリーが下記のように存在していた場合
    親カテゴリーではなく、直下の子カテゴリーを1つだけ表示させたいと思っています。

    【カテゴリー例】
    レディースファッション(親)
     トップス(子1)
     ボトムス(子2)
     靴(子3)
      ↓↓↓

    【表示させたい内容】
    -記事タイトル-
    記事本文の出だし数文字・・・
    トップス 2017/3/27
     ↑この部分です

    説明がわかりにくくてすみません。
    現状、この”トップス”の部分が”レディースファッション”と表示されている状態です。
    それを子カテゴリー(ターム?)の1番上という表現で良いかわかりませんが
    直下の1個だけ表示させたいと思っています。
    (現状、子カテゴリーは一つだけなのですが将来的に増えることがあるかもしれないので)

    この表示以外に、もともと表示されていた投稿者やコメントの有無なども消したかったのですが
    そちらはネットで検索して対処済みです。
    その際、lib/templates/に入っていたfeat-cat-meta-bottom.php、feat-cat-meta-top.php、post-meta.php を変更したので
    今回も同じファイルを変更するのかな?と思っていますがコードの記述がわかりません。
    get_term_children()やparentといったパラメーターが絡んでいそうなことが調べると出てくるのですが(全然違っていたらすみません)
    どのように使えばよいのかわかりませんでした。

    もし可能でしたら、子カテゴリ名をリンクなしで表示する方法をご教授いただけると幸いです。

    ちなみに、試行錯誤している中で
    http://delaymania.com/201510/wordpress/wordpress-catgory-name/
    で見つけた
    <?php $cat = get_the_category(); ?>
    <?php $cat = $cat[0]; ?>
    <?php echo get_cat_name($cat->term_id); ?>
    という記述をためしにそのまま貼り付けたところ、親カテゴリーは表示されたのですが
    改行されてしまい下記のようになってしまいました。

    -記事タイトル-
    記事本文の出だし数文字・・・
    レディースファッション
    2017/3/27

    このあたりもできれば教えて頂けるとありがたいのですが…。

    どうぞよろしくお願いします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • CG

    (@du-bist-der-lenz)

    子カテゴリーは特定されたカテゴリーなのでしょうか

    トピック投稿者 yuka001

    (@yuka001)

    Du bist der Lenz さん

    こんにちは。ご返信ありがとうございます。
    自分の質問を読み返してみて説明が足りな過ぎていたため追記させてください。

    カテゴリーですが、全部で3つあります。実際は違いますが、例として下記のような感じです。

    1.店舗A(子カテゴリーなし)

    2.店舗B(子カテゴリーなし)

    3.レディースファッション(親)
      トップス(子1)
      ボトムス(子2)
      スカート(子3)
      ワンピース(子4)
      アウター(子5)
      靴(子6)
      帽子(子7)
      小物(子8)

    各記事は必ず1.の店舗Aか2.の店舗Bに属しているのでどちらかにチェックが入っています。
    その他に3.のレディースファッションに入っている子カテゴリーの何れかにも必ずチェックが入ります。

    前回、「子カテゴリーは一つだけなのですが将来的に増えることがあるかもしれない」と記載いたしましたが、他の方法で回避できそうなため、3.のカテゴリーもチェックは何れか1つだけとなります。

    また前回のご説明で3個、子カテゴリーに記載いたしましたが、これは3.の中でランダムに複数選んだ場合の事であるということの説明をせずに書いてしまいました。すみません。

    このような事情がありご質問頂いた「子カテゴリーは特定されているのか」については、記事によって変わるため特定ではありません。

    また今設定している表示ですが、トップページの場合は店舗Aと店舗Bの2列を用意、
    各列には店舗Aと店舗Bにチェックがはいっている記事をそれぞれ公開日順に表示するように設定しています。

    この際、各記事の下部に表示させる内容として3.のレディースファッション(親)で選ばれている
    子カテゴリーの文字+公開日を表示させたいというのが質問内容になります。

    やりたいイメージは下記です。

    【店舗A】                     【店舗B】
    -記事タイトル-                 -記事タイトル-
    記事本文の出だし数文字・・・          記事本文の出だし数文字・・・
    トップス 2017/3/27               スカート 2017/3/25

    -記事タイトル-                 -記事タイトル-
    記事本文の出だし数文字・・・         記事本文の出だし数文字・・・
    帽子  2017/3/27               小物 2017/3/25

    ちなみに今は下記のように表示されています。

    【店舗A】                     【店舗B】
    -記事タイトル-                 -記事タイトル-
    記事本文の出だし数文字・・・          記事本文の出だし数文字・・・
    店舗A 2017/3/27                店舗B 2017/3/25

    このようなカスタマイズは簡単にできるものなのでしょうか。
    また、いまの状態のPHPファイルの内容もここに記載したほうがよろしかったでしょうか。

    恐れ入りますが、何か良い方法がございましたらご教授いただければと思います。

    LABE

    (@latobeam)

    ご質問のような状況の場合、別のアプローチで実現したほうが、最終的には管理が容易になるような気がします。
    すなわち、「店舗A/店舗B」と「レディースファッション」配下のカテゴリは別次元の分類となるため、WordPressにおいても別次元の分類を使って管理するほうがいいと思います。

    よくある方法としては、カスタムタクソノミー「店舗」を作り、配下にターム「店舗A」「店舗B」を作成、カスタムタクソノミー「レディースファッション」を作り、配下に「トップス」「ボトムス」……を作成、そして記事には「店舗」配下のタームと「レディースファッション」配下のタームをそれぞれ一つずつ設定する、というような方法があります。
    そして、記事一覧は「店舗」の分類で取得し、記事部分には「レディースファッション」の分類を表示するのです。
    カスタムタクソノミーを使わなくても、「店舗A」「店舗B」をカテゴリとし、「トップス」「ボトムス」……をタグとすれば、似たようなことが可能です。

    ご質問のような状況が起こるのは、推測ですが、お使いのテーマでは記事一覧において、記事が複数のカテゴリに属する場合、どのカテゴリを表示させるかを選べない、というのが原因ではないでしょうか。
    これを選べるようにする方法はありますが、複雑な方法という感じは否めません。
    それよりも、「レディースファッション」の分類を確実に表示させるなら、「店舗」とは別の分類を使ってしまおう、というアプローチです。

    トピック投稿者 yuka001

    (@yuka001)

    LABEさん

    別の方法のご提案ありがとうございます。
    PHPだけでなくWordpress自体、使い始めて数日でまだ良くわかっていないので
    ネットで検索してカスタムタクソノミーはプラグインで試してみました。

    今後色々と幅が広がりそうな機能で教えて頂いて良かったです。
    ですが今回使用しているテーマのmesocolumnでは(単に私の設定が間違っているのかもしれませんが)
    使いたい機能とうまく連動してくれないようでした。そのため今回は断念しました。

    プログラムはエクセルのVBAぐらいしかできないのでほとんどわかりませんが
    そのVBAのイメージで、特定の親カテゴリーに属している子カテゴリーを
    ループなどでチェックが入っているか1つずつ判断して該当があれば出力、といった簡単なプログラムで対応できるんじゃないかと勝手に想像していましたが、どうもそういう仕組みではなさそうですね。

    今回は別のテーマを探してイメージに近いものを使うことで妥協しようかと思います。
    ありがとうございました。

    CG

    (@du-bist-der-lenz)

    レディーズファッション以下、全て商品ですよね。
    商品だけをカスタム投稿タイプで管理して、店舗A、店舗Bで、それぞれの商品を参照させると良いでしょう。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「直下の子カテゴリー(ターム?)1つだけを表示したい」には新たに返信することはできません。