アドバンスドカスタムフィールドの出力。
テキスト
<?php if(get_field('フィールド名')): ?> <p>フィールドラベル:<?php the_field('フィールド名'); ?></p> <?php endif; ?>
例えば
フィールドラベル⇒商品名
フィールド名⇒product_name の場合
<?php if(get_field('product_name')): ?> <p>商品名:<?php the_field('product_name'); ?></p> <?php endif; ?>
タクソノミーの場合。配列なので、foreach。
<?php if(get_field('フィールド名')): ?> <?php $term = get_field('フィールド名'); ?> <p>フィールドラベル:<?php foreach((array)$term as $value) { ?> <a href="<?php echo get_bloginfo('url') . '/フィールド名/' . $value->slug; ?>"><?php echo $value->name; ?></a> <?php if(next($term)!==FALSE){ echo ", ";} ?> <?php } ?> </p> <?php endif; ?>
例えば同じく
フィールドラベル⇒商品名
フィールド名⇒product_name の場合
<?php if(get_field('product_name')): ?> <?php $term = get_field('product_name'); ?> <p>商品名:<?php foreach((array)$term as $value) { ?> <a href="<?php echo get_bloginfo('url') . '/product_name/' . $value->slug; ?>"><?php echo $value->name; ?></a> <?php if(next($term)!==FALSE){ echo ", ";} ?> <?php } ?> </p> <?php endif; ?>
例えばフィールドラベル⇒国
フィールド名⇒country の場合
これをショートコード化してみる。
テキストの場合
<?php function tx_parts() { if(get_field('フィールド名')): $html .= '<p>フィールド名:' . get_field('フィールド名') . '</p>'; endif; </code> <code> <?php function tx_parts() { if(get_field('country')): $html .= '<p>国:' . get_field('country') . '</p>'; endif;
タクソノミーの場合。
<?php function tx_parts() { if(get_field('フィールド名')): $term = get_field('フィールド名'); $html = '<p>フィールドラベル:'; foreach((array)$term as $value) { $html .= '<a href="' . get_bloginfo('url') . '/フィールド名/' . $value->slug . '">' . $value->name . '</a>'; if(next($term)!==FALSE){ $html .= ", "; } endif; return $html; } add_shortcode('tx', 'tx_parts');
例えばフィールドラベル⇒ブランド
フィールド名⇒brand の場合
?php function tx_parts() { if(get_field('brand')): $term = get_field('brand'); $html = '<p>ブランド:'; foreach((array)$term as $value) { $html .= '<a href="' . get_bloginfo('url') . '/brand/' . $value->slug . '">' . $value->name . '</a>'; if(next($term)!==FALSE){ $html .= ", "; } endif; return $html; } add_shortcode('tx', 'tx_parts');
繋げて複数タクソノミーの出力を一つのショートコードで行う場合。
<?php function tx_parts() { /*テキストタイプ*/ if(get_field('product_name')): $html .= '<p>商品名:' . get_field('product_name') . '</p>'; endif; if(get_field('brand')): /*タクソノミータイプ*/ $term = get_field('brand'); $html .= '<p>ブランド:'; foreach((array)$term as $value) { $html .= '<a href="' . get_bloginfo('url') . '/brand/' . $value->slug . '">' . $value->name . '</a>'; if(next($term)!==FALSE) $html .= ", "; } endif; if(get_field('country')): /*タクソノミータイプ*/ $term = get_field('country'); $html .= '<p>国:'; foreach((array)$term as $value) { $html .= '<a href="' . get_bloginfo('url') . '/country/' . $value->slug . '">' . $value->name . '</a>'; if(next($term)!==FALSE) $html .= ", "; } endif; return $html; } add_shortcode('tx', 'tx_parts');