php - 无法访问评论元?
问题描述
设置
使用 WP Job Manager 的评论扩展,我对元字段进行评论,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
有一个元字段显示在 as 下的默认 REST API 响应meta
中_job_location
,但在我的get_customer
函数中,$res['address'] = $info->_job_location;
工作得很好!
我如何获得该死的rating_average
元!?
解决方案
好吧,'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']
作品。
推荐阅读
- android - 如何使用 Mockito 或 Roboelectric 为以下代码编写测试
- autodesk-bim360 - 使用 BIM 360 Field API(旧版)获取清单位置
- c# - string.split 对大量文本有效吗
- python - 我想知道是否有可能用任何方法(如 takewhile 或其他方法)打破列表理解
- python - 使用 K 折交叉验证平衡不平衡数据集
- java - 这是创建接受任何类型集合的方法的最佳选择吗?
- angular - Angular 测试调试元素查询有时会产生 null - 有时不会
- python - 在python中解析多维Json
- python-3.x - 矩阵有 np.arange 函数吗?
- javascript - JavaScript 如何使用通配符替换