首页 > 解决方案 > XPath Wordpress 过滤

问题描述

基本上,我使用插件来显示房地产帖子,在此处输入图像描述

XML 包含带有 LET DATE 的数据。所以基本上,当他们到达这个日期时,我需要创建属性。但我不知道如何进行过滤,因为某些属性已在接下来的 2 个月内发布日期,我不希望它们显示。

在此处输入图像描述

任何想法?

标签: wordpressxpathfilter

解决方案


我想你在谈论WP All Import插件。您想要过滤XML文件以显示特定的帖子(LET_DATE_AVAILABLE未设置未来几个月的值)。

AFAIK XPath 支持WP All Import非常有限(仅限 1.0 版)。要过滤当前日期 ( 20200804) 之前的帖子,您可以尝试以下 XPath 表达式(您需要调整例如“ //POSTS[/PROPERTIES/LET_DATE_AVAILABLE[....]]”的开头)。

但我很确定它不会起作用,因为我们使用了许多函数(number, translate, substring)。

假设您有这些数据:

<ROOT>
<LET_DATE_AVAILABLE>
  <![CDATA[ 2020-08-18 00:00:00 ]]>
</LET_DATE_AVAILABLE>
<LET_DATE_AVAILABLE>
  <![CDATA[ 2020-11-18 00:00:00 ]]>
</LET_DATE_AVAILABLE>
<LET_DATE_AVAILABLE>
  <![CDATA[ 2020-12-18 00:00:00 ]]>
</LET_DATE_AVAILABLE>
<LET_DATE_AVAILABLE>
  <![CDATA[ 2020-07-18 00:00:00 ]]>
</LET_DATE_AVAILABLE>
</ROOT>

XPath 1.0 表达式(需要手动输入当前日期):

//LET_DATE_AVAILABLE[number(translate(substring(.,1,14),"-",""))<=20200804]

XPath 2.0 表达式(它根本不起作用。只是为了表明如果插件可以支持 XPath 2.0,它可能是可能的):

//LET_DATE_AVAILABLE[number(translate(substring(.,1,14),"-",""))<=number(translate(substring(concat(current-date(),""),1,10),"-",""))]

两种情况下的输出,1 个节点:

<LET_DATE_AVAILABLE>
 2020-07-18 00:00:00
</LET_DATE_AVAILABLE>

为了使它起作用,我认为您最好的选择是在PHP. 参考 :


推荐阅读