2016-04-14 2 views
0

Я создаю shortcode с атрибутами и всеми атрибутами, работающими кроме event_category. Когда я добавляю атрибут «event_category», он не дает результата по добавленной категории.Параметр категории WP_Query не работает

Вот мои шорткод атрибуты

// Shortcode Default Array 
      $default_shortcode_attrs = array(
       'type' => 'upcoming', 
       'search' => 'true', 
       'event_category' => '', 
       'events_limit' => '-1', 
      ); 

    extract(shortcode_atts($default_shortcode_attrs, $attr)); 

Ниже приведены параметры запроса

 $args = array(
       'posts_per_page' => -1, 
       'post_type' => 'event_listing', 
       'post_status' => 'publish', 
       'event_listing_category'=> $event_category, 
      ); 
    $query = new WP_Query($args); 

"event_listing_category" это имя пользовательской таксономии. Пожалуйста, объясните, почему этот запрос не отображает события в соответствии с их категорией.

Любая помощь будет оценена по достоинству.

Благодаря

ответ

2

Вместо этого используйте tax_query, как показано ниже: Я предполагаю, что в категории $ event_category имеется только одна категория slug. Если у вас более одной категории slug в этой переменной, попробуйте преобразовать ее в массив и заменить весь массив ($ event_category) на массив.

$args = array(
      'posts_per_page' => -1, 
      'post_type' => 'event_listing', 
      'post_status' => 'publish', 
      'tax_query' => array(
           array(
          'taxonomy' => 'event_listing_category', 
          'field' => 'slug', 
          'terms' => array($event_category) 
          ) 
         ) 
     ); 
$query = new WP_Query($args); 
1

См http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters о том, как запрашивать пользовательские таксономии в вашем запросе.

Функция WP_Query не понимает в качестве аргумента 'event_listing_category', вам нужно сообщить wordpress, что это ваша таксономия, которую вы хотите.

+0

Я знаю это решение, но в моем предыдущем коде 'event_listing_category' => $ event_category этот аргумент массива работает, но теперь он перестает работать. – sehrish

+0

Я хочу сделать его работоспособным. – sehrish

Смежные вопросы