我使用了CPT(自定义帖子类型)插件来创建一个名为资源的自定义帖子类型,以及一个名为资源类别的自定义分类。在该分类法中,我有两个类别/术语:博客和书籍。
我已经弄清楚要编辑哪个文件:分类法.php
但是我不知道如何编写模板。这是我到目前为止所拥有的:
<?php get_header(); ?>
<section class="content">
<div class="page-title pad group"><h2><?php single_term_title(); ?></h2></div>
<div class="pad group">
<?php if ((category_description() != '') && !is_paged()) : ?>
<div class="notebox">
<?php echo category_description(); ?>
</div>
<?php endif; ?>
<?php if ( have_posts() ) : ?>
<div class="post-list group">
<?php $i = 1; echo '<div class="post-row">'; while ( have_posts() ): the_post(); ?>
<?php get_template_part('content'); ?>
<?php if($i % 2 == 0) { echo '</div><div class="post-row">'; } $i++; endwhile; echo '</div>'; ?>
</div><!--/.post-list-->
<?php get_template_part('inc/pagination'); ?>
<?php endif; ?>
</div><!--/.pad-->
</section><!--/.content-->
<?php get_sidebar(); ?>
<?php get_footer();
什么有效:
- 当我转到资源类别/书籍时,该页面显示。好!
- 将显示类别"书籍"的标题和类别说明。好!
什么不起作用:该类别中没有项目列表。它只是空白的。我最初从 archive.php 中复制了代码,它在搜索页面、作者列表、我认为类别存档上也能正常工作......
怎么了?我是 php n000000b,所以我很难翻译互联网上的教程/答案来解决这个问题。
使用您的自定义WP_QUERY
$args = array(
'post_type' => 'resources',
'tax_query' => array(
'taxonomy' => 'resource-categories',
'field' => 'id',
'terms' => get_queried_object()->term_id,
);
);
$query = new WP_QUERY( $args );
while ( $query->have_posts() ):
$query->the_post()
..
endwhile;
你的问题不是你的代码,这是正确的,应该开箱即用。
检查以下内容:
-
确保自定义帖子类型和自定义分类的
public
参数都设置为true
register_post_type()
和register_taxonomy()
-
通过简单地访问后端的永久链接设置页面来重新保存/重新刷新您的永久链接。
这应该可以解决您的问题。如果没有,那么您在插件或主题中存在严重的冲突或过滤器错误。
请注意,永远不要运行自定义查询,因为主查询中的某些内容需要更改或在主查询中不起作用。正确正确地解决问题,不要隐藏它;-)