Не могу понять, как использовать настраиваемое поле ACF с несколькими значениями в форме расширенного поиска WP.
Я работаю над многогранным поиском с использованием расширенных настраиваемых полей и расширенного поиска WP, и большинство проблемЯ столкнулся, я был в состоянии выяснить самостоятельно или в конечном итоге найти кого-то, кто делает что-то подобное.
Пока что, однако, я не могу найти пример того, как использовать настраиваемое поле с несколькимиценности.Я не знаю, как настроить форму WPAS для адресации каждого отдельного значения, или, если это вообще возможно.
В этом настраиваемом поле хранится только одно значение для записи, в этом случае meta_value в wp_postmeta - это простоожидаемая строка т.е.Кондо, Таунхаус, Отдельно стоящий и т. Д. Это нормально работает ...
$args['fields'][] = array( 'type' => 'meta_key',
'meta_key' => 'property_style',
'format' => 'multi-select',
'compare' => 'LIKE',
'data_type' => 'ARRAY<CHAR>',
'relation' => 'OR',
'label' => 'Property Style',
'values' => array(
'Condo Townhouse' => 'Condo Townhouse',
'Condo Apartment' => 'Condo Apartment',
'Detached' => 'Detached',
'Semi-Detached' => 'Semi-Detached',
'Freehold Townhouse' => 'Freehold Townhouse',
'Link' => 'Link',
'Other' => 'Other'
)
);
Это поле ACF принимает несколько значений.Хранить их не проблема.Множественный выбор, сгенерированный ACF, работает нормально, как и мой импортер, но я не могу понять, как настроить значения «data_type» и «сравнить» для фактического обращения к этим отдельным значениям ... Моя теория - «data_type»'должен отражать структуру массива, представленного строкой, хранящейся в meta_value (см. вопрос), но я не могу понять это ...
$args['fields'][] = array( 'type' => 'meta_key',
'meta_key' => 'basement',
'format' => 'multi-select',
'compare' => 'LIKE',
'data_type' => 'ARRAY<CHAR>',
'relation' => 'OR',
'label' => 'Basement',
'values' => array(
'Apartment' => 'Apartment',
'Crawl Space' => 'Crawl Space',
'Finished Walk Out' => 'Finished Walk Out',
'Finished' => 'Finished',
'Full' => 'Full',
'Half' => 'Half',
'None' => 'None',
'Other' => 'Other',
'Partial Basement' => 'Partial Basement',
'Partially Finished' => 'Partially Finished',
'Separate Entrance' => 'Separate Entrance',
'Unfinished' => 'Unfinished',
'Walk Out' => 'Walk Out',
'Walk-Up' => 'Walk-Up'
));
Метаданные для поля множественного выборавыглядит так, если это поможет:
--------------------------------------------------------------------------------------------+
| meta_id | post_id | meta_key | meta_value |
+---------+---------+-----------+-----------------------------------------------------------+
| 150263 | 5286 | _basement | field_5cf59fb01a564 |
| 150262 | 5286 | basement | a:1:{i:0;s:9:"Apartment";} |
| 150025 | 5276 | _basement | field_5cf59fb01a564 |
| 150026 | 5276 | basement | a:1:{i:0;s:9:"Apartment";} |
| 149792 | 5255 | _basement | field_5cf59fb01a564 |
| 149793 | 5255 | basement | a:2{i:0;s:8:"Finished";i:1;s:4:"Full";} |
| 149531 | 5238 | _basement | field_5cf59fb01a564 |
| 149532 | 5238 | basement | a:2{i:0;s:9:"Apartment";i:1;s:17:"Separate Entrance";} |
| 149278 | 5220 | _basement | field_5cf59fb01a564 |
| 149279 | 5220 | basement | a:2{i:0;s:9:"Apartment";i:1;s:8:"Finished";} |
| 149023 | 5199 | _basement | field_5cf59fb01a564 |
| 149024 | 5199 | basement | a:2{i:0;s:8:"Finished";i:1;s:17:"Separate Entrance";} |
Я знаю, что делаю это неправильно и не могу найти даже намека на информацию о том, что мне следует делать вместо этого.Я не уверен, что WP Advanced Search все еще находится в разработке, но он все еще работает с последним выпуском WP, так что на самом деле меня это не беспокоит.