2つの異なるコードがあり、2つの異なる結果が返されています。
$search_query = new WP_Query();
$search_posts = $search_query->query('s=computer');
echo count($search_posts);
vs.
$search_posts = get_posts('s=computer');
echo count($search_posts);
異なる値の理由は何ですか?
(最初のものによって提供された値は正しい。それは私がWPで通常の検索をするときに得た投稿の数と同じである。しかしコードの最初の部分はプラグインのphpファイルの中では働かない。テンプレートでのみ動作します。)
ありがとう。
get_posts()
関数のデフォルトの引数には'numberposts' => 5
があります。
したがって、5つ以上の結果を返す検索語をクエリしている場合、2番目のクエリは、クエリ文字列として5
を渡さない限り、最大値の's=computer&numberposts=-1'
を返します。
WP_Query
オブジェクトにはデフォルトの'numberposts'
はありませんが、設定パネルの"ブログページの表示数"の影響を受けます。したがって、query()
関数を使用して合計数を計算したい場合は、次のようにデフォルトをオーバーライドする必要があります。
$search_query->query('s=computer&nopaging=true')