アドバンスドカスタムフィールドの出力。
テキスト
<?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');