Да, с помощью плагина "Advanced Custom Fields" вы можете получить все записи, у которых хотя бы одно из значений массива метаполя равно указанному.
Для этого вам потребуется создать кастомный запрос, используя возможности плагина "Advanced Custom Fields" и стандартные функции WordPress.
Первым шагом вам необходимо создать поле типа "Повторитель" или "Группа" для записей, в котором вы будете хранить значения массива. Затем, при создании записи, вы будете заполнять это поле с помощью интуитивно понятного интерфейса плагина.
Когда поле массива будет заполнено значениями, вы можете использовать WP_Query для создания запроса, который найдет все записи, соответствующие вашему критерию. Для этого используйте параметры 'meta_query' и 'relation' внутри WP_Query:
$args = array( 'post_type' => 'your_custom_post_type', // замените на свой тип записи 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'your_array_field', // замените на имя вашего поля массива 'value' => 'your_value', // замените на значение, которое нужно найти в массиве 'compare' => 'LIKE', ), ), ); $query = new WP_Query( $args ); if ( $query->have_posts() ): while( $query->have_posts() ): $query->the_post(); // выводим содержимое каждой найденной записи endwhile; endif; wp_reset_postdata();
В этом коде мы создаем массив аргументов $args
, в котором указываем тип записи и meta_query
с параметром relation
установленным в OR
, что означает, что будет найдено хотя бы одно значение, удовлетворяющее заданному условию. Внутри meta_query
мы указываем ключ метаполя вашего массива, значение, которое нам нужно найти в этом массиве, и оператор сравнения 'LIKE'
.
Далее мы создаем объект WP_Query с этими аргументами $args
и выполняем запрос. Затем мы выводим содержимое каждой найденной записи в цикле while.
Не забудьте использовать функцию wp_reset_postdata()
для восстановления оригинальных данных после окончания цикла.
Теперь вы знаете, как использовать плагин "Advanced Custom Fields" и WP_Query для получения всех записей, у которых хотя бы одно из значений массива метаполя равно указанному.