最近心血来潮,想用 vue 和 axios 重构插件,但是 admin-ajax 不知道怎么地,axios 就是抓不到。整了很长时间好像是后端在头部少输出了东西。既然这样那我索性顺便也用一下 WordPress 的 rest api 呗,但是依然无法输出。自定义的 post type 并不能通过 rest api 直接访问,如果 WordPress 给已存在的 POST TYPE 文章类型添加 rest api 支持,需要改一下注册 post type 时的参数。
而我的 post type 是我事先在小宇宙里面封装好的函数注册的,嗯,你没有看错,小宇宙插件的服务器端,我也装了小宇宙。几经百度终于有种方法,能够直接修改已经注册好的 post type,下面是代码实例:
/**
* Add REST API support to an already registered post type.
*/
add_filter( 'register_post_type_args', 'my_post_type_args', 10, 2 );
function my_post_type_args( $args, $post_type ) {
if ( 'book' === $post_type ) {
$args['show_in_rest'] = true;
// Optionally customize the rest_base or rest_controller_class
$args['rest_base'] = 'books';
$args['rest_controller_class'] = 'WP_REST_Posts_Controller';
}
return $args;
}
/**
* Add REST API support to an already registered taxonomy.
*/
add_filter( 'register_taxonomy_args', 'my_taxonomy_args', 10, 2 );
function my_taxonomy_args( $args, $taxonomy_name ) {
if ( 'genre' === $taxonomy_name ) {
$args['show_in_rest'] = true;
// Optionally customize the rest_base or rest_controller_class
$args['rest_base'] = 'genres';
$args['rest_controller_class'] = 'WP_REST_Terms_Controller';
}
return $args;
}
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!