在分类页面上,显示与该分类相关的帖子和另一个
On taxonomy page, show posts associated with that taxonomy and another
我有一个名为 Developments 的自定义 post 类型。它们是建筑物。它们有两种不同的分类法:City 和 Status。在其中一栋建筑的城市分类页面上,我试图显示与 Status 分类相关的所有 post。
<?php
// Vars
$status_taxonomy = 'development_status';
$devs = get_terms( array(
'taxonomy' => $status_taxonomy,
'hide_empty' => true,
) );
?>
<?php
foreach($devs as $dev) :
$dev_id = $dev->term_id;
$dev_name = $dev->name;
?>
<?php
$term_slug = $dev->slug;
$dev_posts = new WP_Query( array(
'post_type' => 'developments',
'posts_per_page' => -1, //important for a PHP memory limit warning
'tax_query' => array(
array(
'taxonomy' => $status_taxonomy,
'field' => 'slug',
'terms' => $term_slug,
'operator' => 'IN',
),
),
));
if( $dev_posts->have_posts() ) :
echo '<h3>'. $dev_name .'</h3>';
while ( $dev_posts->have_posts() ) : $dev_posts->the_post();
?>
<div class="col-xs-12">
<h3>$dev_name</h3>
</div>
<div class="col-md-4">
<h4><?php the_title(); ?></h4>
</div>
<?php
endwhile;
endif;
wp_reset_postdata();
?>
<?php
endforeach;
?>
此代码输出所有状态项,但它也显示所有 post,我需要它显示与城市关联的 post。我不确定如何修改上面的代码来实现这个。
像这样在城市分类页面上获取您当前的分类和术语:
$current_term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
然后更改你tax_query
添加另一个数组,以便将当前城市分类法添加到限制中:
'tax_query' => array
(
'relation' => 'AND',
array(
'taxonomy' => $status_taxonomy,
'field' => 'slug',
'terms' => $term_slug,
'operator' => 'IN',
),
array(
'taxonomy' => 'city',
'field' => 'slug',
'terms' => $current_term->slug,
'operator' => 'IN',
),
),
我有一个名为 Developments 的自定义 post 类型。它们是建筑物。它们有两种不同的分类法:City 和 Status。在其中一栋建筑的城市分类页面上,我试图显示与 Status 分类相关的所有 post。
<?php
// Vars
$status_taxonomy = 'development_status';
$devs = get_terms( array(
'taxonomy' => $status_taxonomy,
'hide_empty' => true,
) );
?>
<?php
foreach($devs as $dev) :
$dev_id = $dev->term_id;
$dev_name = $dev->name;
?>
<?php
$term_slug = $dev->slug;
$dev_posts = new WP_Query( array(
'post_type' => 'developments',
'posts_per_page' => -1, //important for a PHP memory limit warning
'tax_query' => array(
array(
'taxonomy' => $status_taxonomy,
'field' => 'slug',
'terms' => $term_slug,
'operator' => 'IN',
),
),
));
if( $dev_posts->have_posts() ) :
echo '<h3>'. $dev_name .'</h3>';
while ( $dev_posts->have_posts() ) : $dev_posts->the_post();
?>
<div class="col-xs-12">
<h3>$dev_name</h3>
</div>
<div class="col-md-4">
<h4><?php the_title(); ?></h4>
</div>
<?php
endwhile;
endif;
wp_reset_postdata();
?>
<?php
endforeach;
?>
此代码输出所有状态项,但它也显示所有 post,我需要它显示与城市关联的 post。我不确定如何修改上面的代码来实现这个。
像这样在城市分类页面上获取您当前的分类和术语:
$current_term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
然后更改你tax_query
添加另一个数组,以便将当前城市分类法添加到限制中:
'tax_query' => array
(
'relation' => 'AND',
array(
'taxonomy' => $status_taxonomy,
'field' => 'slug',
'terms' => $term_slug,
'operator' => 'IN',
),
array(
'taxonomy' => 'city',
'field' => 'slug',
'terms' => $current_term->slug,
'operator' => 'IN',
),
),