Фильтрация XPath Wordpress - PullRequest
       25

Фильтрация XPath Wordpress

0 голосов
/ 04 августа 2020

В основном я использую плагин для отображения сообщений о недвижимости, введите здесь описание изображения

XML содержит эти данные с LET DATE. По сути, мне нужно создать свойства, когда они достигнут этой даты. Но я понятия не имею, как выполнить фильтрацию, потому что для некоторых свойств указаны даты в ближайшие 2 месяца, и я не хочу, чтобы они отображались.

введите здесь описание изображения

Есть идеи?

1 Ответ

0 голосов
/ 04 августа 2020

Я полагаю, вы говорите о плагине WP All Import. Вы хотите отфильтровать файл XML, чтобы отображать определенные c сообщения (где 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. Каталожные номера:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...