我使用 Wordpress 作为后端,并且正在为应用程序格式化一些存储的数据。我调用 for 循环来聚合数据,但即使我确保调用的 URL 不同,响应似乎是相同的。
foreach ($data as $attr) {
if (in_array(strtolower($attr['name']), $array)) {
$list = $this->getAttributeTerms($attr['id']);
$attributes[strtolower($attr['name'])] = $list;
}
}
/*...*/
private function getAttributeTerms($attributeID)
{
$request = new WP_REST_Request('GET', '/wc/v3/products/attributes/' . $attributeID . '/terms');
$resp = rest_get_server()->dispatch($request)->data;
var_dump('/wc/v3/products/attributes/' . $attributeID . '/terms');
var_dump($resp);
return array_map(function ($val) {
return ['id' => $val['id'], 'name' => $val['name']];
}, $resp);
}
响应是第一个调用的值
getAttributeTerms
而不是每次都不同,这不是我预期会发生的情况。
我最终使用
get_terms
函数返回所需的数据,而不是通过这种方式获取属性术语(我现在意识到这有点过分了)。
function slimTaxonomyData($el)
{
return ['id' => $el->term_id, 'name' => $el->name];
}
return [
'taxA' => array_map('slimTaxonomyData', get_terms(['taxonomy' => 'tax_a_tag', 'orderby' => 'name'])),
'taxB' => array_map('slimTaxonomyData', get_terms(['taxonomy' => 'tax_b_tag', 'orderby' => 'name'])),
];