advanced custom fields(アドバンスドカスタムフィールド) 柔軟フィールドの出力
advanced custom fields(アドバンスドカスタムフィールド) 柔軟フィールドの出力方法はちょっと癖があります。
フィールド構成
— メインループ —
— flex_unit.php —
ひな形としてまとめると次節のようになります。
表示本体は、前述の frex_unit.php を include で呼び出しています。
・柔軟フィールド内のフィールドは、基本的に sub_field である。
・繰り返しフィールドは、どこから呼び出そうとも、誰かの親でも子供でも基本的に以下の構成で読み取れる。
便利でプログラマ的には楽しいプラグインですが、その日本語情報はあまり公開されていません。
横文字サイトでも、あまり深い情報もなく、確かに価格的に安いものではありますけど、あまりにも当たり前の使い方の情報が多い感じがします。
使っているサイトが多くないから?その辺り、よくわかりませんが。いずれにしてもそういうことなので、本サイトの情報があなたの悩みを解決できましたら幸いです。
フィールド構成
柔軟フィールド (flex)
レイアウト (repeatlabel)
リピート (repeat)
画像 (repeatpict)
文章 (repeattext)
文章 (repeattext)
レイアウト (grouplabel)
グループ (group)
画像 (grouppict)
文章 (grouptext)
文章 (grouptext)
レイアウト (textlabel)
文章 (text)
— メインループ —
include(TEMPLATEPATH . '/flex_unit.php');
while(has_sub_field('flex')){
if( get_row_layout() == 'repeatlabel'){
repeat_view();
}elseif(get_row_layout() == 'grouplabel'){
group_view();
}elseif(get_row_layout() == 'textlabel'){
text_view();
}
}
— flex_unit.php —
// 繰り返しフィールド
function repeat_view()
{
if(have_rows('repeat')){
while( have_rows('repeat') ){
the_rows();
$repeatpict = get_sub_field('repeatpict ');
$repeattext = get_sub_field('repeattext ');
if( $repeatpict!=" ){
echo '<img src="'.$repeatpict.'"><br/>';
}
if( $repeattext!=" ){
echo $repeattext.'<br/>';
}
}
}
}
// グループフィールド
function group_view()
{
if(has_sub_field('group')){
$grouppict = get_sub_field('grouppict');
$grouptext = get_sub_field('grouptext');
if( $grouppict!=" ){
echo '<img src="'.$grouppict.'"><br/>';
}
if( $grouptext!=" ){
echo $grouptext.'<br/>';
}
}
}
// 通常フィールド
function text_view()
{
$text = get_sub_field('text');
if( $text!=" ){
echo $text.'<br/>';
}
}
ひな形としてまとめると次節のようになります。
表示本体は、前述の frex_unit.php を include で呼び出しています。
advanced custom fields(アドバンスドカスタムフィールド) 柔軟フィールドの出力ひな形(テンプレート)
<?php get_header(); ?>
<!---- page_sample --->
<div class="content-area">
<div class="container">
<h1 class="entry-title"><?php the_title(); ?></h1>
<article>
<div class="entry-content">
<!---- flex loop --->
include(TEMPLATEPATH . '/flex_unit.php');
while(has_sub_field('flex')){
if( get_row_layout() == 'repeatlabel'){
repeat_view();
}elseif(get_row_layout() == 'grouplabel'){
group_view();
}elseif(get_row_layout() == 'textlabel'){
text_view();
}
}
<!----/flex loop --->
<!-- free page post -->
<?php if( have_posts( ) ): while( have_posts( ) ): the_post( ); ?>
<article id="article-page-<?php the_ID(); ?>">
<div class="entry-content">
<?php the_content(); ?>
</div><!-- entry-content -->
</article>
<?php endwhile; ?>
<?php endif; ?>
<!-- /free page post -->
</div> <!-- entry-content -->
</article>
</div> <!-- container -->
</div> <!-- content-area -->
<?php get_footer(); ?>
advanced custom fields(アドバンスドカスタムフィールド) 柔軟フィールドのポイントまとめ
・レイアウトの新規追加は、隠されている。・柔軟フィールド内のフィールドは、基本的に sub_field である。
・繰り返しフィールドは、どこから呼び出そうとも、誰かの親でも子供でも基本的に以下の構成で読み取れる。
if( has_rows('繰り返しフィールド名') ){
while( has_rows('繰り返しフィールド名') ){
the_rows();
$value = get_sub_field('繰り返しフィールド内構成フィールド名');
advanced custom fields(アドバンスドカスタムフィールド) 柔軟フィールドのまとめ
advanced custom fields(アドバンスドカスタムフィールド) は、必要となる場面はあまり多くなさそうなだけに、便利でプログラマ的には楽しいプラグインですが、その日本語情報はあまり公開されていません。
横文字サイトでも、あまり深い情報もなく、確かに価格的に安いものではありますけど、あまりにも当たり前の使い方の情報が多い感じがします。
使っているサイトが多くないから?その辺り、よくわかりませんが。いずれにしてもそういうことなので、本サイトの情報があなたの悩みを解決できましたら幸いです。