我以前见过这个问题以不同的形式发布,但大多数解决方案都是围绕管理界面进行的,而且我还没有找到任何适用于前端的答案。
我有一个自定义post类型,以及一个相关的自定义分类法。我使用归档页面(archive-{custom_type}.php)显示项目,并使用wp_list_categories显示自定义分类法术语的列表。我可以通过向tax_query调用添加一个WP_Query参数来手动更改显示的帖子,但是我遇到的问题是,我无法弄清楚如何更改分类法链接,因此它们指向这个归档页面,这样我就可以动态地进行筛选。我不想在taxonomy-{custom_type}.php文件中复制这个模板的标记和代码。
我需要手动输出分类法链接吗?应该如何构造URL,这样我才能获得查询参数?我已经设置了query_var => true集,并对自定义分类法定义进行了重写,但是没有能够让get_query_var()返回任何内容。
最终结果应该是一个模板,该模板可以列出自定义post类型中的所有项,或者根据相关的自定义分类筛选这些项。
发布于 2019-11-12 21:08:15
首先,我有分类“服务”。
在这里,我为分类法"service“循环和默认的WordPress循环(post)创建了一个不同的php文件。
将在archive.php中调用的
它会看起来一样
首先,我将为名为my-loop-service.php的"service“分类法创建一个文件。
填写代码:
<div class="my-service">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php post_class('my-service-loop'); ?>>
<h1 class="my-service-title"><?php the_title(); ?></h2>
</div>
<?php endwhile; endif; ?>
</div>其次,我为默认的post循环创建了一个文件,名为my- loop -post.php。
填写代码:
<div class="my-post">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php post_class('my-post-loop'); ?>>
<h1 class="my-post-title"><?php the_title(); ?></h2>
</div>
<?php endwhile; endif; ?>
</div>下面是archive.php文件的内容
<?php
get_header();
if (is_post_type_archive('service') || is_tax('services-category') || is_tax('services-tags')){
get_template_part('my-loop-service'); // Get Loop for Taxonomy service
} else {
get_template_part('my-loop-post'); // Default Loop for Post
}
// Navigation
echo '<div id="my-navigation">';
the_posts_pagination( array(
'mid_size' => 2,
'prev_text' => __( 'Prev', 'text-domain' ),
'next_text' => __( 'Next', 'text-domain' ),
));
echo '</div>';
get_footer();
?>https://wordpress.stackexchange.com/questions/226923
复制相似问题