web-dev-qa-db-ja.com

orderby:日付が機能していません

私は答えを探していましたが、反対の問題に対する答えがたくさんあるようです。このコードを使用して、変更日ではなく発行日でソートしようとしています。

query_posts($query_string . '&orderby=date&order=DESC&posts_per_page=-1');

しかし、それはまだ公開日ではなく修正日でソートされています、誰もが助けることができますか?

前もって感謝します!

1
Donna

orderby=dateを指定する必要はありません。これがデフォルトです。クエリを見ると、使用されているフィールドがpost_dateであり、これは公開日であり、修正日ではないことがわかります - post_modified

$wp_queryを呼び出した後にquery_postsをダンプするだけでこれを証明できます。または試してください:

$q = new WP_Query('posts_per_page=-1');
var_dump($q->request);

他のパラメータがなければORDER BY wp_posts.post_date DESCが得られます。

あなたがその順序を得ていないならば、デフォルトの振る舞いを変えているフィルタがすでにあります。そのフィルタを追加しているのは推測できません。

そして、はい、 query_postsを使わないでください

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

http://codex.wordpress.org/Function_Reference/query_posts (私の強調点)

2
s_ha_dum