メタ値で並べ替えるが、メタ値を持たない投稿を含める
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 …