根据自定义分类获取帖子
-
-
税查询中"字段"的有效值是"term_id","名称"或"子弹".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
,但无法获取帖子.任何人都可以帮助我...提前感谢