カスタムWP_QueryでのDESC、ASCによる順序
-
-
WP_Queryを投稿して、正しく形成されているかどうかを確認する必要があります.Well, you should post the WP_Query, to see if it is formed right.
- 0
- 2013-08-13
- Marin Bînzari
-
そこにはすべての栄光があります.私は現在何も注文していませんが、そのブールメタ値b/cは、そのレベルまたは並べ替えを機能させる唯一の方法でした.このサイトでは、「注目の」投稿よりも優先される「見出し」の投稿も使用しています.したがって、このクエリではそれらを除外しますThere it is in all it's glory. I'm currently not ordering by anything but that boolean meta value b/c it was the only way to get that level or sorting working. The site also uses 'headline' posts which take precedence over 'featured' posts. Thus I exclude them in this query
- 0
- 2013-08-13
- ian
-
1 回答
- 投票
-
- 2013-08-13
これを試してください:
$args = array( 'post_type' => 'post', 'meta_key' => 'pb_issue_featured', 'orderby' => 'meta_value', 'order' => 'DESC', 'posts_per_page' => $posts, 'paged' => $paged, 'paged' => 1, 'meta_query' => array( array( 'key' => 'headline', 'value' => 1, 'compare' => '!=' ) ) ); add_filter( 'posts_orderby', 'filter_query' ); $q = new WP_Query($args); remove_filter( 'posts_orderby', 'filter_query' ); function filter_query( $query ) { $query .= ', wp_posts.menu_order ASC'; return $query; }
Try this:
$args = array( 'post_type' => 'post', 'meta_key' => 'pb_issue_featured', 'orderby' => 'meta_value', 'order' => 'DESC', 'posts_per_page' => $posts, 'paged' => $paged, 'paged' => 1, 'meta_query' => array( array( 'key' => 'headline', 'value' => 1, 'compare' => '!=' ) ) ); add_filter( 'posts_orderby', 'filter_query' ); $q = new WP_Query($args); remove_filter( 'posts_orderby', 'filter_query' ); function filter_query( $query ) { $query .= ', wp_posts.menu_order ASC'; return $query; }
クエリでマルチレベルの順序付けを行う必要があります.問題は、SQLの場合と同様に、一方の値DESCともう一方のASCの順序にあります.次のSQLは、ターミナルで実行したときに必要なものを提供してくれるようです.
pb_issue_featured
はブール値です.必要な最終結果は、このフィールドのメタ値が1の投稿を上部に表示し、次に他のすべての投稿を表示するクエリです.次に、2番目の層の順序は指定されたmenu_order
です(私は投稿タイプの注文プラグインを使用しています).問題は、ブール値を高から低(1から0)に並べ替える必要があるが、menu_orderが逆であるということです.プラグインで最初に注文されるもののメニュー順序は1です.したがって、WP_Queryで組み込みの「orderby」を使用することはできません.誰か提案がありますか? 'posts_orderby'フィルターを調べましたが、取得できませんでした.どこに適用すべきか、またはどのようにトラブルシューティングできるかがよくわかりませんでした.それは私が持っていた方法で再注文しなかっただけです.
助けてくれてありがとう!関連する場合は実際のWP_Queryを投稿しますが、これはできるだけ短くしたいと思います.
クエリ引数: