0

実装するのが非常に難しい関数があり、検索しても方法が見つかりませんでした

詳細は下記をご覧ください

「宿泊施設」というカスタム投稿タイプがあり、この投稿タイプには 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 );

誰かが私を助けてくれれば本当に感謝します

4

1 に答える 1