2

効率についての質問です。wp_query($args)との使用の違いは何$query = new WP_Query($args)ですか? 効率/SQLクエリの数に違いはありますか? どちらかが常に他のスタイルよりも優れているのか、それともどちらかのスタイルが好まれるケースはありますか?

たとえば、カテゴリに基づいて 3 つの列を持つ複雑なページが必要な場合、次の 2 つの例はどのように違うのでしょうか?

$query = new WP_Query("category_name=Issue 1")
while ($query->have_posts())....

対。

rewind_posts()
query_posts("category_name=Issue 1")
while(have_posts())...
4

4 に答える 4

3

何もない。

一方が他方を呼び出すだけで、これはWP ソースからのものです。

function query_posts($query) {
        $GLOBALS['wp_query'] = new WP_Query();
        return $GLOBALS['wp_query']->query($query);
}

神よ、私は WP が大好きです。失敗。

于 2013-08-01T16:54:46.593 に答える
1

を使用しWP_Queryます。

WordPressquery_posts関数リファレンスから:

これを使用してページのメイン クエリを置き換えると、 ページの読み込み時間が長くなる可能性があることに注意してください。最悪の場合、必要な作業量が 2 倍以上になることもあります。この機能は使いやすい反面、後で混乱や問題が発生しやすくなります。詳細については、以下の注意事項を参照してください。

一般的な投稿クエリの場合は、WP_Queryまたはを使用しますget_posts

pre_get_posts代わりにフィルターを使用し、チェックしてメイン クエリを変更することを強くお勧めします。is_main_query

ではWP_Query、1 つのページで複数のクエリを実行できます。query_postsメイン ループをカスタム クエリに置き換えるだけです。ドキュメントに記載されているように、メイン ループを変更するには、 を使用するよりも優れた方法がありますquery_posts

于 2013-08-01T17:12:57.453 に答える