「advanced custom fields」で作成した真偽フィールドから、それぞれの投稿ページをテンプレートファイルで分岐させたかったのですが旨くいきません。
カスタム投稿タイプとなるsingle-production.phpというファイルがあり、そこからYorNという真偽フィールドがtrueだったらsingle-copy.php、falseだったらsingle-original.php、という感じにそれぞれのテンプレートファイルに分岐させるのが目的でした。
single-production.php
<main> <?php $YesNo = get_field('YorN'); if($yesNo == 1): ?> <?php get_template_part('single', 'copy'); ?> <?php else: ?> <?php get_template_part('single', 'original'); ?> <?php endif; ?> </main>
下記のようにsingle-copy.php, single-original.phpの冒頭にはファイルまでの絶対パスと真偽フィールドのtrueかfalseを確認用に出力させています
<div class="main_wrap"> <?PHP echo __FILE__; ?> <?php echo get_field('YorN'); ?> </div>
結果は、すべてのファイルがfalseで分類されるsingle-original.phpに分岐されてしまいました。
にも拘らず、真偽フィールドの値は管理画面でチェックを入れたものはtrueを意味する「1」が、チェックを入れていないものは何も出力されていないようになっていました(こちらは正しい処理でした)。自分が調べたところでは true == 1, false == 0となるはずでしたが、falseの方は何も出力されないのでその点は違和感を感じます。ただ、trueかfalseかの分別はついているようなので、あとはtrueのものをsingle-copy.phpとして扱いたいのですが、それが旨くいきません。
single-production.phpから分岐させる段階でissetやis_nullでNULL判定をしてみたり、emptyで空のチェックをしてみましたが、結果はどれも同じでした。
どのようにすれば、trueの投稿がsingle-copy.phpを扱うようにできるのか。
何卒お力をいただきたく存じます。
よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。