自定义分类档案不显示条目

时间:2014-06-17 作者:Prometheus Fire

我有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等)。分类学正在正确调用phphere, 但该模板中的循环不返回任何内容。我已经反复阅读了几十篇文章,但似乎没有弄明白。

目前,我的分类法。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(); ?>

2 个回复
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 - 并通读所有注释,以了解筛选查询和添加条件的其他方法。

SO网友:helgatheviking

我将首先切换你的循环,检查它是否有任何帖子,如果没有返回一个通知,说明什么都没有找到。至少这将有助于缩小问题的范围。。。以及不返回空白页。

<?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 if( have_posts() ) : ?>

            <?php while (have_posts()) : the_post(); ?>             
                <?php get_template_part( \'part-movie\'); ?>              
            <?php endwhile; ?>    

            <?php else: ?>

                <?php _e ( "Sorry, no movies were found", "your-theme" ); ?>

            <?php endif; ?>

            <?php get_template_part( \'part-pagination\'); ?>
        </div>  

    </div>      
    </div>          
    </div>

<?php get_footer(); ?>

结束

相关推荐

Taxonomy vs Post Status

我正在构建一个web应用程序,因此可扩展性是我开发时的主要关注点之一。在我正在构建的应用程序上,我有一个名为“项目”的帖子类型。项目可以是:我不需要任何类型的UI,只需要能够查询处于一种或多种状态的所有项目。我假设,由于post\\u status位于posts表中,使用此方法执行这些查询比使用分类法更快?所以,我的问题是,如果有100000个项目,查询哪个会更快?发布状态还是分类法?干杯