UPDATE:2023.8.4
- CATEGORY
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)の「関連」フィールドは便利なので使う機会は多いですが、非公開記事まで出力されてしまうのは困る方もいるかと思います。
この記事がお役に立てれば幸いです。