我正在构建一个 Wordpress 网站,我试图弄清楚如何修改taxonomy.php
以显示自定义类别和自定义分类中的所有帖子,但我被卡住了。情况如下:
我有一个名为“工作”的自定义帖子类型。在该自定义帖子类型中,我有一个称为“项目类型”的自定义分类法,我在其中创建了几个类别,称为摄影、视频、印刷设计等。我设置了一个名为的模板taxonomy.php
,它管理 mydomain.com/work 和 mydomain。 com/项目类型/打印设计/。问题是这些页面只显示 5 个最近的帖子。我需要它们显示正确类别中的所有帖子(或者在 mydomain.com/work 的情况下,自定义帖子类型中的所有帖子,无论类别如何)。
我发现这个关于 query_posts的页面帮助我意识到我需要添加<?php query_posts( array ( 'post_type' => 'work', 'posts_per_page' => -1 ) ); ?>
. 现在工作页面正在正确加载,但所有类别页面都在加载所有工作帖子(因为我已将 post_type 定义为我添加的那个片段中的工作)。
如何概括代码,使其工作页面显示所有工作帖子,而类别页面仅显示相关类别帖子?这是完整的代码:
<?php
/**
* Project Type Taxonomy Archive
*/
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
?>
<h3 style="color:#EEEEEE"><?php echo apply_filters( 'the_title', $term->name ); ?> PROJECTS</h3>
<ul class="thumbnails">
<div id="work">
<?php if ( !empty( $term->description ) ): ?>
<div class="archive-description">
<?php echo esc_html($term->description); ?>
</div>
<?php endif; ?>
<?php query_posts( array ( 'post_type' => 'work', 'posts_per_page' => -1 ) ); ?>
<?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>
<div class="post">
<li class="span4">
<div class="thumbnail">
<a href="<?php the_permalink() ?>"><div class="tint"><?php the_post_thumbnail( 'featured-thumb' ); ?></div></a>
<br />
<div class="thumbcaption">
<a href="<?php the_permalink() ?>"><h3><?php the_title() ?></h3></a>
<p> <?php the_excerpt(); ?></p>
<p><i><?php the_terms( $post->ID, 'work_project_type' , ' ' ); ?></i></p>
</div>
</div>
</li>
</div>
<?php endwhile; ?>
<div class="navigation clearfix">
<div class="alignleft"><?php next_posts_link('« Previous Entries') ?></div>
<div class="alignright"><?php previous_posts_link('Next Entries »') ?></div>
</div>
<?php else: ?>
<h2 class="post-title">No Projects in <?php echo apply_filters( 'the_title', $term->name ); ?></h2>
<div class="content clearfix">
<div class="entry">
<p>It seems there aren't any projects in <strong><?php echo apply_filters( 'the_title', $term->name ); ?></strong> right now. Check back later, I try to add new projects regularly.</p>
</div>
</div>
<?php endif; ?>
</div>
</div>