首页 > 解决方案 > Wordpress Rest Api,帖子类型已创建但未显示在帖子中

问题描述

我创建了一个名为 properties 的自定义帖子类型,其键为“estate_property”我想使用 wordpress 的 Rest API 为这个帖子类型创建属性,因为我已经使用它注册了一个新路由。

function register_property_post_rest_api() {

    register_rest_route( 'api', '/property', array(
        array(
            'methods' => WP_REST_Server::CREATABLE,
            'callback' => 'api_create_property_post',
        ),
    ));

}
add_action('rest_api_init', 'register_property_post_rest_api');

我正在用这个创建属性

function api_create_property_post( $request ) {

    $user = wp_get_current_user();
    $user_id = $user->ID;

    if ( $user_id > 0 ) {

        // Create Post
        $response = array(
            'post_author' => $user_id,
            'post_type' => 'estate_property',
            'post_title' => 'Property API',
            'post_content' => 'Property Content',
            'post_status' => 'publish',
        );

        // Insert Post
        $property_id = wp_insert_post( $response );
        
        // Response Property ID
        $response['id'] = $property_id;

    } else {

        // Unauthentication error
        $response = new WP_Error( 'Incorrect Permissions', 'Authorization Token is missing', array( 
                'status' => 401
            )
        );

    }

    return rest_ensure_response( $response );

}

应该注意的是,在编辑器中,该属性显示为已发布并发布,但它仍然没有出现在所有出版物中,因此只能使用 id 输入,或者如果 url 先前已知,如果我输入并更新属性wordpress 编辑器然后它已经出现在所有出版物和搜索中。

我用 Wordpress 的“帖子”试过这个,但没有发生。

我不确定为什么会这样。

这是我的要求

var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer token-here");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://mi-domain.com/wp-json/api/property", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

我使用的任何类型的状态都会发生这种情况,我想我需要一些东西,但我不确定它是什么,有谁知道我该如何解决这个问题?

提前感谢您的回答。

标签: wordpressapipost

解决方案


推荐阅读