カスタム分類法で投稿を取得する
-
-
税クエリの `field`の有効な値は、`term_id`、 `name`、または` slug`です.valid values for `field` in a tax query are `term_id`, `name`, or `slug`.
- 1
- 2014-10-16
- Milo
-
4 回答
- 投票
-
- 2014-10-16
税に関するクエリが正しくありません.
field
は、クエリを実行するフィールドである必要があります:term_id
、name
、またはslug
-$posts_array = get_posts( array( 'posts_per_page' => -1, 'post_type' => 'fabric_building', 'tax_query' => array( array( 'taxonomy' => 'fabric_building_types', 'field' => 'term_id', 'terms' => $cat->term_id, ) ) ) );
Your tax query is incorrect,
field
should be the field you want to query on:term_id
,name
, orslug
-$posts_array = get_posts( array( 'posts_per_page' => -1, 'post_type' => 'fabric_building', 'tax_query' => array( array( 'taxonomy' => 'fabric_building_types', 'field' => 'term_id', 'terms' => $cat->term_id, ) ) ) );
-
取得後にこの投稿をページ付けする方法は?how to paginate this posts after get their?
- 0
- 2018-09-28
- Andreas Hunter
-
- 2014-10-16
可能な場合は、分類法に
get_terms()
を使用する必要があります.<?php /* Add your taxonomy. */ $taxonomies = array( 'fabric_building_types', ); $args = array( 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => true, 'exclude' => array(), 'exclude_tree' => array(), 'include' => array(), 'number' => '', 'fields' => 'all', 'slug' => '', 'parent' => '', 'hierarchical' => true, 'child_of' => 0, 'get' => '', 'name__like' => '', 'description__like' => '', 'pad_counts' => false, 'offset' => '', 'search' => '', 'cache_domain' => 'core' ); $terms = get_terms( $taxonomies, $args ); foreach ( $terms as $term ) { // here's my code for getting the posts for custom post type $posts_array = get_posts( array( 'showposts' => -1, 'post_type' => 'fabric_building', 'tax_query' => array( array( 'taxonomy' => 'fabric_building_types', 'field' => term_id, 'terms' => $term->name, ) ) ) ); print_r( $posts_array ); } ?>
コーデックスへのリンク: http://codex.wordpress.org/Function_Reference/get_terms
You should use
get_terms()
for taxonomies when you can.<?php /* Add your taxonomy. */ $taxonomies = array( 'fabric_building_types', ); $args = array( 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => true, 'exclude' => array(), 'exclude_tree' => array(), 'include' => array(), 'number' => '', 'fields' => 'all', 'slug' => '', 'parent' => '', 'hierarchical' => true, 'child_of' => 0, 'get' => '', 'name__like' => '', 'description__like' => '', 'pad_counts' => false, 'offset' => '', 'search' => '', 'cache_domain' => 'core' ); $terms = get_terms( $taxonomies, $args ); foreach ( $terms as $term ) { // here's my code for getting the posts for custom post type $posts_array = get_posts( array( 'showposts' => -1, 'post_type' => 'fabric_building', 'tax_query' => array( array( 'taxonomy' => 'fabric_building_types', 'field' => term_id, 'terms' => $term->name, ) ) ) ); print_r( $posts_array ); } ?>
Link to Codex: http://codex.wordpress.org/Function_Reference/get_terms
-
ありがとう...しかし、同じ問題が残っています..空の配列..それは、配列という用語を取得しているときに、カスタム投稿タイプの定義で何か間違ったことをしているためです.Thanks...but the same issue remains..empty array.. is it because i am doing something wrong in defining custom post type as i am getting the term array..
- 0
- 2014-10-16
- Parth Kumar
-
上記の更新されたコードをもう試しましたか?Have you tried the updated code above yet?
- 0
- 2014-10-16
- Courtney Ivey
-
実際、Miloが提案したように、フィールドは文字列を取ります.それはエラーでした.これは私が解決しました.Actually as Milo suggested, the field will take a string..that was the error..which i got resolved..
- 1
- 2014-10-16
- Parth Kumar
-
- 2016-09-14
global $post; $id = $post->ID; $cat = get_the_category($id); $loc = get_the_terms($id, 'taxonomy'); $posts = get_posts( array('post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1, 'category' => $cat[0]->term_id, 'tax_query' => array( array( 'taxonomy' => 'location', 'field' => 'id', 'terms' => $loc[0]->term_id, ) ) ) ); print_r($posts);
これでうまくいくはずです.
global $post; $id = $post->ID; $cat = get_the_category($id); $loc = get_the_terms($id, 'taxonomy'); $posts = get_posts( array('post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1, 'category' => $cat[0]->term_id, 'tax_query' => array( array( 'taxonomy' => 'location', 'field' => 'id', 'terms' => $loc[0]->term_id, ) ) ) ); print_r($posts);
this should be works.
-
- 2018-06-27
現在の分類法に割り当てられた投稿を取得する
taxonomy-your_tax.phpに以下のコードを追加できます
<div class="a-article-wrapper"> <?php $terms = wp_get_post_terms( $post->ID, 'your-taxonomy'); $terms_ids = []; foreach ( $terms as $term ) { $terms_ids[] = $term->term_id; } $args = array( 'post_type' => 'your-post-type', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'your-taxonomy', 'field' => 'term_id', 'terms' => $terms_ids ) ), ); $query = new WP_Query($args); if ( $query->have_posts() ) { while ( $query->have_posts() ) { ?> <div class="row"> <div class="col-md-8 a-article-row"> <div class="row"> <?php $query->the_post();?> <div class="a-post-time"> <span class="a-current-date"><?php the_time('j F, D') ?></span> <span class="a-current-time"><?php the_time('g:i a') ?></span> </div> <div class="a-article-title"> <?php the_title(); ?> </div> <div class="a-article-content"> <div id="excerpt"><?php the_excerpt(); ?></div> <?php the_content(); ?> </div> <div class="a-article-tags"> <?php echo get_the_term_list( get_the_ID(), 'your-taxonomy', '', ',' ); ?> </div> </div> </div> </div> <?php } } ?> </div>
Getting posts assigned to current taxonomy
You can add below code in taxonomy-your_tax.php
<div class="a-article-wrapper"> <?php $terms = wp_get_post_terms( $post->ID, 'your-taxonomy'); $terms_ids = []; foreach ( $terms as $term ) { $terms_ids[] = $term->term_id; } $args = array( 'post_type' => 'your-post-type', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'your-taxonomy', 'field' => 'term_id', 'terms' => $terms_ids ) ), ); $query = new WP_Query($args); if ( $query->have_posts() ) { while ( $query->have_posts() ) { ?> <div class="row"> <div class="col-md-8 a-article-row"> <div class="row"> <?php $query->the_post();?> <div class="a-post-time"> <span class="a-current-date"><?php the_time('j F, D') ?></span> <span class="a-current-time"><?php the_time('g:i a') ?></span> </div> <div class="a-article-title"> <?php the_title(); ?> </div> <div class="a-article-content"> <div id="excerpt"><?php the_excerpt(); ?></div> <?php the_content(); ?> </div> <div class="a-article-tags"> <?php echo get_the_term_list( get_the_ID(), 'your-taxonomy', '', ',' ); ?> </div> </div> </div> </div> <?php } } ?> </div>
カスタム分類法(
fabric_building_types
)で投稿を取得していません.cat_id
とcat->name
も取得していますが、投稿を取得できません.誰か助けてくれませんか...よろしくお願いします