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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1008閲覧

ACFで投稿タイプの違う記事ABを紐づけ、フィールド値(タクソノミー一覧)をAB両記事内で表示したい

ishindenshin

総合スコア0

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/05/26 08:21

###紐づいた記事のフィールド値をとりだして表示したいです

###作業背景
wordpressで美容室のグループサイトを作っています
サロン、スタッフの情報をAFC別々に登録し
両方の記事に同じフィールド値を表示したいです。

▼使用プラグイン
Advance custom field (ACF)
Custom Post Type UI (CPTUI)

---CPTUIで2つの投稿タイプを作成
0. サロン:salon
0. スタッフ:staff

---CPTUIで2つのタクソノミーを作成
0. サロンの特徴:specialtax
・キッズルームあり
・24時間営業
0. スタッフ技術:skiltax
・カット
・パーマ

---その後Advance custom fieldで
上記の投稿タイプに各々以下を作成
・サロンにはスタッフが複数含まれる場合がある
・スタッフは1つ以上のサロンには属さない
条件で

▼【サロン】フィールド
|サロンA
|/フィールド名:staffname
|タイプ:関連
|選択投稿タイプ:スタッフ (←スタッフを選択します(複数))
|
|/フィールド名:special (←サロンの特徴を選択します(複数))
|タイプ:タクソノミー
|返り値:タームオブジェクト

▼【スタッフ】フィールド
|スタッフA
|/フィールド名:salonname (←サロンAを選択します(単数))
|タイプ:投稿オブジェクト  
|返り値:投稿オブジェクト
|
|/フィールド名:skill  (←スキルを選択します(複数)
|タイプ:タクソノミー
|返り値:タームオブジェクト

###問題点
以下のソースコードで
投稿タイプ
【サロン】に
・スタッフ
・スタッフのスキル
を表示するのは可能だが

【サロン】アーカイブページや
投稿タイプ
【スタッフ】に
【サロン】で登録したタームを出力することができない

###投稿タイプ【サロン】 のsingleページ 該当のソースコード (これは出力されます)

<?php $posts = get_field('staffname'); if( $posts ):?> <?php foreach( $posts as $val ): ?> <!--↓これはスタッフ投稿タイプ内のAFCの値--> <?php $terms = get_field('skill',( $val->ID )); if( $terms ): ?> <?php foreach( $terms as $term ): ?> <a href="<?php echo esc_url( get_term_link( $term ) ); ?>"><?php echo esc_html( $term->name ); ?></a> <?php endforeach; ?> <?php endif; ?> <!--↓これはサロンで登録した情報なので普通に表示される--> <?php $terms = get_field('special'); if( $terms ): ?> <?php foreach( $terms as $term ): ?> <a href="<?php echo esc_url( get_term_link( $term )); ?>"><?php echo esc_html( ( $term->name) ); ?></a> <?php endforeach; ?> <?php endif; ?> <!--省略--> <?php endforeach; ?> <?php endif; ?>

###投稿タイプ【スタッフ】 のsingleページ 該当のソースコード (これは出力されない)

<?php $posts = get_field('salonname'); if( $posts ):?> <?php foreach( $posts as $val ): ?> <!--↓これはサロン投稿タイプ内のAFCの値--> <?php $terms = get_field('special',( $val->ID )); if( $terms ): ?> <?php foreach( $terms as $term ): ?> <a href="<?php echo esc_url( get_term_link( $term ) ); ?>"><?php echo esc_html( $term->name ); ?></a> <?php endforeach; ?> <?php endif; ?> <!--↓これはスタッフで登録した情報なので普通に表示される--> <?php $terms = get_field('skill'); if( $terms ): ?> <?php foreach( $terms as $term ): ?> <a href="<?php echo esc_url( get_term_link( $term )); ?>"><?php echo esc_html( ( $term->name) ); ?></a> <?php endforeach; ?> <?php endif; ?> <!--省略--> <?php endforeach; ?> <?php endif; ?>

AFC設定時の
【関連】
【投稿オブジェクト】
の違いが原因でしょうか?...
どうかお力をお貸しください

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました

php

1 2<?php // 3$ salon_obj= get_field('salonname'); 4?> 5 6 7<?php $terms = get_field('special',( $salon_obj->ID )); if( $terms ): ?> 8<?php foreach( $terms as $term ): ?> 9<a href="<?php echo esc_url( get_term_link( $term ) ); ?>"><?php echo esc_html( $term->name ); ?></a> 10<?php endforeach; ?> 11<?php endif; ?> 12 13

投稿2021/05/26 10:33

ishindenshin

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問