お問い合わせ・無料相談
WEBのこと 2023.08.04

Advanced Custom Fields(ACF)の関連フィールドで非公開記事を出力しない方法

WRITER
Sasayama Sayaka ディレクター
Sasayama Sayaka

ディレクター。ウェブデザイン技能士(2級)/HTML5プロフェッショナル認定資格 レベル1・レベル2。

Advanced Custom Fields(ACF)の関連フィールドで非公開記事を出力しない方法

ワードプレスで簡単にカスタムフィールドを作成して
入力項目をカスタマイズできるプラグイン『Advanced Custom Fields(ACF)』。

このプラグインの「関連」フィールドでは関連記事の表示を容易に可能にしてくれますが、
たとえば公開した記事を「関連」フィールドにて選択後、
後からその記事を非表示にしても「非公開」というタイトル付きで出力されてしまいます。
その場合、「関連」フィールドから非公開記事を除外すれば表示はされなくなりますが、
その手間が煩わしいという場合もあるかと思います。

ですので、今回は「関連」フィールドで非表示にした記事が表示されないようにするカスタマイズ方法を紹介します。

記事のステータスが「公開」の場合にのみ出力処理をするコード

非公開記事を出力しないようにするには、「関連」内容を出力している箇所のカスタムフィールドの処理に
「記事のステータスが公開の場合のみ出力をする」という内容の判定を加えれば実現できます。

以下、基本的なコードです。


<?php
$posts = get_field('custom_field');//カスタムフィールドを取得
if( $posts ):
?>
    <?php foreach( $posts as $post ): ?>//ループ処理
      <?php if (get_post_status($post->ID) === 'publish') : ?>
       //↑ステータス:公開の場合のみ以下の処理を行う
       ※出力する内容
      <?php endif; ?>
    <?php endforeach; ?>
<?php endif; ?>

このように、出力するときにステータスが「公開」の時だけ
出力処理を通るようにすれば公開されている記事しか表示されません。
(また、もう少し細かく判定を設定すれば様々な条件で出力を分けることもできると思います。)

最後に

Advanced Custom Fields(ACF)の「関連」フィールドは便利なので使う機会は多いですが、
非公開記事まで出力されてしまうのは困る方もいるかと思います。

この記事がお役に立てれば幸いです。

JOURNALが気に入ったら「いいね」してね!

Contact

ブランディング・WEB制作・運用まで、まずは一度お話を聞かせてください。 初回のご相談は無料で承っています。

お電話

0120-622835

10:00〜18:00 / 土日祝休

メールフォーム

お問い合わせはこちら