【问题标题】:Update post meta with array without being nested使用数组更新帖子元而不嵌套
【发布时间】:2022-01-22 14:39:08
【问题描述】:

如果将逗号分隔的数组转换为普通数组并在 wordpress 中更新后元,我会得到一个不需要的额外嵌套数组层。有谁知道如何解决这一问题?或者在更新帖子元数据之前转换数组?

$array_1 = array (
  0 => '6801,6800,7310,6795',
);

$array_2 = array();

foreach ($array_1 as $value) {

    array_push($array_2 , explode(",",$value));
}

update_post_meta($post->ID, 'post_meta_field', $array_2);

//print_r($array_2);

}
add_action( 'save_post', 'my_save_post_function', 10, 3 );

输出如下:

array (
  0 =>  // I don't need this layer!!
  array (
    0 => 
    array (
      0 => '6801',
      1 => '6800',
      2 => '7310',
      3 => '6795',
    ),
  ),
)

但我需要这个:

   array (
        0 => 
        array (
          0 => '6801',
          1 => '6800',
          2 => '7310',
          3 => '6795',
        ),
    )

【问题讨论】:

  • 旁注:array_map(fn($v) => explode(',', $v), $array_1) 将代替循环工作
  • 好的,谢谢,但你也知道如何解决我的额外数组问题吗?
  • 只需推送数组 1 即可发布元数据

标签: php wordpress metadata


【解决方案1】:

假设您需要所有逻辑来在实际代码中生成数组,您可以简单地选择最外层数组的第一个元素:

update_post_meta($post->ID, 'post_meta_field', $array_2[0]);

【讨论】:

  • 这和单独使用第一个数组一样
猜你喜欢
  • 1970-01-01
  • 2019-05-23
  • 2019-05-18
  • 2015-02-26
  • 1970-01-01
  • 2022-01-22
  • 2018-10-22
相关资源
最近更新 更多