php WordPress休息api定制;丢弃端点,添加新字段,在api中显示cpt

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php WordPress休息api定制;丢弃端点,添加新字段,在api中显示cpt相关的知识,希望对你有一定的参考价值。

<?php 
function add_cpt_to_rest() {
    global $wp_post_types;

	$rest_post_types = [POST_TYPE_NAME1, POST_TYPE_NAME2];
	
	foreach ($rest_post_types as $cpt_name) {
        $wp_post_types[$cpt_name]->show_in_rest = true;		
	}
}

add_action( 'init', 'add_cpt_to_rest' );
<?php 

add_action( 'rest_api_init', 'register_api_hook' );
function register_api_hook() {
		
	$rest_post_types = [POST_TYPE_NAME1, POST_TYPE_NAME2]; // the field is added for these post types in the API
		
    register_rest_field(
        $rest_post_types,
        'field_name_here',
        array(
            'get_callback'    => 'return_field_name_here',
        )
    );
}

function return_field_name_here( $post, $field_name, $request ) {
    // return for example user (author) meta based on the post object
    $author_id = $post['author'];
    $field_name = get_user_meta( $author_id, 'field_name', true );	
	
    return $field_name;
}
<?php

add_filter( 'rest_endpoints', function( $endpoints ){
	$unwanted_routes = [
		'/wp/v2/users', 
		'/wp/v2/users/(?P<id>[\d]+)', 
		'/wp/v2/settings', 
		'/wp/v2/users/me', 
		'/wp/v2/comments', 
		'/wp/v2/comments/(?P<id>[\\d]+)', 
		'/wp/v2/statuses', 
		'/wp/v2/statuses/(?P<status>[\\w-]+)', 
		'/wp/v2/media', 
		'/wp/v2/media/(?P<id>[\\d]+)', 
		'/wp/v2/posts/(?P<parent>[\\d]+)/revisions', 
		'/wp/v2/posts/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)', 
		'/wp/v2/pages/(?P<parent>[\\d]+)/revisions', 
		'/wp/v2/pages/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)'];
	
    foreach ($unwanted_routes as $route) {
        if ( isset( $endpoints[$route] ) ) unset( $endpoints[$route] );
    }

    return $endpoints;
});

以上是关于php WordPress休息api定制;丢弃端点,添加新字段,在api中显示cpt的主要内容,如果未能解决你的问题,请参考以下文章

无法显示来自 Wordpress REST API 自定义端点的自定义字段

GraphQL 和 Zuul:Graphql 将作为一个休息端点工作,zuul 作为 api 网关

IBM MFP 8 推送通知休息 API 示例

WordPress 自定义 API 端点 POST 请求在 React 中失败

Wordpress 使用自定义端点 rest api 上传多个图像(离子作为最终用户)

使用自定义Wordpress API端点更新WooCommerce产品