fabric_building_types
)获得帖子。我也正在获取cat_id
和cat->name
,但无法获取帖子。$args = array(
'type' => 'post',
'child_of' => 0,
'parent' => '',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 1,
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => '',
'taxonomy' => 'fabric_building_types',
'pad_counts' => false
);
$categories = get_categories( $args );
foreach ( $categories as $cat ) {
// 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' => $cat->cat_ID,
'terms' => $cat->name,
)
)
)
);
print_r( $posts_array );
}
谁能请我帮忙...谢谢!
#1 楼
您的纳税查询不正确,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,
)
)
)
);
评论
得到这些帖子后如何对其分页?
–安德烈亚斯·亨特(Andreas Hunter)
18-09-28在11:11
#2 楼
您应该尽可能使用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->term_id,
)
)
)
);
print_r( $posts_array );
}
?>
评论
谢谢...但仍然存在相同的问题..空数组..是因为我在获取术语数组时定义自定义帖子类型时做错了什么。
– Parth Kumar
14-10-16在17:37
您是否尝试过上面更新的代码?
–库尔尼·艾维(Courtney Ivey)
14-10-16在17:48
实际上,正如Milo建议的那样,该字段将采用字符串..那是错误..我解决了..
– Parth Kumar
14-10-16在17:50
#3 楼
获取分配给当前分类法的帖子您可以在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>
#4 楼
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);
这应该可行。
评论
税查询中字段的有效值为term_id,名称或子词。