プラグイン Smart Custom Fields を利用する。繰り返し処理をしてくれる便利なカスタムフィールド
入力フォームの出力幅が狭いので、固定ページにつくると簡単便利。
特定のタクソノミーのぺージにだけ適用させるのは難しいので、ページの記事欄にショートコードを記述して、出力phpファイルを呼び出す。
https://arts-factory.net/scf_output/
https://irodori-design-web.com/blog/86/
https://qiita.com/chokosuki4400/items/cfd14c3c3caf2a13a34c
関連ページ出力の関数について
https://www.akecre.com/wordpress/display_scf/
https://millmi.com/1461/
https://www.i-ryo.com/entry/2018/12/05/210617#関連する投稿のタイトルURLのグループ出力
テキストエリアで<br /> を付ける場合は nl2br を付ける。
<?php
$cf_catch = SCF::get('catch');
echo ($cf_catch);
?>
nl2br(SCF::get ('sub_naiyo1'))
◆テキストエリアで<br /> を付ける場合は nl2br を付ける。
<?php
$cf_catch = SCF::get('catch');
echo nl2br($cf_catch);
?>
◆エディタでショートコードを使う場合 do_shortcode を付ける。
<?php echo do_shortcode( $field_value['wysiwygフィールド名'] ); ?>
<div class="article_titArea" style="background: <?php echo SCF::get('sample_colorpicker01'); ?>;">
<h1 style="color: <?php echo SCF::get('sample_colorpicker02'); ?>">タイトル</h1>
</div>
<?php echo '<img src="' . get_template_directory_uri() . '/images/noimage.gif" alt="noimage" />'; ?>
get・・・の前に一度echoの出力文字列を終わりにして、文字列連結「.」で関数をくっつけてできあがりです。
出力タグ
<?php
$faq = SCF::get('download');
foreach ($download as $fields ) {
?>
<p><?php echo $fields['kouza']; ?></p>
<p><?php echo $fields['kaisai']; ?></p>
<p><?php echo $fields['naiyo']; ?></p>
<p><?php echo $fields['url']; ?></p>
<?php } ?>
もし内容が空の場合は出力しない
if(!empty($field_value['group_title'])){
echo '<h2 class="' . $field_value['group_lavel'] . '">' . $field_value['group_title']. '</h2>';
}
$faq = SCF::get('download'); は設定したグループ名を書く
テキストもテキストエリアも同じタグで出力できるので便利!
【ファイルの出力】
<?php
$cf_group = SCF::get('download');
foreach ($cf_group as $field_name => $field_value ) {
$cf_sample = esc_url(wp_get_attachment_url($field_value['file']));
echo '<a href="' . $cf_sample . '" >ファイルダウンロード</a>';
}
?>
<?php
for ($i=1; $i<11; $i++) {
if(!empty($sub_catch.$i)){
echo '<section class="'.${'bg_label'.$i}. '">';
echo '<h2 class="sub_title">'. nl2br(${'sub_catch'.$i}). '</h2>';
echo '<div class="wid">'. nl2br(SCF::get ('sub_naiyo'.$i)). '</div>';
$group1 = SCF::get('group'.$i);
foreach ($group1 as $field_name => $field_value ) {
echo '<div class="contants">';
if(!empty($field_value['group_title'.$i])){
echo '<h3>'. $field_value['group_title'.$i]. '</h3>';
}
echo do_shortcode( $field_value['group_content'.$i] );
echo "</div>";
}
echo "</section>";
}
}
?>