advanced custom fields(アドバンスドカスタムフィールド)

advanced custom fields(アドバンスドカスタムフィールド) 柔軟フィールドの出力

advanced custom fields(アドバンスドカスタムフィールド) 柔軟フィールドの出力方法はちょっと癖があります。

フィールド構成
柔軟フィールド (flex)
レイアウト (repeatlabel)
リピート (repeat)
画像 (repeatpict)
文章 (repeattext)
    
レイアウト (grouplabel)
グループ (group)
画像 (grouppict)
文章 (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(アドバンスドカスタムフィールド) は、必要となる場面はあまり多くなさそうなだけに、
便利でプログラマ的には楽しいプラグインですが、その日本語情報はあまり公開されていません。

横文字サイトでも、あまり深い情報もなく、確かに価格的に安いものではありますけど、あまりにも当たり前の使い方の情報が多い感じがします。

使っているサイトが多くないから?その辺り、よくわかりませんが。いずれにしてもそういうことなので、本サイトの情報があなたの悩みを解決できましたら幸いです。
スポンサードリンク

関連記事一覧