前提・実現したいこと
カスタムフィールドで設定した複数の値を取得し、2〜3個のキーが「すべて含まれる」「一部含まれる」「すべて含まない」の出力をするように書きたいのですが、
個人的に調べて実施した結果
2つまでならうまく行くが、3つになると正常に動かない
ということを繰り返してます。
エラーを吐くわけではなく、
echoやprintで出力する部分が値なしになります。
また、全て含まれる部分がスルーされて一部含まれるだけ出力したりと。
なにが問題なのかが、よくわかりません。
そもそも別の方法を取るべきならご享受いただければ幸いです。
該当のソースコード
php
1 2 <?php $custom_field = get_field('custom_field'); 3 echo $custom_field; //ここでは問題なくすべての値が出力されます ?> 4 <div class="custon_field"> 5 <?php 6 if(preg_match('/(?=.*code1)(?=.*code18)(?=.*code26)/' ,$custom_field)){ //値が2つだと問題なく出力されます 7 echo "◎"; 8 } elseif (preg_match('/\bcode(1|18|26)\b/' ,$custom_field)){ //ここは3つでも上手く反映しているように見えます 9 echo "▲"; 10 } else { 11 echo "×"; 12 } 13 ?> 14 </div>
このコードの状態だと、カスタムフィールドの値が全て含まれるにも関わらず▲が出力されます。
試したこと
if(preg_match('/(?=.*code1)(?=.*code18)/' ,$custom_field)){
if(preg_match('/(?=.*code26)/' ,$custom_field)){
とifを重ねてみましたが、出力自体がない状態になります。
コード
あなたの回答
tips
プレビュー