web-dev-qa-db-ja.com

Category.phpのカテゴリの投稿数を取得するためのよりクリーンな方法はありますか?

Category.phpの作成wp_queryなしで投稿数を取得するためのより良い方法があるかどうかを知りたいです。過去に私は電話しました:

また、各投稿の後に区切り文字を作成しますが、ページの最後またはget_option('posts_per_page')の最後には使用しません。

$category = get_queried_object();
$category_total = $category->count;

調査の結果、2011年に作成された 選択したカテゴリの総投稿数を取得する方法 _が表示されました。 wp_count_posts() は、パフォーマンスが良くないと思われるブログ内のすべての投稿を含みます。

$category = get_category($id);
$count = $category->category_count;

_から カテゴリ内の投稿数を数えて _ wp_queryが必要だと思いますか? category.phpのカテゴリ内の投稿数を取得するためのより良い方法はありますか?

あなたが持っているものは基本的に正しいです。これは、currnetカテゴリの投稿の総数を取得するための正しい方法です。

$category = get_queried_object();
$category_total = $category->count;

countプロパティは新しい投稿が公開されたときにのみ更新され、使用するたびに計算する必要がないため、これを使用してもパフォーマンスへの影響はありません。

ただし、現在のページの投稿数を取得するには、get_option( 'posts_per_page' )を使用するのが最善の方法ではありません。最後のページでは誤った投稿数になり、1ページあたりの投稿数より少なくなる可能性があるためです。

その数を取得するには、グローバルな$wp_queryオブジェクトをチェックする必要があります。

global $wp_query;
$post_count = $wp_query->post_count;
1
Jacob Peattie