2016-01-29 2 views
0

Я работаю по разработке плагин и мое имя плагина plugindev .I имеет нестандартный тип поста называется team .I иметь пользовательские таксономии Team_Category который регистрируемые этого кодПользовательская таксономия и проблема tax_query?

/***************************taxonomy****************************/ 
add_action('init', 'create_team_taxonomies', 0); 
function create_team_taxonomies() { 
    // Add new taxonomy, make it hierarchical (like categories) 
    $labels = array(
     'name'    => _x('Team_Categories', 'taxonomy general name'), 
     'singular_name'  => _x('Team_Category', 'taxonomy singular name'), 
     'search_items'  => __('Search Team_Categories'), 
     'all_items'   => __('All Team_Categories'), 
     'parent_item'  => __('Parent Team_Category'), 
     'parent_item_colon' => __('Parent Team_Category:'), 
     'edit_item'   => __('Edit Team_Category'), 
     'update_item'  => __('Update Team_Category'), 
     'add_new_item'  => __('Add New Team_Category'), 
     'new_item_name'  => __('New Team_Category Name'), 
     'menu_name'   => __('Team_Category'), 
    ); 

    $args = array(
     'hierarchical'  => true, 
     'labels'   => $labels, 
     'show_ui'   => true, 
     'show_admin_column' => false, 
     'query_var'   => true, 
     'rewrite'   => array('slug' => 'Team_Category'), 
    ); 

    register_taxonomy('Team_Category', array('team'), $args); 
} 
/****************************taxanomy end***********************************/ 

Но когда я использую tax_query в моем WP_Query у меня нет сообщений. вот мой код

<?php 
$taxonomy_name = 'Team_Category'; 
$get_categories = get_terms($taxonomy_name); 
$total_categories = count($get_categories); 
// Loop through the obituaries: 
for ($i = 0; $i < $total_categories; $i++) { 
    ?> 
    <div class="row"> 
     <div class="col-md-4"> 
      <?php echo $category_name = $get_categories[$i]->name; ?> 
     </div> 
     <?php 
     $args = array(
      'post_type' => 'team', 
      'tax_query' => array(
       array(
        'taxonomy' => 'Team_Category', 
        'field' => 'slug', 'terms' => $category_name,) 
       ) 
     ); 

     $query = new WP_Query($args); 

     if ($query->have_posts()) { 
     while ($query->have_posts()) { 
      $query->the_post(); 
      the_title(); 
     } 
     } 
     wp_reset_query(); ?> 

    </div> 

<?php } 

Он отлично работает без tax_query .Я сделал много из Google, но не нашли подходящего решения result.Any, чтобы решить эту проблему .Any помощь будет высоко оценен

+0

пост-статус не должен быть post_status? – ThemesCreator

+0

BTW, опубликовать значение по умолчанию для post_status, поэтому нет необходимости его добавлять – ThemesCreator

+0

@ThemesCreator Я удалил '' post-status '=>' publish'', но он имеет эффект на результат – raxa

ответ

1

register_taxonomy()

$ таксономия (строка) (обязательно) Название таксономии. Имя должно быть содержать только строчные буквы и символ подчеркивания, а не длиной более 32 символов (ограничение структуры базы данных).

изменить свое имя таксономии из Team_Category в team_category

, то вы должны быть в состоянии использовать аргумент, как это

$arg = array(
    'post_type' => 'team', 
    'taxonomy' => 'team_category', 
    'term' => 'term_name', 
); 

//using tax_query 
$mytax = get_terms('your_taxonomy'); 
$arg = array(
    'post_type' => 'team', 
    'tax_query' => array(
     array(
      'taxonomy' => 'team_category', 
      'field' => 'slug', 
      'terms' => 'term_slug', //you need to use slug not name $mytax[0]->slug; 

      #or 
      //'field' => 'name', 
      //'terms' => 'term_name', //you need to use term name $mytax[0]->name; 

      #or 
      //'field' => 'term_id', 
      //'terms' => 'term_ID', //you need to use term ID $mytax[0]->term_id; 
     ), 
    ), 
); 
+0

это работает для меня, но я не знаю, почему этот код не работает' 'tax_query '=> array (' taxonomy '=>' team_category ', 'field' => 'slug', 'terms' => $ category_name)) 'даже я изменил' Team_Category' на 'team_category' – raxa

+0

Я отредактировал свой ответ, вы определяете поле« '' 'tax tax '=>' slug ''' ', но вы, кажется, добавляете значение таксономии name' ''' terms '=> $ category_name''' – silver

+0

В моем случае это должно быть как '$ args = array ( ' post_type '=>' команда», 'tax_query' => Array (массив ( 'систематика' => 'team_category', 'поле' => 'тихоход', 'термины' => $ get_categories, // вы должны использовать slug $ mytax-> slug; ), ), ); 'но это дает мне ошибку – raxa

0

WP_Query ($ nivelquery) и цикл теперь будет печатать каждый пост зарегистрированных с помощью мою обычную таксономию в долларах США, и закажите их по зарплате meta_key.

$terms = get_terms('Team_Category', 
     array(
      'orderby' => 'slug', 
      'order' => 'ASC', 
      'hide_empty' => 1, 
      'fields' => 'ids', 

     )); 

$args = array(
    'tax_query' => array(
     array(
      'taxonomy' => 'vagas_tipo', 
      'field' => 'id', 
      'terms' => $terms, 
     ), 
    ), 
    'orderby' => 'meta_value', 
    'meta_key' => 'salary', 
    'order' => 'DESC' 
); 

$query = new WP_Query($args); 
Смежные вопросы