2014-12-12 2 views
0

У меня есть пользовательский запрос WP, в котором перечисляются пользовательские типы сообщений. Я пытаюсь настроить фильтры для фильтрации списков по пользовательской таксономии.Не могу получить tax_query для работы

Моя установка запрос выглядит следующим образом:

// WP_Query arguments 
$args = array (
    'post_type'    => 'opps', 
    'post_status'   => 'publish', 
    'pagination'    => true, 
    'posts_per_page'   => $postsperpage, 
    'posts_per_archive_page' => $postsperpage, 
    'ignore_sticky_posts' => true, 
    'order'     => 'DESC', 
    'orderby'    => 'date', 
    'cache_results'   => true, 
    'update_post_meta_cache' => true, 
    'update_post_term_cache' => true, 
    'paged'     => $paged, 
    'tax_query'    => array(
            array(
             'taxonomy' => 'sector', 
             'field' => 'slug', 
             'terms' => 'business-services' 
            ), 
           ) 
); 

Таким образом, в приведенном выше примере, я должен получить только сообщения с систематикой «сектором» с улитками «бизнес-услугами», но все сообщения от OPPS ТАМОЖЕННОГО ПОСТА типов» вместо этого перечислите.

Я искал всюду в stackoverflow и выше, но я просто не могу понять, что я делаю неправильно.

ответ

0

Ваш код выглядит отлично.

У меня была эта проблема раньше, потому что wordpress не синхронизирует термины таксономии до поздней фазы инициализации. Вы пробовали запустить этот код в шаблоне, после вызова get_header() или wp_head()? Если вы не попробуете это, он должен работать тогда. Я знаю, если бы я повторил это в функции. Php для тестирования, это не сработает, потому что Wordpress еще не синхронизировал налоговые условия.

0

Вы должны действительно взглянуть на the codex (WP_Query) при создании пользовательских запросов. По мере того, как ваш код стоит, он потерпит неудачу. У вас есть следующие вопросы

  • pagination не является допустимым параметром для WP_Query.

  • Вы не можете использовать posts_per_page и posts_per_archive_page вместе

  • Вам не нужно устанавливать значения параметров, заданные по умолчанию. Ненужные параметры, используемые в коде, который по умолчанию значения по умолчанию order, orderby, post_status, cache_results, update_post_meta_cache и update_post_term_cache

Там нет липкого пост функциональности для пользовательских типов почтовых. просто удалите параметр ignore_sticky_post

Ваш код должен выглядеть примерно так (я надеюсь, что переменные определяется)

// WP_Query arguments 
$args = array (
    'post_type'    => 'opps', 
    'posts_per_page'   => $postsperpage, 
    'paged'     => $paged, 
    'tax_query'    => array(
     array(
      'taxonomy' => 'sector', 
      'field' => 'slug', 
      'terms' => 'business-services' 
     ), 
    ) 
); 
Смежные вопросы