Значение meta_query Postcode Array

Matthew Artiman спросил: 07 октября 2018 в 11:14 в: php

Итак, я провел немало поисков, и мне действительно не повезло с этим.

По сути, у меня есть настраиваемое поле 'postcode', которое мне нужно для поиска на основе _GET ['postcode'] в запросе URL. Когда страница загружается, она устанавливает аргументы на основе этих данных для создания определенного WP_Query.

Я использовал следующее для поиска почтового индекса, который в некоторой степени работает хорошо:

$args = array(
    'post_type' => 'property',
    'posts_per_page' => '10',
    'meta_key'  => 'price_variable',
    'orderby'   => 'meta_value_num',
    'order'     => $_GET['sort'],
    'paged' => $paged,
    'meta_query' => array(
            array( 'key' => 'postcode', 'compare' => 'REGEXP', 'value' => $_GET['postcode'] )
    )
);

Однако проблема возникает, когда мне приходится исключать двузначные почтовые индексы. Скажем, пользователь ищет HU1, но HU11, HU12 и HU13 тоже существуют, и это также внесет их все, если они содержатся в этих особенностях.

С этим было бы легче справиться, если бы оно было только в том случае, если почтовый индекс был только начальными 3/4 символами, но поскольку он является полным почтовым индексом, у вас есть почтовые индексы, такие как HU13 7DS и HU7 1PQ, поэтому я не могу выбрать точный поиск из него.

Я пробовал метод отношений, но время загрузки смешное (из-за необходимости делать это для каждой записи из HU10-HU19), и, к сожалению, я не могу сделать НЕ REGEXP для массива, чтобы сделать это быстрее ... например

array(
    'relation' => 'AND',
    array( 'key' => 'property_type', 'compare' => 'REGEXP', 'value' => $_GET['postcode'] ),
    array( 'key' => 'property_type', 'compare' => 'NOT REGEXP', 'value' => array('HU10', 'HU11', 'Etc'))
)

Любые предложения будут с благодарностью.

Также: I Я также пытался создать другое поле ACF, которое бы ограничивало символы почтового индекса до 4 символов для сортировки, но поскольку я использую импортер xml для данных, он переопределяет ограничение, поэтому, если его проще создать код для создания функции, которая создает новую версию этого кода, как это также будет полезно, так как я не могу найти способ сделать это.


0 ответов