Advanced Custom Fields 別投稿のフィールド値を取得し表示・条件分岐する

Advanced Custom Fields 別投稿のフィールド値を取得し表示・条件分岐する

WordPressのデフォルト機能「カスタムフィールド」をより使いやすく管理する人気プラグイン「Advanced Custom Fields」の応用マニュアルです。今回のこの記事では、別の投稿の「Advanced Custom Fields」フィールド値を表示したり、フィールド値によって条件分岐で表示する内容を切り替える方法をご紹介していますので、WordPressカスタマイズの際のお役に立てれば嬉しいです。

Advanced Custom Fields
©www.advancedcustomfields.com

ACF | Advanced Custom Fields Plugin for WordPress
https://www.advancedcustomfields.com/

Advanced Custom Fields — WordPress プラグイン
https://ja.wordpress.org/plugins/advanced-custom-fields/

別の投稿のフィールド値を表示する

別の投稿のフィールド値を表示する場合は、投稿IDをセットするだけでOKです。

<?php the_field('text_field',123); // 別の投稿のフィールド値を表示(123=投稿ID) ?>

参照元のフィールド値によって条件分岐する

参照元のフィールド値によって条件分岐するパターンです。

リンク元のテンプレート

aタグのURLにフィールド値を含めてしまいます。

<a href="http://hogehoge.com/?field_name=<?php the_field( 'フィールド名' ); ?>">リンク先</a>

リンク先のテンプレート

PHPで条件分岐構文を記述します。

<?php $url = $_SERVER['REQUEST_URI']; ?>
<?php if(strstr($url,'field_name=A')): ?>
参照元のフィールド値が「A」の場合
<?php else: ?>
上記以外の場合
<?php endif; ?>

参照元の投稿IDによって条件分岐する

こちらは、Advanced Custom Fields は関係ありませんが、
参照元の投稿IDによって条件分岐するパターンです。意外とよく使うのでついでに記載させていただきます。

リンク元のテンプレート

例えば、aタグのURLに投稿IDを含め、渡します。

<a href="http://hogehoge.com/?post_id=<?php echo $post->ID; //投稿ID ?>">リンク先</a>

リンク先のテンプレート

PHPで条件分岐構文を記述します。

<?php $url = $_SERVER['REQUEST_URI']; ?>
<?php if(strstr($url,'post_id=1')): ?>
参照元の投稿IDが1の場合
<?php else: ?>
上記以外の場合
<?php endif; ?>

Summary