WordPress rest api自定义端点未获取所有元数据,仅获取某些字段元数据
在WordPress网站中,我添加了一个自定义的post类型“inventory”。要将数据发布到该清单,需要创建一个EndRESTAPI端点。创建的终结点未从库存过帐类型获取所有元数据。在该库存过账类型中,我有一个输入字段来输入日期,但在使用端点获取数据时,我没有获取该日期字段数据。我尝试了register_rest_field()使用API端点获取元数据,但在postman中,我只获取了一些字段 我的HTML代码如下所示WordPress rest api自定义端点未获取所有元数据,仅获取某些字段元数据,wordpress,metadata,endpoint,wordpress-rest-api,woocommerce-rest-api,Wordpress,Metadata,Endpoint,Wordpress Rest Api,Woocommerce Rest Api,在WordPress网站中,我添加了一个自定义的post类型“inventory”。要将数据发布到该清单,需要创建一个EndRESTAPI端点。创建的终结点未从库存过帐类型获取所有元数据。在该库存过账类型中,我有一个输入字段来输入日期,但在使用端点获取数据时,我没有获取该日期字段数据。我尝试了register_rest_field()使用API端点获取元数据,但在postman中,我只获取了一些字段 我的HTML代码如下所示 <div class="from_date
<div class="from_date inventory-form-to-input">
<input type="text" style="border: 1px solid #ddd;" class="pac-date-picker hasDatepicker"
name="nets_availability_pickup_datetime[]" value="0000-00-00 00:00:00" autocomplete="off"
id="dp1605714040849">
</div>
<div class="to_date inventory-form-to-input">
<input type="text" style="border: 1px solid #ddd;" class="pac-date-picker hasDatepicker"
name="nets_availability_dropoff_datetime[]" value="0000-00-00 00:00:00" autocomplete="off"
id="dp1605714040850">
</div>
尝试使用以下代码创建自定义终结点并获取元数据:
function my_plugin_rest_route_for_post( $route, $post ) {
if ( $post->post_type === 'inventory' ) {
$route = '/wp/v2/inventory/' . $post->ID;
}
return $route;
}
add_action( 'rest_api_init', function () {
register_rest_field( 'inventory', 'quantity', array(
'get_callback' => function( $post_arr ) {
return get_post_meta( $post_arr['id'], 'quantity', true );
},
) );
register_rest_field( 'inventory', 'pricing_type', array(
'get_callback' => function( $post_arr ) {
return get_post_meta( $post_arr['id'], 'pricing_type', true );
},
) );
register_rest_field( 'inventory', 'general_price', array(
'get_callback' => function( $post_arr ) {
return get_post_meta( $post_arr['id'], 'general_price', true );
},
) );
register_rest_field( 'inventory', 'nets_availability_block_by', array(
'get_callback' => function( $post_arr ) {
return get_post_meta( $post_arr['id'], 'nets_availability_block_by',false);
},
) );
register_rest_field( 'inventory', 'nets_availability_pickup_datetime', array(
'get_callback' => function( $post_arr ) {
return get_post_meta( $post_arr['id'], 'nets_availability_pickup_datetime', true );
},
) );
/*used to get all metadata*/
register_rest_field( 'inventory', 'meta', array(
'get_callback' => function( $post_arr ) {
return get_post_meta( $post_arr['id'], '', true );
},
) );
})
请任何人建议我如何获取这些日期字段“网络可用性、拾取和日期时间”和“网络可用性、衰减和日期时间”。
提前感谢。您可以从我的一个旧代码中获得灵感。权限回调用于向API添加安全层,但通常是可选的。参数
args
也是可选的
register_rest_route('v2/boutique', '/order/status', array(
'methods' => 'POST',
'permission_callback' => array($this, 'check_access'),
'callback' => array($this, "api_check_order"),
'args' => [
'transaction_id', 'order_id'
],
));
public function check_access(WP_REST_Request $request)
{
// Check credential
// if(in_array($_SERVER['REMOTE_ADDR'], self::$available_ip)){
$creds = $request->get_header('token');
if (!empty($creds)) {
if (self::verify_token(self::$creds_pass, $creds)) {
return true;
} else {
return new WP_Error(
'rest_forbidden',
__('Error'),
array('status' => 404)
);
}
} else {
return new WP_Error(
'rest_forbidden',
__('Error'),
array('status' => 404)
);
}
}
我想知道您是否已经能够使用“网络可用性”和“网络可用性”和“网络可用性”检索日期时间来检索日期。不,我无法检索网络可用性、检索日期时间和网络可用性、接收日期时间。实际上,197794对于此id,我有两个日期,但没有。请显示您的代码您在meta中保存网络\可用性\拾取\日期时间和网络\可用性\衰减\日期时间的位置。您能帮助我为自定义表WordPress创建端点吗?如果不显示代码,我将帮不上忙,否则我可以向您推荐这些LNK
register_rest_route('v2/boutique', '/order/status', array(
'methods' => 'POST',
'permission_callback' => array($this, 'check_access'),
'callback' => array($this, "api_check_order"),
'args' => [
'transaction_id', 'order_id'
],
));
public function check_access(WP_REST_Request $request)
{
// Check credential
// if(in_array($_SERVER['REMOTE_ADDR'], self::$available_ip)){
$creds = $request->get_header('token');
if (!empty($creds)) {
if (self::verify_token(self::$creds_pass, $creds)) {
return true;
} else {
return new WP_Error(
'rest_forbidden',
__('Error'),
array('status' => 404)
);
}
} else {
return new WP_Error(
'rest_forbidden',
__('Error'),
array('status' => 404)
);
}
}