Advanced Custom Fields(アドバンスドカスタムフィールド)でテキストとタクソノミーの出力とショートコード化

スポンサードリンク  

アドバンスドカスタムフィールドの出力。
テキスト

<?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');

スポンサードリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

※URLを複数含む場合、日本語がない場合などコメントができない場合があります。