WordPress:Advanced Custom Fieldsの「関連」フィールドで、公開済みの投稿のみ表示させる方法

WordPress:Advanced Custom Fieldsの「関連」フィールドで、公開済みの投稿のみ表示させる方法

カスタムフィールドを扱いやすくするプラグイン「Advanced Custom Fields」で「関連」というフィールドタイプを利用することで関連記事を任意で選んで出力させることができますが、デフォルトだとその選択部分に下書きや非公開記事も含まれて表示されます。
それを公開済みの投稿のみ表示させる方法です。

※以下で紹介する内容は「Advanced Custom Fields」を既に使用(有効化)している想定のものになります。

下書きや非公開状態の記事も表示されている

「関連」フィールドを利用すると投稿画面に上のイメージのようなボックスが表示され、ここで関連記事として表示させたいものを選択していくのですが、デフォルトのままだと下書き(draft)や非公開(private)な状態の投稿も選択一覧に表示されます。
ただ、ここで下書きや非公開状態の記事を選択することはほぼないでしょうし、そういった投稿が沢山あると邪魔になってくるので、それらを消して公開済みの投稿のみがこの一覧に表示されるようにします。

実装には下記をfunctions.phpに記述します。

functions.php

add_filter( 'acf/fields/relationship/query', 'custom_acf_relationship_filter', 10, 3 );
function custom_acf_relationship_filter( $args, $field, $post_id ) {
  $args['post_status'] = 'publish';
  return $args;
}
公開済みの記事だけが一覧に表示されている

記述後に関連記事を選択する部分を見てみると、もともと表示されていた下書きや非公開状態の投稿は表示されなくなり、公開済みの投稿のみが表示されているのを確認できます。

Close the search window,
please press close button or esc key.