for 循环中内部调用的相同响应

问题描述 投票:0回答:1

我使用 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
而不是每次都不同,这不是我预期会发生的情况。

php wordpress wordpress-rest-api
1个回答
0
投票

我最终使用

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'])),
];
© www.soinside.com 2019 - 2024. All rights reserved.