我注册了一个名为wasb_message
具有show_in_rest
设置为true
和rest_base
设置为\'messages\'
因此,可以在端点处访问资源https://mydomain/wp-json/wp/v2/messages(使用WP_REST_Posts_Controller
类)。自定义post类型有一个名为wasb_status
对于整数值,如何添加自定义参数,以便在对端点执行get请求时https://mydomain/wp-json/wp/v2/messages?status=2我使用wasb_status
等于2而不注册新路由?
我读过this code reference page 和this old question 但我无法让它工作,使用邮递员发送我收到的get请求:
{
"code": "rest_invalid_param",
"message": "Parametro(i) non valido(i): status",
"data": {
"status": 400,
"params": {
"status": "Stato non consentito."
},
"details": {
"status": {
"code": "rest_forbidden_status",
"message": "Stato non consentito.",
"data": {
"status": 401
}
}
}
}
}
SO网友:icolumbro
我解决了以下问题this answer 和写作:
public function query_wasb_messages_by_status( $args, $request ) {
if ( ! is_null( $request->get_param( \'message_status\' ) ) ) {
$args[\'meta_query\'] = array(
\'_wasb_message_status\' => array(
\'key\' => \'_wasb_message_status\',
\'value\' => (int) $request->get_param( \'message_status\' ),
\'compare\' => \'=\',
\'type\' => \'numeric\'
)
);
}
return $args;
}
add_filter( \'rest_wasb_message_query\', array( $this, \'query_wasb_messages_by_status\'), 10, 2 );
我的问题是我用过
status
作为参数名称,但
status
已存在帖子(“草稿”、“已发布”等)所以我把名字改成
message_status
...