是否对多个帖子类型执行REST_POST_QUERY?

时间:2018-04-05 作者:jonny-harte

如何让rest\\u post\\u查询过滤器跨多个帖子类型工作?我想修改所有帖子类型的orderby,但目前我必须在过滤器名称中指定“post”,这意味着它对我创建的自定义帖子类型不起作用?

add_filter("rest_post_query", function ($args) {

    $args["orderby"] = "menu_order";
    $args["order"] = "ASC";

    return $args;

}, 10, 2);

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

将回调定义为一个命名函数,并为每个post类型分别挂接它。

function wpse_299908_order_rest_query( $args ) {
    $args[\'orderby\'] = \'menu_order\';
    $args[\'order\'] = \'ASC\';

    return $args;
}
add_filter( \'rest_post_query\', \'wpse_299908_order_rest_query\' );
add_filter( \'rest_page_query\', \'wpse_299908_order_rest_query\' );
没有自动应用于所有端点的过滤器,原因可能与您无法一次查询多个帖子类型相同。As discussed API开发期间:

由于每个自定义post类型的建模方式不同,因此无法从v2中的同一端点获取它们。从概念上讲,这就像从同一个端点获取用户和帖子——这没有多大意义。

结束

相关推荐

Php致命错误:无法将WP_REST_RESPONSE类型的对象用作wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php中

我向WordPress添加了一个自定义端点,如下所示: add_action( \'rest_api_init\', function () { register_rest_route( \'menc/v1\', \'/crosscat/(?P[\\w-]+)/(?P[\\w-]+)\', array( \'methods\' => \'GET\', \'callback\' => \'dept_cat_api\',&#x