2014-07-21 100 views
0

一個自定義後類型的特定類別只是固定它....問題是循環在WordPress

register_taxonomy_for_object_type('tags', 'produto'); 

被註冊標記而不是類別....固定:

<?php 
               $tag = 'taeq'; 
               $args = array('post_type' => 'produto', 'posts_per_page' => -1, 'produto_category' => $tag); 
               $loop = new WP_Query($args); 
               while ($loop->have_posts()) : $loop->the_post(); ?> 
                <li> 
                 <img src="<?php the_field('produto_img'); ?>" alt="<?php the_title(); ?>" /> 
                 <span><?php the_title(); ?></span> 
                 <span><?php the_field("produto_desc"); ?></span> 
                 <i class="border"></i> 
                </li> 
               <?php endwhile; ?> 

正確的問題是如何在WordPress中循環自定義帖子類型的特定標籤

我試圖從wordpress上的僅一個類別循環發佈。

我不知道任何關於PHP ...

這裏是我的代碼,工作,但顯示所有產品

<?php 
$new_query = new WP_Query('post_type=produto&post_per_page=-1'); 
while($new_query -> have_posts()) : $new_query -> the_post(); 
?> 
<li> 
    <img src="<?php the_field("produto_img"); ?>" alt="<?php the_title(); ?>" /> 
    <span><?php the_title(); ?></span> 
    <span><?php the_field("produto_desc"); ?></span> 
    <i class="border"></i> 
</li> 

<?php endwhile; ?> 

我需要證明從類別ID項目2

我該怎麼辦?

OBS:我的網站是單頁網站。 我在同一頁面的不同位置顯示所有帖子類型。 需要按類別過濾一些。

功能PHP:

add_action('init', 'create_post_type_produto'); 
function create_post_type_produto() { 
    $labels = array(
     'name' => _x('Produtos', 'post type general name'), 
     'singular_name' => _x('Produtos', 'post type singular name'), 
     'add_new' => _x('Adicionar novo', 'produto'), 
     'add_new_item' => __('Adicionar novo produto'), 
     'edit_item' => __('Editar produto'), 
     'new_item' => __('Novo produto'), 
     'all_items' => __('Todos os produtos'), 
     'view_item' => __('Ver produtos'), 
     'search_items' => __('Procurar produtos'), 
     'not_found' => __('Nenhum produto encontrado'), 
     'not_found_in_trash' => __('Nenhum produto encontrado na lixeira.'), 
     'parent_item_colon' => '', 
     'menu_name' => 'Produtos' 
    ); 
    register_post_type('produto', array(
     'labels' => $labels, 
     'public' => true, 
     'publicly_queryable' => true, 
     'show_ui' => true, 
     'show_in_menu' => true, 
     'has_archive' => 'produtos', 
     'rewrite' => array(
     'slug' => 'produtos', 
     'with_front' => false, 
     ), 
     'capability_type' => 'post', 
     'has_archive' => true, 
     'hierarchical' => false, 
     'menu_position' => null, 
     'supports' => array('title') 
     ) 
    ); 
    register_taxonomy('produto_category', array('produto'), array(
     'hierarchical' => true, 
     'label' => __('Categoria do produto'), 
     'labels' => array(// Labels customizadas 
     'name' => _x('Categorias', 'taxonomy general name'), 
     'singular_name' => _x('Categoria', 'taxonomy singular name'), 
     'search_items' => __('Procurar categorias'), 
     'all_items' => __('Todas categorias'), 
     'parent_item' => __('Categoria pai'), 
     'parent_item_colon' => __('Categoria pai:'), 
     'edit_item' => __('Editar categoria'), 
     'update_item' => __('Atualizar categoria'), 
     'add_new_item' => __('Adicionar nova categoria'), 
     'new_item_name' => __('Nome da nova categoria'), 
     'menu_name' => __('Categoria'), 
     ), 
     'show_ui' => true, 
     'show_in_tag_cloud' => true, 
     'query_var' => true, 
     'rewrite' => array(
      'slug' => 'produtos/categorias', 
      'with_front' => false, 
     ),) 
    ); 
    register_taxonomy_for_object_type('tags', 'produto'); 
} 
+3

