我有CPT“电影”,有以下分类:流派、导演和演员。
用于注册的代码如下:http://pastebin.com/yJ9XHCDk
我有一个存档电影页面,使用archie movie中的以下代码。php:
<?php get_header(); ?>
<div id="middle" class="clearfix">
<div id="inner">
<div id="content" class="<?php echo $bw; ?>">
<?php get_template_part( \'part-genrenav\'); ?>
<div id="pageHead">
<?php global $post; if(is_archive() && have_posts()) :
if ( is_post_type_archive() ) { ?>
<h1><?php post_type_archive_title(); ?></h1>
<?php } ?>
<?php endif; ?>
</div>
<div class="posts clearfix">
<?php get_template_part( \'part-pagination\'); ?>
<?php while (have_posts()) : the_post(); ?>
<?php get_template_part( \'part-movie\'); ?>
<?php endwhile; ?>
<?php get_template_part( \'part-pagination\'); ?>
</div>
</div>
</div>
</div>
<?php get_footer(); ?>
Taxonomy.php
我创建了一个分类法。php(以及一个taxonomy-genre.php等)。分类学正在正确调用php
here, 但该模板中的循环不返回任何内容。我已经反复阅读了几十篇文章,但似乎没有弄明白。
目前,我的分类法。php文件就是由这个组成的,正如您所看到的,它和他们归档的电影并没有太大的不同。上面的php文件。我只是不明白为什么它不起作用:
<?php get_header(); ?>
<div id="middle" class="clearfix">
<div id="inner">
<div id="content">
<div id="pageHead"><h1>Taxonomy Archive</h1></div>
<div class="posts clearfix">
<?php get_template_part( \'part-pagination\'); ?>
<?php while (have_posts()) : the_post(); ?>
<?php get_template_part( \'part-movie\'); ?>
<?php endwhile; ?>
<?php get_template_part( \'part-pagination\'); ?>
</div>
</div>
</div>
</div>
<?php get_footer(); ?>
SO网友:Michelle
我认为您可能需要过滤该分类法的查询,以便它显示您的电影自定义帖子类型。
尝试将此添加到主题functions.php
文件:
function custom_post_archive($query) {
if (!is_admin() && is_tax(\'genre\') && $query->is_tax)
$query->set( \'post_type\', array(\'movie\', \'nav_menu_item\', \'post\') );
remove_action( \'pre_get_posts\', \'custom_post_archive\' );
}
add_action(\'pre_get_posts\', \'custom_post_archive\');
您需要为所有不同的分类法添加该函数,但这是一种很好的方法,可以首先测试问题/解决方案。
See this post - 并通读所有注释,以了解筛选查询和添加条件的其他方法。