我已经注册了一个自定义帖子类型" Projects"并且还为该帖子类型注册了一个名为"项目类别"的自定义分类。在我的主页上,我有一个div,其中我想列出"项目类别"的所有项目和条款。分类。目前,我只能获得条款清单。有人可以告诉我为什么我无法显示条款。目前,我有:
<div class="list-container">
<?php
query_posts( array( 'post_type' => 'projects' ) );
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; endif; wp_reset_query(); ?>
<?php $taxonomy = 'project_categories';
$tax_terms = get_terms($taxonomy);
?>
<?php foreach ($tax_terms as $cat): ?>
<li><?php $cat; ?></li>
<?php endforeach; ?>
</div><!--end list-container-->
我的另一个问题是,在query_posts循环内部或外部包含分类法会更好吗?
答案 0 :(得分:1)
get_terms($taxonomy)
返回一个对象数组(请参阅get_terms() in WP Codex),因此为了打印名称,您应该使用<?php echo $cat->name ?>
(并且不要忘记回显)。
我试图纠正你的代码。有关详细信息,请参阅代码块中的注释:
<?php
// keep your queries outside the loop for more readable code
query_posts( array( 'post_type' => 'projects' ) );
$taxonomy = 'project_categories';
$tax_terms = get_terms($taxonomy);
?>
<!-- <li> should be enclosed in <ul> or <ol> -->
<ul class="list-container">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li><a href="<?php echo get_the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; endif; ?>
<?php foreach ($tax_terms as $cat): ?>
<li><?php echo $cat->name; ?></li>
<?php endforeach; ?>
</ul><!--end list-container-->
<?php wp_reset_query(); ?>
旁注:您使用<?php the_permalink(); ?>
或使用<a href="<?php echo get_the_permalink(); ?>"><?php the_title(); ?></a>
。前者将自动完成所有魔法,在这种情况下建议使用。