プラグイン

Advanced custom fieldsのページリンクでリンクとページタイトルをわけて出力する

2017.09.03

繋がる椅子

Advanced custom fieldsのページリンクを使う機会があったので出力方法を紹介します。ページリンクは各投稿のURL等を取得しリンクを設置することのできるフィールドタイプです。箇所によってはウィジェットでも同様のことが可能ですが、ACF Proの繰り返しフィールドやオプションページを組み合わせるとウィジェットよりも全然便利に使えます。

ページリンクフィールドの出力

ページリンクは複数選択が可能です。

一般的な出力方法

ページリンクの一般的な出力は以下のような感じです。

<?php $testtest = get_field('testtest'); ?>
<?php if( $testtest ): ?>
<?php foreach((array)$testtest as $value ): ?>
<p>
<a href="<?php echo $value; ?>"><?php echo $value; ?></a>
</p>
<?php endforeach; ?>
<?php endif; ?>

リンクとタイトルを出力する

以下のように設定するとリンクとタイトルを出力することが可能です。

<?php
$testtest = get_sub_field('testtest', false, false);
?>
<?php if($testtest): ?>
<?php foreach((array)$testtest as $value): ?>
<a href="<?php echo get_the_permalink($value); ?>">
  <?php echo get_the_title($value); ?>
</a>
<?php endforeach; ?>
<?php endif; ?>

get_the_xxxで取得、出力できるってことは、もっと色々な事ができそうですが、そうなってくると管理画面のUI的にも関連フィールドを選択した方がいい気がします。

ページリンクの使い所

Advanced custom fields様々なフィールドタイプが用意されていて、先ほども言いましたがリンクやタイトルを利用するのであれば関連でできるなど、色々出来すぎて使い所に悩んでしまいます。同じ事を関連でやってみると以下のようになります。

<?php
$test_kanren = get_field('test_kanren');
?>
<?php if($test_kanren): ?>
<?php foreach((array)test_kanren as $value):?>
<a href="<?php echo get_the_permalink($value->ID); ?>">
  <?php echo $value->post_title; ?>
</a>
<?php endforeach; ?>
<?php endif; ?>

複数指定できるところも同じですし、行数も同じです!まじ使い所に悩みます!あえて言うなら入力方法が違います。関連の方が管理画面ではスペースを取ってしまうので、管理画面をスッキリさせたいのならページリンクの方がオススメです!

ちなみに似た機能で言うと投稿オブジェクトがあります。出力方法も同じような感じで、複数選択できるところも同じです。私の中での使い分けとしては、投稿オブジェクトは単一の関連というていで使っています。

WEBSITE DESIGN REQUEST

ホームページ制作依頼について

W・D・Sでホームページ制作をご希望の方はお気軽にご相談ください。
制作内容、ご予算、納期をお知らせいただくとスムーズです。

ホームページ制作を相談する