如何使用REST API按元数据进行搜索

时间:2019-03-22 作者:Lai32290

我有这样一个自定义帖子类型:

register_post_type(\'horario_busao\', [
    \'labels\' => [
        \'name\' => \'Horário Busões\',
        \'singular_name\' => \'Horário Busão\'
    ],
    \'public\' => true,
    \'has_archive\' => true,
    \'show_in_rest\' => true
]);
它包含一个元数据city, 我将其更新为:

return update_post_meta($postId, \'city\', $city);
所以我通过端点获取它/wp-json/wp/v2/horario_busao. 正如我在文档中看到的,它只包含查询参数search.

如何通过元数据进行搜索?

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

如何通过元数据进行搜索?

据我所知,目前还没有标准/内置的方法来做到这一点。但是有custom coding, 您可以做到:

您可以附加city 到查询字符串:

/wp-json/wp/v2/horario_busao?city=London
然后使用rest_{$this->post_type}_query 过滤器,用于设置要传递给的元键/值对WP_Query. 下面是一个示例:

add_filter( \'rest_horario_busao_query\', function( $args, $request ){
    if ( $city = $request->get_param( \'city\' ) ) {
        $args[\'meta_key\'] = \'city\';
        $args[\'meta_value\'] = $city;
    }
    return $args;
}, 10, 2 );

相关推荐

带有复选框的Metabox不起作用!

请帮帮我。我想在元框中显示用户的显示名称作为复选框。然后,我可以通过以下方式选择许多用户在帖子中显示一些内容:if (in_array(\'special userID\', get_post_meta($post->ID, \'U_S_C_users\', true)) == true) { // Show the content here echo \"ok\"; } 根据我的代码,我看到以下错误:warning: in_array() expects