我已经稍微改变了设置,有两种不同的帖子类型“Premium Listing”和“Free Listing”,以及一种Listing\\u类别的分类法。
这是我的循环示例。我的想法是在分类法的归档页面上显示高级列表,然后显示免费列表。
然而,当我将其添加到我的taxonomy\\u listing\\u类别时,这似乎是可行的。php我得到的结果并不特定于我的分类法。
比如说http://www.domain.com/listing_category/carriers/ 应显示1个Premium,然后显示分类法载体的免费列表,但它显示所有分类法。
代码如下
<?php $args = array(
\'post_type\' => \'premium_listing\',
\'orderby\' => \'rand\',
);
$the_query = new WP_Query( $args );
?>
<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php the_title(); ?>
<?php endwhile; else: ?>
<?php get_template_part( \'inc/posts/post-404\' );?>
<?php endif; ?>
<?php rewind_posts(); ?>
<?php $args = array(
\'post_type\' => \'free_listings\',
\'post_per_page\' => 1,
\'orderby\' => \'rand\',
);
$the_query = new WP_Query( $args );?>
<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php the_title() ;?>
<?php endwhile; else: ?>
<p>Sorry, there are no posts to display</p>
<?php endif; ?>
我的主题没有存档。所以我使用了索引。php作为创建taxonomy\\u listing\\u类别的基础。php
有什么想法吗,理查德。
理查德
SO网友:keesiemeijer
您是否发布了分类法模板的正确名称?我认为应该是“taxonomy-listing\\u category”。php。看见Custom_Taxonomies_display
还是以其他方式将其包括在内?
对于新的WP\\U查询,您没有使用默认查询,该查询包含分类法和术语的查询变量。但是,您可以将分类法及其术语添加回查询中,使其仅返回具有分类法中的术语的帖子。
请参见tax_query parameter
<?php
$current_term = get_query_var( \'term\' );
$args = array(
\'post_type\' => \'premium_listing\',
\'orderby\' => \'rand\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'listing_category\',
\'field\' => \'slug\',
\'terms\' => $current_term ,
)
)
);
$the_query = new WP_Query( $args );
?>
<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php the_title(); ?>
<?php
endwhile;
wp_reset_postdata();
else: ?>
<?php get_template_part( \'inc/posts/post-404\' );?>
<?php endif; ?>
<?php $args = array(
\'post_type\' => \'free_listings\',
\'post_per_page\' => 1,
\'orderby\' => \'rand\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'listing_category\',
\'field\' => \'slug\',
\'terms\' => $current_term ,
)
)
);
$the_query = new WP_Query( $args );?>
<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php the_title() ;?>
<?php
endwhile;
wp_reset_postdata();
else: ?>
<p>Sorry, there are no posts to display</p>
<?php endif; ?>