我的帖子有一堆自定义字段,目前按“超长”排序
我有另一个名为“over-lenghtin”的自定义字段。
我想继续按超长对我的帖子进行排序,但如果 2 个帖子在该字段中具有相同的值,我也想按超长对它们进行排序。
我想知道如何修改我的查询或添加一个函数来执行它?
这是当前查询
$loop = new WP_Query( array ( 'post_type' => 'new', 'orderby' => 'meta_value_num', 'meta_key' => 'over-length', 'meta_query' => array( array( 'key' => 'over-make', 'value' => 'Doral', 'compare' => 'LIKE') ) ) );
好的,所以我已经通过查询重写以使用 $wpdb->get_results,但是对于如何按 2 个不同的自定义字段进行排序,我仍然有点困惑。
这是我的新查询:
$wpdb->get_results("SELECT * FROM $wpdb->posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND wp_posts.post_status = 'publish' AND wp_posts.post_type = 'new' AND wp_postmeta.meta_value = 'Doral' ORDER BY");
现在我需要按我的自定义字段“超长”然后“超长”进行排序
我现在似乎有这个工作,这是我的最终查询:
$wpdb->get_results("SELECT * FROM $wpdb->posts
LEFT JOIN $wpdb->postmeta AS overlength ON(
$wpdb->posts.ID = overlength.post_id
AND overlength.meta_key = 'over-length'
)
LEFT JOIN $wpdb->postmeta AS overlengthin ON(
$wpdb->posts.ID = overlengthin.post_id
AND overlengthin.meta_key = 'over-lengthin'
)
LEFT JOIN $wpdb->postmeta AS overmake ON(
$wpdb->posts.ID = overmake.post_id
AND overmake.meta_key = 'over-make'
)
WHERE wp_posts.post_status = 'publish' AND wp_posts.post_type = 'new' AND overmake.meta_value = 'Doral' ORDER BY 0+overlength.meta_value DESC, 0+overlengthin.meta_value DESC");