こんにちは!
私はよくスマートカスタムフィールドを使用するのですがなぜかいつもやっているやり方で
急にでなくなった時の対処法をご紹介します。
これ、いまだに原因が不明なんですが、スマートカスタムフィールドを使用してWPで『よくあるご質問』のページを作成してました。
で、質問をテキストで、答えをテキストエリアで作成して、「faq」というグループを名付けて以下のソースでarchive-faq.phpで実装したんです。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php $field_group = SCF::get( 'faq' ); foreach ( $field_group as $fields ) { ?>
<dl>
<dt><span class="sub_title">Q.</span><?php echo nl2br(esc_html( $fields['question'] )) ;?><i class="fa fa-chevron-down"></i></dt>
<dd><span class="sub_title">A.</span><?php echo nl2br(esc_html( $fields['answer'] )) ;?></dd>
</dl>
<?php } ?>
<?php endwhile; ?>
<?php else: ?>
<p>記事が見つかりませんでした。</p>
<?php endif; ?>
今まではこれでうまくいってたんですが、なぜか表示されない。
でも、投稿されている数分は出力されてる感じはあるんですが、肝心の質問と答えが出てないんです…。
いろいろと調べてみたものの、正しい書き方してるし、特に間違ってもないようだったので
頭を抱えてました…。
結局少しだけ違うやり方でやったら、あっという間に出た!
ということで同じような現象にぶつかっている方の参考になればと思い、下記に解決したソースを書いておきますね♪
<?php while (have_posts()) : the_post(); ?>
<?php $field_group = SCF::get( 'faq' ); foreach ( $field_group as $field_name => $field_value ) { ?>
<dl>
<dt>
<span class="sub_title">Q.</span>
<?php echo nl2br(esc_html( $field_value['質問'] )) ;?><i class="fa fa-chevron-down"></i></dt>
<dd><span class="sub_title">A.</span>
<?php echo nl2br(esc_html( $field_value['答え'] )) ;?>
</dd>
</dl>
<?php } ?>
<?php endwhile; ?>
最初のものと何が違うかといいますと、指定したカスタムフィールドの値を名前に変換する変数をいれて、日本語名にしたのです。
なんでこれだと表示されたのかよくわからないのでもしわかる方いましたらコメントください!