gpt4 book ai didi

wordpress - WP REST API orderby meta_value

转载 作者:行者123 更新时间:2023-12-04 01:44:09 24 4
gpt4 key购买 nike

需要能够按元值对 REST API 自定义帖子查询的结果进行排序。

这样做有困难。

我已将我的帖子类型提供给 REST API,并且可以按日期、标题等进行排序...

但是当我尝试 Post Meta 时它不起作用。

我添加了以下代码来尝试启用该功能,但默认为按日期排序。

function my_add_meta_vars ($current_vars) {
$current_vars = array_merge ($current_vars, array('meta_key', 'meta_value'));
return $current_vars;
}
add_filter ('query_vars', 'my_add_meta_vars');
add_filter ('rest_query_vars', 'my_add_meta_vars');

我的 REST API 查询是
mysite.com/wp-json/wp/v2/hh_equipment?filter[orderby]=meta_value_num&meta_key=equipment_price&order=desc

我曾尝试按照 here 的说明进行操作,但无济于事。

运行 WordPress 4.8 并尝试在 4.7 上测试无济于事

最佳答案

引用下面的方法,
我修改了现有路由以添加一个新的 args 条目,该条目验证允许的 meta_key 值。也不需要以这种方式修改其余查询变量。

add_filter('rest_endpoints', function ($routes) {
// I'm modifying multiple types here, you won't need the loop if you're just doing posts
foreach (['some', 'types'] as $type) {
if (!($route =& $routes['/wp/v2/' . $type])) {
continue;
}

// Allow ordering by my meta value
$route[0]['args']['orderby']['enum'][] = 'meta_value_num';

// Allow only the meta keys that I want
$route[0]['args']['meta_key'] = array(
'description' => 'The meta key to query.',
'type' => 'string',
'enum' => ['my_meta_key', 'another key'],
'validate_callback' => 'rest_validate_request_arg',
);
}

return $routes;
});

REF: https://github.com/WP-API/WP-API/issues/2308

关于wordpress - WP REST API orderby meta_value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44783932/

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