僱用了一些知道PHP和Wordpress的人。 – TJHeuvel

+0

使用'$ new_query = new WP_Query('post_type = produto&post_per_page = -1&cat = 2');' –

+0

請參閱:http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters –

回答

0

定義它通過使用cat(或product_cat產品)元素(也使用$args陣列爲清楚起見)例如:

$cat = 2; // The product category you want to display 
$args = array('post_type' => 'produto', 'posts_per_page' => -1, 'cat' => $cat); 
$loop = new WP_Query($args); 
while ($loop->have_posts()) : $loop->the_post(); ?> 
    <li> 
     <img src="<?php the_field('produto_img'); ?>" alt="<?php the_title(); ?>" /> 
     <span><?php the_title(); ?></span> 
     <span><?php the_field("produto_desc"); ?></span> 
     <i class="border"></i> 
    </li> 
<?php endwhile; ?> 
+0

嘗試過,但產品只是不出現 – user3797666

+0

@ user3797666你使用WooCommerce插件?你有'producto'應該不是'產品'嗎? – Kivylius

+0

produto是ptBR語言。也許是分類學的東西? – user3797666

-1

,如果你想在類別模板上只顯示一個類別,您可以使用

此代碼

query_posts('cat=6');// while 6 is category id you want to show 

之前這段代碼在你的wp模板

if (have_posts()) : 
        while (have_posts()) : the_post(); 
+0

Downvote!你是新來的wordpress,如果有一件事我可以教你,你應該**絕不**使用'query_posts'n,我的意思是**從不**。使用'WP_Query'或'pre_get_posts' –

+0

那麼怎麼能做到這一點,導致它上次工作時,我開發了一個代碼 – user290895

+0

'query_posts'打破主查詢,並在大多數情況下失敗的分頁。即使是codex狀態**不使用**'query_posts'。看到另外兩個答案如何使用'WP_Query' –

1

嘗試在WP查詢自定義分類過濾該使用稅查詢

// using category slug 
$args = array( 
      'post_type' => 'produto', 
      'posts_per_page' => -1, 
      'tax_query' => array(
      array(
       'taxonomy' => 'produto_category', 
       'field' => 'slug', // term_id, slug 
       'terms' => 'taeq', 
      ), 
      ) 
     ); 

// using category id 
/* $args = array( 
      'post_type' => 'produto', 
      'posts_per_page' => -1, 
      'tax_query' => array(
      array(
       'taxonomy' => 'produto_category', 
       'field' => 'term_id', // term_id, slug 
       'terms' => 5, 
      ), 
      ) 
     ); 

*/ 

$loop = new WP_Query($args); 

Wp的查詢更多的稅參考 https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

0

我使用像這樣的定製分類過濾器

活動是我的自定義帖子類型,特色活動是活動類別slug ...

它的工作非常適合我,希望它有助於:)

$loop = new WP_Query(array( 
         'post_type' => 'event','tax_query' => array(
                  array(
                  'taxonomy' => 'event-categories', 
                  'field' => 'slug', 
                  'terms' => 'featured-events', 
                  ) 
                ))); 
0

您正在使用custom taxonomy,所以你不能使用類的說法,你應該使用分類查詢https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters 所以,你的代碼應該是

<?php 
$args = array( 
    'post_type' => 'produto', 
    'posts_per_page' => -1, 
    'tax_query' => array(
     array(
      'taxonomy' => 'produto_category', 
      'field' => 'slug', // search by slug name, you may change to use ID 
      'terms' => 'taeq', // value of the slug for taxonomy, in term using ID, you should using integer type casting (int) $value 
     ), 
    ) 
); 
$new_query = new WP_Query($args); 
while($new_query -> have_posts()) : $new_query -> the_post(); 
?> 
<li> 
    <img src="<?php the_field("produto_img"); ?>" alt="<?php the_title(); ?>" /> 
    <span><?php the_title(); ?></span> 
    <span><?php the_field("produto_desc"); ?></span> 
    <i class="border"></i> 
</li> 

<?php endwhile; ?>