Advanced Custom Fields プラグインの”関連”の表示

投稿タイプ:ランチスケジュール(schedule_lunch)にAdvanced Custom Fields プラグインを使用して、投稿タイプ:キッチンカー情報を関連付けた。(フィールド名は”kitchencar_data”)

関連付けたキッチンカー情報の各ページにランチスケジュールの情報を表示したい。

wp_postmeta テーブルの該当レコード(meta_key -> kitchencar_data)には、
a:2:{i:0;s:2:”44″;i:1;s:2:”33″;}
といった文字列で格納されている。
“44”、”33″が関連付けられたキッチンカー情報のpost_idにあたる。

表示しているキッチンカー情報のIDを$keyに代入。

$key = '"' . $post->ID . '"';

get_posts関数でカスタムフィールド”kitchencar_data”に$keyの値を持つ投稿タイプ:ランチスケジュール記事を配列に。

$args = array(
'post_type' => 'schedule_lunch',
'meta_query' => array(
array(
'key' => 'kitchencar_data',
'value' => $key,
'compare' => 'LIKE'
)
)
);
$posts = get_posts( $args );

あとは、$postsをforeach文でまわす。

if ($posts) {
foreach ($posts as $post) : setup_postdata($post);

endforeach;
}

参考にした記事:
ACF { Documentation: Relationship
query_posts(WP_Queryクラス)でカスタムフィールドを使う:WordPress私的マニュアル
テンプレートタグ/get posts – WordPress Codex 日本語版
関数リファレンス/WP Query – WordPress Codex 日本語版