我正在Wordpress产品网站上实现一个库存更新程序,该网站通过其自定义api与第三方网站集成。我们将有很多人更新第三方网站,我需要在我们的产品网站上设置自动更新,以便对第三方网站上的库存所做的更改反映在我们的产品网站上。
我几乎所有的东西都很有魅力(cron job等),但我在更新post\\u标题时遇到了一些困难。保存给定帖子(产品帖子类型)时,Wordpress正在清理帖子标题。我希望能够在第三方网站上更新产品名称,然后将新值自动保存到我们的产品网站。我正在使用wp\\u update\\u post来完成以下任务:
$updatedPostId= wp_update_post(
array(
\'ID\' => $thisId,
\'post_title\' => $newTitle
)
);
我的问题在于,如果不需要的话,我不想重新保存每个产品帖子的post\\u标题(目前,这使我的cron作业的运行时间增加了一倍多)。因此,我试图将$newTitle与Wordpress中当前的标题进行比较。我正在使用php函数“strcmp”进行此操作:
if(
($newTitle!=\'\')&&
(strcmp($newTitle, get_the_title($thisId))!=0)
)
如果该语句的计算结果为true,那么我调用上面显示的wp\\u update\\u post。我的问题是,来自第三方网站的产品名称的价值评估不等于Wordpress产品网站post\\u标题中的许多产品(网站上有大约2000个产品,其中大约100个产品未通过此检查)。我查看了标题本身,在大多数情况下,它们看起来都是一样的:
Eg:
From 3rd party: Arnold Iron Whey [2 LBS] [Cookies & Cream]
From Wordpress: Arnold Iron Whey [2 LBS] [Cookies & Cream]
(Note: My text editor highlights the ampersand and the space immediately after it
in the 3rd-party product name but not in the one from Wordpress)
不过strcmp的计算结果并不是零,所以我知道它们之间有一些只有计算机才能理解的不同之处。太糟糕了,我看不见的字符。
因此,我需要对第三方网站上的产品名称进行“清理”,以便在通过strcmp时,其评估结果与已清理的Wordpress post\\u标题相同。要做到这一点,我需要做什么?我找到了一个选项(sanitize\\u text\\u field),可以消除大约20个此类误报,但我已经为此工作了大约半天,我还没有找到一个有效的答案。
现在,随着我每次运行cron\\u作业,这大约100种产品的post\\u标题都被一次又一次地保存下来,我宁愿避免这样做。如果可能的话。