web-dev-qa-db-ja.com

Wp_queryリクエストからCountのみを返す

Wordpressの標準の組み込みツールを使用して、クエリの数だけを返すようにwp_queryを取得することは可能ですか?

今のところ、私はいくつかのmeta_queriesを持っているクエリを持っていますが、私が興味を持っている唯一のものは実際にクエリの数です。

Found_postsプロパティを使用できることは知っていますが、クエリ自体はクエリSELECT *によって大きなオーバーヘッドを生成し、したがってオブジェクト全体を返します。

私は$wpdbを使ってカスタムクエリでDBを簡単にクエリすることができますが、可能であれば組み込みのクエリシステムを利用したいと思います。

私はSEとGoogleでこれに対する答えを探していましたが、空になりました。

私が自分自身をうまく説明できなかったならば、私に知らせてください、そして、私は詳述しようとします。

乾杯

7
Mestika

あなたが望むものを達成するための組み込み関数はありません、少なくともこのような複雑なメタクエリのためにはありません。このために組み込み関数を使用する必要がある場合、最善の方法はWP_Queryを使用することです。

クエリを高速化し、WP_Postプロパティの不要な戻り値の配列をスキップするため、および投稿数のみに関心があるため、引数のパラメータに次のコードを使用できます。

'fields' => 'ids',
'no_found_rows' => true,

これはカスタムSQLクエリより少し速いかもしれません、そしてWP_Queryからの結果も同様にキャッシュされます。

9
Pieter Goosen

私はこれが答えられたことを知っています、そしてあなたの質問はWP_Queryを使うことに基づいていたので、私の答えはおそらくロングショットですが、あなたはこれを使うことを試みることもできます:

wp_count_posts( $type, $perm );

where $type = post_type (post, page, 'custom-post-type-slug')およびwhere $perm =現在のユーザーが読むことのできる非公開投稿を含めるには、 'reading'に設定します

私は過去にこれを使って大成功を収めました:)

wp_count_posts('post')->publish -> returns only the count for published posts.
0
cristian.raiber