タグ付けされた質問 「order」

1
WP_Query-メタ値による結果の順序付け
私は周りをチェックしましたが、現時点で有効な答えを見ていません。次の引数を持つWP_Queryがあります。 $args = array( 'post_status' => 'publish', 'post_type' => 'listing', 'meta_key' => 'client_feedback_score', 'orderby' => 'client_feedback_score', 'order' => 'DESC' ); $query = new WP_Query($args); 結果をカスタムの投稿フィールド「client_feedback_score」で並べ替えます。しかし、これはうまくいかないようです...誰かが私を正しい方向に向けることができますか? 編集(解決済み): Miloの応答のおかげで、数値メタ値で順序付けするための作業コードは次のとおりです。 $args = array( 'post_status' => 'publish', 'post_type' => 'listing', 'meta_key' => 'client_feedback_score', 'orderby' => 'meta_value_num', 'order' => 'DESC' );

12
メタ値で並べ替えるが、メタ値を持たない投稿を含める
pre_get_postsフィルターを使用して組み込みのWP検索を変更し、ユーザーがさまざまなフィールドで投稿(カスタム投稿タイプの束を含む)をソートできるようにしました。 私が抱えている問題は、メタ値でソートするようにWPに指示すると、そのメタ値が設定されていないすべての投稿が除外されることです。これにより、「投稿」には「価格」が設定されていないが「アイテム」には設定されているため、ソートを「価格」から「日付」に変更すると、結果の数が変更されます。 これは私が望むものではないので、すべての投稿を含める方法があるかどうかを知りたいです-私がソートしているメタ値を欠いているものも含めて-そして値のないものを最後に置きます。 複数のフィールドでソートする方法は知っていますが、それは役に立ちません。 ありがとう 私がこの質問を持っているのは私だけではないようです:wp_queryの引数に特定のmeta_keyのある投稿とない投稿の両方を含める方法?しかし、解決策はありません。 更新 私は答えを試してみましたが、私が正しく理解したかどうかはわかりません。ここに私が今持っているものがあります: <?php function my_stuff ($qry) { $qry->set('meta_query', array(array( 'key' => 'item_price', 'value' => '', 'compare' => 'NOT EXISTS' ))); $qry->set('orderby', 'meta_value date'); # Sorting works with meta_value as well as meta_value_num - I've tried both $qry->set('order', 'ASC DESC'); $qry->set('meta_key', 'item_price'); } メタ値は数値です(名前が示すように価格を保存するために使用されます) 更新2 …


2
ランダムに並べられた投稿を正しくページネーションすることは可能ですか?
Wordpressサポートでこの問題を見つけましたが、残念ながらこのトピックは閉じられました。これと同じ問題があります...(以下をお読みください) メンバーがお気に入りの本、映画、歌などのようなものを推薦できるサイトを作成しました。この問題のために、例として映画ページを使用します。 「ムービー」ページは、最終的にカスタムページテンプレートであり、ワードプレスに、「ムービー」カテゴリ(カテゴリ31)が付与されたすべての投稿のランダムリストを表示するように要求します。以下のコードを使用して、これらの映画のタイトルをランダムな順序で表示します。 <?php $rand = new WP_Query("cat=31&showposts=-1&orderby=rand"); while($rand->have_posts()) : $rand->the_post(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?> <?php endwhile; ?> 問題は、リストがかなり長くなっていることであり、私はそれをそれぞれ約10本の映画の2つ以上のページに分割したいと思います。これを実現するために、以下のコードを使用しました。 <?php $page = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("cat=31&orderby=rand&showposts=10&paged=$page"); while ( have_posts() ) : the_post() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?> …
30 pagination  order 

2
Orderbyとmeta_value_numを使用して、最初に数字を、次に文字列を並べ替えます
製品のリストがあり、それぞれが「2.50」や「5.00」などのテキストとして保存されているカスタムフィールドに価格があり、価格で並べ替えるカスタムクエリでページに表示しています。 if(!$wp_query) { global $wp_query; } $args = array( 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => 'ASC' ); query_posts( array_merge( $args , $wp_query->query ) ); これは価格に対しては正常に機能しますが、一部の価格は「POA」であり、最後に表示したいと思いますが、「POA」が最初に表示されるような上記の注文です。 これを変更する方法はありますか、または後で配列を並べ替えて「POA」価格を最後に付けるために使用できる簡単なハックがありますか?
16 order 

4
クエリを並べ替えるときに、最初の記事(「a」、「an」、「the」など)を無視しますか?
私は現在、音楽タイトルのリストを出力しようとしていますが、タイトルの最初の記事をソートで無視するようにしたい(しかし、まだ表示したい)のです。 たとえば、バンドのリストがある場合、WordPressでは次のようにアルファベット順に表示されます。 ブラックサバス レッド・ツェッペリン ピンク・フロイド ビートルズ キンクス ローリングストーン 薄いリジー 代わりに、次のように最初の記事「The」を無視してアルファベット順に表示したいと思います。 ビートルズ ブラックサバス キンクス レッド・ツェッペリン ピンク・フロイド ローリングストーン 薄いリジー 昨年のブログエントリで解決策を見つけましたfunctions.php。 function wpcf_create_temp_column($fields) { global $wpdb; $matches = 'The'; $has_the = " CASE WHEN $wpdb->posts.post_title regexp( '^($matches)[[:space:]]' ) THEN trim(substr($wpdb->posts.post_title from 4)) ELSE $wpdb->posts.post_title END AS title2"; if ($has_the) { $fields .= ( …

2
カスタム投稿タイプ-注文フィールド
カスタム投稿タイプに、ページで利用可能な「注文」フィールドを含める方法はありますか? 「順序」フィールドの重複値を防ぐ組み込みロジックはありますか? このアイデアは、ユーザーが指定した順序でカスタム投稿タイプをソートし、次に文字列ベースのカスタムフィールドでアルファベット順にソートできるようにすることです。

1
カスタムWP_QueryのDESC、ASCで注文
クエリでマルチレベルの順序付けを行う必要があります。問題は、SQLのように1つの値をDESCに、もう1つをASCに順序付けることです。次のSQLをターミナルで実行すると、必要なものが得られるようです。 SELECT DISTINCT * FROM wp_posts INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id WHERE wp_posts.post_type = 'post' AND wp_postmeta.meta_key = 'pb_issue_featured' AND wp_posts.post_status = 'publish' ORDER BY wp_postmeta.meta_value DESC, wp_posts.menu_order ASC; pb_issue_featuredブール値です。私が必要とする最終結果は、このフィールドのメタ値が1である投稿を上部に表示するクエリです。次に、2番目の層の順序が指定されていますmenu_order(私は投稿タイプの注文プラグインを使用しています)。 問題は、ブール値を高から低(1から0)に並べる必要があるのですが、menu_orderはその逆です。プラグインで最初に注文されるもののメニュー順序は1です。そのため、WP_Queryで組み込みの「orderby」を使用しても機能しません。誰か提案がありますか?「posts_orderby」フィルターを調べましたが、取得できませんでした。それがどこに適用されるべきか、どうやってそれをトラブルシューティングできるのか本当にわかりませんでした。それは私がそれを持っていた方法を再注文しなかっただけです。 助けてくれてありがとう!関連がある場合は、実際のWP_Queryを投稿しますが、できる限り短くしたいと考えています。 クエリ引数: $args = array( 'post_type' => 'post', 'meta_key' => 'pb_issue_featured', 'orderby' => 'meta_value', 'order' => 'DESC', …
8 wp-query  mysql  order 

2
並べ替え:orderby meta_value_num THENを使用したカスタムクエリ
次の条件に一致するカスタム投稿タイプクエリを実行しようとします。 最初に映画を降順で年順に並べ替え、 その後(年の「内部」の順序で)タイトルごとにアルファベット順に並べ替えます。 希望する出力: 映画タイトルA、2006 映画タイトルZ、2006 ... 映画タイトルA、1996 映画タイトルZ、1996 次のコードを使用します。 $wp_query = new WP_Query(); $wp_query->query( array( 'post_type' => 'movies', 'distribution' => 'companyA', 'meta_key' => 'year', 'orderby' => 'meta_value_num title', 'order' => 'DESC', 'posts_per_page' => -1, 'post_status' => 'publish', )); 私はいくつかのことを試しましたが、この「逆」の結果しか得られません。 映画タイトルA、1996 映画タイトルZ、1996 ... 映画タイトルA、2006 映画タイトルZ、2006 DESC、ASCを変更すると、タイトルのソートのみが変更されます。しかし、タイトルではなく年に適用する必要があります。 2つのorderby値を使用する正しい方法ですか?または、meta_queryまたはカスタムSQLを使用する必要がありますか? 事前にTHX! これが結果のSQLクエリです $GLOBALS['wp_query']->request …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.