使用WP Job Manager的Reviews扩展名,我的meta字段为review_average
,它是`review_stars的平均值。我正在自定义WP REST API,以便可以通过正在构建的移动应用程序远程读取和写入注释。
我已经用
公开了这些字段 register_meta( 'comment', 'review_average', array( 'show_in_rest' => true,
'type' => 'string',
'description' => 'review_average',
'single'=> false));
register_meta( 'comment', 'review_stars', array( 'show_in_rest' => true,
'type' => 'string',
'description' => 'review_stars',
'single'=> false));
在REST API响应中的此字段中产生注释:
meta: {
review_average: [
"4"
],
review_stars: [
"Array"
]
},
(我似乎无法分解该数组,但是只有一个星星类别,所以平均值很好)
我已经编写了一个create_review
函数,该函数使用add_comment_meta
写入review_average
和review_stars
,成功地为评论添加了正确的星号。这两个元值都需要它才能工作。
function create_review($param) {
$id = wp_insert_comment(array('comment_post_ID' => $param['post_id'],
'comment_author' => $param['username'],
'comment_author_email' => $param['email'],
'user_id' => $param['user_id'],
'comment_content' => $param['content']));
if ($id) add_comment_meta($id, 'review_average', $param['rating']);
if ($id) add_comment_meta($id, 'review_stars', array('Your Rating'=>$param['rating']));
return get_comment($id);
}
我似乎无法将评分元信息纳入评论的回应中。在编写“索引”函数get_comments
的过程中,我已经编写了“显示”函数get_commment
:
function get_review($param) {
$id = $param['id'];
$info = get_comment($id);
$res = array(
'id' => $id,
'author_name' => $info->comment_author,
'author_email' => $info->comment_author_email,
'author_id' => $info->user_id,
'date' => $info->comment_date,
'rating' => $info->review_average
);
return $res;
}
响应包含rating: null
。与'rating' => $info->meta->review_average
以及在这两种情况下使用_review_average
的结果相同。
我为自定义posts
提供了另一个功能,其中job_listings
是我的应用程序中的customers
。job_listing
的元字段显示在默认REST中meta
下的API响应为_job_location
,但是在我的get_customer
函数中,$res['address'] = $info->_job_location;
可以正常工作!
如何获取该死的rating_average
元!!
答案 0 :(得分:0)
好吧,我的'rating' => get_comment_meta($id)
方法中的get_review
给了我这个:
"rating": {
"review_average": [
"4"
],
"review_stars": [
"a:1:{s:11:\"Your Rating\";s:1:\"4\";}"
]
}
然后
'rating' => get_comment_meta($id)['review_average'][0],
'rating_info' => get_comment_meta($id),
给我一个很好的完整
"rating": "4",
"rating_info": {
"review_average": [
"4"
],
"review_stars": [
"a:1:{s:11:\"Your Rating\";s:1:\"4\";}"
]
}
我正在学习php,所以我很想有人可以发表评论
get_comment_meta($id)->review_average
返回null但
get_comment_meta($id)['review_average']
有效。