WP-CLI--元输入错误:警告:为Foreach()提供的参数无效

时间:2019-02-24 作者:dean2020

我使用这段代码从csv文件导入帖子,除了meta\\u输入(自定义字段)外,它工作得很好

while IFS=$\'\\t\', read -r col1 col2 col3 col4 col5 col6; \\
do \\
 wp post create \\
  --post_title="$col1" \\
  --post_content="$col2" \\
  --post_category="$col3" \\
  --post_author=2 \\
  --post_type=post \\
  --post_status=publish \\
  --meta_input=\'{"Length": $col4,"Height": $col5}\' \\
  ; done < ../import.csv
错误:警告:为/home/****/public\\u html/wp includes/post中的foreach()提供的参数无效。php在线3791Success:创建Post287。

使用这样的引号不会出现错误:

--meta_input=\'{"Length": "$col4","Height": "$col5"}\' \\
但这会添加文本字符串“$col4”,而不是变量$col4的值。

我尝试过在不同的地方使用无引号、单引号和双引号,但我不知道正确的语法。

第3791行在post中。php是:

        foreach ( $postarr[\'meta_input\'] as $field => $value ) {

1 个回复
SO网友:dean2020

这就是最终对我起作用的原因:

meta1=\'{"Length":\'
meta2=\',"Height":"\'
meta3=\'"}\'

while IFS=$\'\\t\', read -r col1 col2 col3 col4 col5 || [ -n "$col1" ]
do \\

meta=$meta1
meta+=$col4
meta+=$meta2
meta+=$col5;
meta+=$meta3
对于meta\\u输入行

    --meta_input=$meta \\