実装するのが非常に難しい関数があり、検索しても方法が見つかりませんでした
詳細は下記をご覧ください
「宿泊施設」というカスタム投稿タイプがあり、この投稿タイプには 2 つのカスタム フィールドがあり、1 つは「max_sleep_1」、もう 1 つは「max_sleep_2」です。
この投稿タイプの一部の投稿では「max_sleep_1」が設定され、他の投稿では「max_sleep_2」が設定されていますが、すべての投稿を最大スリープ数 (この 2 つのフィールド間の最大値) で並べ替える必要があります。
例えば
post1 の「max_sleep_1」は 1 に設定され、「max_sleep_2」は 0 に設定されています
post2 では、「max_sleep_2」が 2 に設定され、「max_sleep_1」が 0 に設定されています
post3 では、「max_sleep_1」が 3 に設定され、「max_sleep_2」が 0 に設定されています
したがって、投稿の最終的な順序は post1->post2->post3 である必要があるため、問題がわかるように、「max_sleep_1」が 0 に設定されている場合、「max_sleep_2」を使用して並べ替える必要がある場合、2 つのフィールドで並べ替えています
私の言っていることが理解できると思います
私は探していましたが、適切な解決策を見つけることができませんでした.WP_queryの結果を取得した後、この2つのフィールドをマージしようとしましたが、今のところ不可能です.
現在、メタ キーを使用して 1 つのフィールドでのみ注文でき、結果は以下のように post1->post3->post2 になります。
$args = array(
'post_type' => 'accommodation',
'paged' => get_query_var('paged'),
'post_parent' => $parent,
'meta_key' => 'max_sleep_1',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
$the_query = new WP_Query( $args );
誰かが私を助けてくれれば本当に感謝します