Wordpress 分类术语模板循环
Posted
技术标签:
【中文标题】Wordpress 分类术语模板循环【英文标题】:Wordpress Taxonomy Term template loop 【发布时间】:2015-12-08 12:43:41 【问题描述】:我在我的网站上设置了 6 个自定义分类,按以下方式注册(示例中的分类名为“主题”):
/* Topic */
add_action( 'init', 'register_taxonomy_topic' );
function register_taxonomy_topic()
$labels = array(
'name' => _x( 'Topics', 'topic' ),
'singular_name' => _x( 'Topic', 'topic' ),
'search_items' => _x( 'Search Topics', 'topic' ),
'popular_items' => _x( 'Popular Topics', 'topic' ),
'all_items' => _x( 'All Topics', 'topic' ),
'parent_item' => _x( 'Parent Topic', 'topic' ),
'parent_item_colon' => _x( 'Parent Topic:', 'topic' ),
'edit_item' => _x( 'Edit Topic', 'topic' ),
'update_item' => _x( 'Update Topic', 'topic' ),
'add_new_item' => _x( 'Add New Topic', 'topic' ),
'new_item_name' => _x( 'New Topic Name', 'topic' ),
'separate_items_with_commas' => _x( 'Separate topics with commas', 'topic' ),
'add_or_remove_items' => _x( 'Add or remove topics', 'topic' ),
'choose_from_most_used' => _x( 'Choose from the most used topics', 'topic' ),
'menu_name' => _x( 'Topics', 'topic' ),
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_in_nav_menus' => true,
'show_ui' => true,
'show_tagcloud' => true,
'hierarchical' => true,
'rewrite' => true,
'query_var' => true
);
register_taxonomy( 'topic', array('post'), $args );
在这 6 种分类法中,有 2 到 25 个不同的术语。
我正在尝试创建一个动态存档页面,当用户单击该术语的存档页面时,该页面将列出与特定术语相关的正确帖子。该页面需要是动态的,即使用一个模板根据所选术语列出相关帖子,而不是为每个术语创建一个模板文件(这将导致超过 100 个模板!)
以下是我的分类结构的示例:
帖子类型:帖子,分类:主题,术语:一、二、三
我目前正在使用的循环如下,它似乎输出了一个文章列表,但我无法破译这些帖子的来源,其中许多是重复的!我的循环还指定了“主题”,因为我需要它来动态生成内容,而不管正在查看 6 个分类法和 X 个术语中的哪一个。
<?php //start by fetching the terms for the animal_cat taxonomy
$terms = get_terms( 'topic', array(
'orderby' => 'count',
'hide_empty' => 0
) );
?>
<?php
// now run a query for each animal family
foreach( $terms as $term )
// Define the query
$args = array(
'post_type' => 'post',
'topic' => $term->slug
);
$query = new WP_Query( $args );
// output the post titles in a list
echo '<ul>';
// Start the Loop
while ( $query->have_posts() ) : $query->the_post(); ?>
<li id="post-<?php the_ID(); ?>">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile;
echo '</ul>';
// use reset postdata to restore orginal query
wp_reset_postdata();
?>
非常感谢任何帮助!
【问题讨论】:
【参考方案1】:您可以使用category.php
来通用显示您的条款。
if ( have_posts() )
while ( have_posts() )
the_post();
the_title();
the_content();
您可以查看template hierarchy
【讨论】:
嗨@nozifel,但是循环呢?帖子如何被查询? 使用经典循环(我编辑了我的代码)。模板查询与当前分类术语匹配的帖子以上是关于Wordpress 分类术语模板循环的主要内容,如果未能解决你的问题,请参考以下文章