WordPressでは非公開記事は通常表示されませんが、ログイン時には通常の記事のようにアーカイブ一覧に表示されますし、記事も表示できます。
便利な場面もありますが、不便なこともあります。
非公開記事が大量にあるような運用方法の場合、ログインするとすべて見えてしまうので実際のサイトの状態とはかけ離れてしまいます。
特に、Woocommerceで非公開商品がとても多い場合だと、ログインしているとすべての商品が見えてしまうので、使いにくいです。
非公開記事をログイン時にも表示させないカスタマイズ
参考:https://hirashimatakumi.com/blog/6641.html
参考記事では、is_post_type_archive()で判定していますが、Woocommerceの場合、商品カテゴリページで非公開商品が表示されてしまうため、判定方法を以下のように変更しました。
/*【出力カスタマイズ】クエリーカスタマイズ、ループから非公開記事を除外 */
function custom_posts() {
global $wp_query;
if($wp_query->is_admin) return; // 管理画面内は除く
if(is_archive() || is_tax()){ // アーカイブページ
$wp_query->query_vars['post_status'] = 'publish'; // 投稿ステータス「公開済」
}
}
add_filter('pre_get_posts', 'custom_posts');
まとめ
WordPressサイトは、通常の運用方法とは異なる運用をしているサイトがたまにありますが、多くの場合、目からうろこ状態で斬新な使い方となっていることが多いです。
通常の使用から外れたところにこそ、ビジネスチャンスがあるのではないかと思う、今日この頃です。