Advanced Custom Fields: фильтрация записей по нескольким значениям полей

1 сент. 2013 г., 18:49:51
Просмотры: 14K
Голосов: 0

У меня есть следующая структура:

Пользовательский тип записи: q-and-a
Пользовательская таксономия: q_and_a_category
Термины таксономии: design, engineering, project-management

Я создаю три отдельных страницы, которые фильтруют пользовательские типы записей по их терминам. То есть одна страница для Design, одна для Engineering и другая для Project Management.

Я реализую это с помощью трех отдельных шаблонов страниц, вот так:

<?php

$args=array(
'post_type' => 'q-and-a',
'q_and_a_category' => 'design' //слаг термина пользовательской таксономии
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post();

?>

<?php the_title(); ?>

<?php endwhile; }?>

<?php wp_reset_query(); ?>

Но я пытаюсь создать единый шаблон страницы, где термин таксономии выбирается через меню "select", которое я настроил с помощью Advanced Custom Fields.

Я пробовал следовать руководству плагина ACF, пример 3:

http://www.advancedcustomfields.com/resources/how-to/how-to-query-posts-filtered-by-custom-field-values

Вот так:

<?php 

// аргументы
$args = array(
'numberposts' => -1,
'post_type' => 'q-and-a',
'meta_query' => array(
    'relation' => 'OR',
    array(
        'key' => 'q_and_a_category',
        'value' => '%design%',
        'compare' => 'LIKE'
    ),
    array(
        'key' => 'q_and_a_category',
        'value' => '%engineering%',
        'compare' => 'LIKE'
    ),
    array(
        'key' => 'q_and_a_category',
        'value' => '%project-management%',
        'compare' => 'LIKE'
    )
)
);

// получаем результаты
$the_query = new WP_Query( $args );

// Цикл
?>
<?php if( $the_query->have_posts() ): ?>

<?php the_title(); ?>

<?php endif; ?>

<?php wp_reset_query();  // Восстанавливаем оригинальные данные поста. ?>

Когда я пробую это, страница загружается во фронтенде, но записи не отображаются.

Есть какие-то предложения? Заранее спасибо.

2
Комментарии

Вы проверили реальные значения своих произвольных полей в таблице базы данных?

iEmanuele iEmanuele
2 сент. 2013 г. 00:31:12

@iEmanuele Спасибо за ответ. Не могли бы вы провести меня по шагам, как это сделать? Я предполагаю, что нужно использовать phpMyAdmin?

dadra dadra
2 сент. 2013 г. 04:39:46
Все ответы на вопрос 1
2

Я также разместил вопрос на форуме Advanced Custom Fields и получил ответ. Это оказалось проще, чем я думал.

http://support.advancedcustomfields.com/forums/topic/help-with-query-posts-filtered-by-multiple-field-values/

2 сент. 2013 г. 18:40:34
Комментарии

Вы просто сослались обратно на этот вопрос... пожалуйста, предоставьте детали решения вместо простой ссылки

shea shea
15 янв. 2014 г. 08:31:26

@bungeshea Ой, извините! Я только что исправил ссылку выше. Смотрите принятый ответ Джонатана внизу.

dadra dadra
15 янв. 2014 г. 16:38:28