我正在使用WP All Import来导入产品。尝试映射产品变体图像时遇到了一些问题。
我的XML文件包含<ItemNo>
每个变体都具有相同的产品名称,变体由这种方式由不同的项目编号处理
<ItemNo>450042-02</ItemNo>
<ItemNo>450042-05</ItemNo>
<ItemNo>450042-07</ItemNo>
这些是图片网址
/ImageServices/image.ashx?itemid=450042&config=02&format=l&imagenumber=1
如果你打破了这个
450042&config=02
将与450042-02 450042&config=05
符合450042-05 等等
&format=l
,&format=s
(这表示大图像或小图像
而且我认为此时图像编号无关紧要)如果我将下面放在图片网址
中/ImageServices/image.ashx?itemid={ItemNo[1]}&format=l&imagenumber=1
它将输出以下无效的
https://domain.com/ImageServices/image.ashx?itemid=450042-02&format=l&imagenumber=1
所以我需要将连字符更改为&config=
所有导入都接受自定义函数,任何人都知道只在图片部分-
中将&config=
替换为{ItemNo[1]}
的函数吗?
答案 0 :(得分:0)
您似乎正在努力实现以下目标:
$string = '450042-02';
echo "\n";
// part before the -, itemid
print_r(substr($string, 0, strpos($string, "-")));
echo "\n";
//part after the -, config
print_r(substr($string, strpos($string, "-") + 1));
echo "\n";
虽然我从未使用过WP All Import 但是在这里引用http://www.wpallimport.com/documentation/advanced/execute-php/
似乎你可以在[]
方括号内运行php函数。
所以你的字段映射应该变得像
/ImageServices/image.ashx?itemid=[substr({ItemNo[1]}, 0, strpos({ItemNo[1]}, "-"))]&config=[substr({ItemNo[1]},strpos({ItemNo[1]}, "-") + 1)]&format=l&imagenumber=1
我不确定,是否可以处理+运算符等,但你可以试试。
如果它不起作用,那么你可以使用上面的代码(substr逻辑)创建自定义函数,如get_my_itemid($string)
,get_my_config($string)
,然后在你的Img中使用它。网址而不是substr