wp所有导入自定义函数来替换图像URL中的属性

时间:2016-02-25 00:16:19

标签: php wordpress

我正在使用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]}的函数吗?

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