当我使用WP_REST_RESPONSE将数组排序顺序传递给JS时,为什么它会更改?

时间:2021-06-07 作者:csaborio

我正在将查询的posts结果传递给JS,以便它可以在select中呈现数据。在我发出这样的结果之前:

return new \\WP_REST_Response( $return_data, 200 );
我在PHP中检查了数组,它生成了以下内容,很好(按名称排序)

array(8) {
  [1489]=>
  string(3) "Gus"
  [1499]=>
  string(3) "Mia"
  [1479]=>
  string(4) "Odin"
  [1488]=>
  string(5) "Pablo"
  [1490]=>
  string(8) "Salvator"
  [1491]=>
  string(6) "Scooby"
  [1492]=>
  string(5) "Snowy"
  [1485]=>
  string(6) "Wesley"
}
在我的JS中,我有以下代码:

this.request = $.ajax({
  url: `${homeURL}/wp-json/mdr/v1/${animalType}`,
  type: \'get\',
  dataType: \'json\',
  success: function (result) {
    console.log(result);
打印以下内容:

Object {
  1479: "Odin",
  1485: "Wesley",
  1488: "Pablo",
  1489: "Gus",
  1490: "Salvator",
  1491: "Scooby",
  1492: "Snowy",
  1499: "Mia"
}
为什么数组会转换为按ID排序的对象,而不是我从PHP传递它的顺序?

1 个回复
SO网友:csaborio

Fix by using:

return new \\WP_REST_Response( \\json_encode( $return_data), 200 );

相关推荐

您应该如何国际化分布在多个文件中但又构建在一个文件中的javascript?

我遵循了国际化的说明:https://developer.wordpress.org/block-editor/developers/internationalization/, 但它似乎与Gutenberg的开发工具没有很好的配合。它将在src 多个目录中的目录js 文件,并将其用作相对路径npm run build 将制作一个build/index.js 我正在排队的文件。这个wp i18n make-json languages --no-purge 将创建多个MD5无法工作的文件(可能是因为相对路