gpt4 book ai didi

php - WordPress 查询 : ORDER BY CASE WHEN

转载 作者:行者123 更新时间:2023-11-29 06:47:03 25 4
gpt4 key购买 nike

我想首先显示匹配特定 meta_key => cr_id 的帖子,然后按另一个 'meta_key' => 'cr_list_price' 排序,然后显示其余的也由 'meta_key' => 'cr_list_price' 排序的帖子。

这是我当前的代码,除了显示 cr_id = 4 的帖子外,它可以执行我想要的所有操作。

    $args = array(
'post_type' => 'properties',
'paged' => get_query_var( 'paged' ),
'meta_query' => array(
array(
'key' => 'cr_list_price',
'value' => array($minPrice, $maxPrice),
'type' => 'numeric',
'compare' => 'BETWEEN'
),
array(
'key' => 'cr_prop_bed',
'value' => $beds,
'compare' => '>='
),
),
'orderby' => 'meta_value_num',
'meta_key' => 'cr_list_price'
);

$loop = new WP_Query( $args );

如果我使用原始 MySQL,我会在查询中执行类似 ORDER BY CASE WHEN 的操作,但是我不确定如何或是否可以完成此操作使用 WordPress。

最佳答案

我想知道您是否可以通过在其中添加那个小扩展来为查询添加过滤器。我在想也许posts_orderby

函数

function filter_case($orderby = '') {
$orderby .= 'CASE WHEN [some conditions]';
return $orderby;
}

查询前

add_filter( 'posts_orderby', 'filter_case' );

$wp_query = new WP_Query($args);

remove_filter( 'posts_orderby', 'filter_case' );

我不能保证这会在第一次成功,但如果您认为它值得追求,它可以继续努力吗? WP_Query 过滤器列表是 here .

关于php - WordPress 查询 : ORDER BY CASE WHEN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18084199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com