ACF (Advanced Custom Fields) の「投稿オブジェクト」と「関連」の違いって何?
こんにちは、私です。
WordPressでサイト制作をする際に、ACF (Advanced Custom Fields) というプラグインを多用しています。
普段は「投稿オブジェクト」をよく使っているのですが、先日初めて「関連」フィールドを使用したところ、思っていた以上に投稿画面での使い心地が良かったので、今後はきちんと使いこなしていきたいなーと思った所存です。
さてこの「投稿オブジェクト」と「関連」、管理画面では「記事を選択する」という同じ動作を行うのですが、実際のところ用途としてはどのような違いがあるのかパッと見分からなかったのでまとめてみました。
有識者にとっては「今さらかよ!」と思われるかもしれませんが、同じように覚えたてで疑問に思う方のお役に立てれば幸いです。
INDEX
2つのフィールドの特徴
投稿オブジェクト (Post Object)
- 基本機能:「投稿オブジェクト」フィールドは、単一または複数の投稿(投稿、ページ、カスタム投稿タイプなど)を選択するためのフィールド。
- 選択:選択した投稿のIDを保存し、選択した投稿に対してクエリを実行するのに便利。
- 表示:フロントエンドで表示する際に、選択された投稿の情報(タイトル、コンテンツ、カスタムフィールドなど)に複雑なステップを踏むことなくアクセスできる。
- 管理画面での設定オプション:特定の投稿タイプ、タクソノミー、ステータスなどで選択可能な投稿をフィルタリングすることができます。
関連 (Relationship)
- 基本機能:「関連」フィールドは、複数の投稿を参照するためのフィールドで、より複雑な選択が可能。
- 選択:ドラッグアンドドロップによる投稿の並び替えや、複数の投稿タイプやタクソノミーにまたがる選択が可能。
- 表示:選択された投稿をリスト形式で表示したり、特定の順序で表示するのに適しています。
- 管理画面での設定オプション:表示する投稿タイプ、タクソノミー、ステータス、検索機能など、より細かくカスタマイズできます。
まとめると
使用する場面
- 投稿オブジェクト:単一の投稿や特定の投稿タイプの投稿を選択する場合に適している。例えば、特定のページを選択してそのページの情報を表示するなど。
- 関連:複数の投稿を選択してリスト表示する場合や、複数の投稿タイプにまたがる投稿を選択したい場合に適している。例えば、複数の関連する記事を表示する場合など。
選択の柔軟性
- 投稿オブジェクト:比較的シンプルで、単一または複数の投稿を選択するための基本的なフィールド。
- 関連:複数の投稿を選択し、ドラッグアンドドロップで並び替えるなど、よりインタラクティブな選択が可能。
シンプルな投稿選択には「投稿オブジェクト」を、複雑な関連付けには「関連」を使用するのが一般的ということですね。
投稿オブジェクトの利点
- 簡単なアクセス: 選択された投稿の情報(例えば、タイトル、コンテンツ、カスタムフィールドなど)に簡単にアクセスできます。
- 単一選択または少数選択: 特定の投稿を1つだけ選択したり、少数の投稿を選択する場合に便利です。
- フィルタリング機能: 特定の投稿タイプやタクソノミーで選択可能な投稿をフィルタリングできます。
具体的な使用例
例えば、特定のページに関連する1つの記事を表示したい場合や、特定の投稿タイプから選ばれた記事の情報を表示したい場合に適しています。
投稿オブジェクトの使用例
次のようにテンプレートファイルで投稿オブジェクトフィールドを使用して、選択された投稿の情報を表示できます。
<?php
// ACFで設定された「投稿オブジェクト」フィールドから選択された投稿のIDを取得
$post_object = get_field('post_object_field_name');
if ($post_object) :
// 選択された投稿の情報を取得
$post = $post_object;
setup_postdata($post);
?>
<div class="related-post">
<h2><?php the_title(); ?></h2>
<div class="content">
<?php the_content(); ?>
</div>
</div>
<?php
wp_reset_postdata();
endif;
?>
このコードでは、ACFで設定された「投稿オブジェクト」フィールドから選択された投稿の情報を取得し、そのタイトルとコンテンツを表示しています。
「関連」フィールドとの違い
「関連」フィールドは、複数の投稿をリスト形式で表示するのに適しているため、例えば複数の記事を一覧で表示したり、特定の順序で表示する必要がある場合に便利です。
つまり?
- 単一または少数の投稿を選択してその情報をページ上で表示したい場合は、「投稿オブジェクト」フィールドが適している。
- 複数の投稿をリスト形式で表示したり、選択や並び替えが必要な場合は、「関連」フィールドが適している。
投稿の情報を元に色々やりたいときは「投稿オブジェクト」、単純に記事をリンクさせたいときは「関連」フィールドがおすすめ!以上!