質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

1860閲覧

Wordpress : 特定の親カテゴリーの属する子カテゴリーにACFで登録したカスタムフィールド値をSingleページで表示させたい

mass

総合スコア9

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2023/02/13 12:25

実現したいこと

Wordpressにてその投稿ページが属している特定の親カテゴリーの子カテゴリーに登録したAdvancedカスタムフィールドの値をSingleページにて表示させたいです。
尚、投稿が属する親カテゴリーは決まっていて、属する子カテゴリーはその投稿ページ毎によって違います。
また属する子カテゴリーは必ず1つの想定でおります。

前提と分かっていないこと

Wordpress に Advanced Custom Fields PRO のプラグインを組み合わせて利用しています。
Singleページにてそのページが所属する特定の親カテゴリー(カテゴリーIDが1)の子カテゴリーにACFで登録したフィールドの値を表示させたいのですが、ページ毎に変わる子カテゴリの値をカスタムフィールドの表示で入れ替える方法が分かっておりません。

例えばある記事が、
親カテゴリー(カテゴリーIDが1) で、
その子カテゴリー(カテゴリーIDが10)に属しているとします。
現在この状態をSingleページのテンプレートに下記の記載をしますと。

php

1// 親カテゴリのIDが1で子カテゴリのIDが10の投稿ページで表示させた場合 2<?php 3 $categorys = get_the_category(); 4 foreach($categorys as $category): ?> 5<?php if(($category->parent == 1)): ?> 6 7<p> 8 <?php echo $category->name ;?> - <?php echo $category->cat_ID ;?> 9</p> 10 11<?php endif ;?> 12<?php endforeach ;?>

上記の表示結果

html

1<p>(10の子カテゴリー名) - 10</p>

このように期待通り表示がされ属する子カテゴリーのIDが拾えているのが分かっています。

html

1<p>(11の子カテゴリー名) - 11</p>

もちろん子カテゴリー(IDが11)の時にもこのように期待される結果が返ってきています。

最終的に表示させたいカスタムフィールド

最終的にしたいことは下記のカスタムフィールドの表示になります。
属する子カテゴリーごとにカテゴリーページにて設定したカスタムフィールドの値を切り替えて値を表示させたいのです。

php

1<?php 2 $categorys = get_the_category(); 3 foreach($categorys as $category): ?> 4<?php if(($category->parent == 1)): ?> 5 6<?php the_field( 'fieldname_hoge', '子カテゴリーのID' ); ?> 7 8<?php endif ;?> 9<?php endforeach ;?>

もしわかる方がいましたら助けていただけますでしょうか?
何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
単純にcategory idを カスタムフィールドのidに代入すればよかったので下記のような記述をすることで解決いたしました!

やってほしいことだけ、、すみません、ありがとうございました。

php

1<?php 2 $categorys = get_the_category(); 3 foreach($categorys as $category): 4 if(($category->parent == 1)): 5 $category_id = $category->cat_ID; 6?> 7 8<?php the_field( 'fieldname_hoge', "category_{$category_id}" ); ?> 9 10<?php endif ;?> 11<?php endforeach ;?>

投稿2023/02/17 13:01

mass

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問