WP_Query
クラスを使用して、公開中のパスワード保護された投稿の数を取得し、表示する方法を説明します。
関数を作成する
まず、公開中のパスワード保護された投稿数を取得する関数を作成します。以下のコードを、テーマのfunctions.phpファイルに追加してください。
function wpkb_count_protected_posts() {
$args = [
'fields' => 'ids',
'has_password' => true,
'post_status' => 'publish',
'post_type' => 'post',
'posts_per_page' => -1,
];
$the_query = new WP_Query($args);
$count = $the_query->found_posts;
wp_reset_postdata();
return $count;
}
コードの説明
fields => 'ids'
により、投稿のIDのみを取得します。has_password => true
で、パスワード保護された投稿のみを対象にします。post_status => 'publish'
により、公開中の投稿をフィルタリングします。posts_per_page => -1
で、全ての投稿を取得する設定になっています。
投稿数を表示する
次に、投稿数を表示したいテーマファイル(例えばfront-page.phpやarchive.phpなど)に以下のコードを追加します。
$protected_posts_count = count_protected_posts();
echo '公開中のパスワード保護された投稿数: ' . $protected_posts_count;
これにより画面に「公開中のパスワード保護された投稿数: 9」と表示されます(9の部分には実際の数が入ります)。
以上の方法で、公開中のパスワード保護された投稿の数を表示できます。これにより、訪問者にパスワード保護されている投稿の数を知らせることができます。