为分类术语(而不是术语结果)创建存档

时间:2014-08-23 作者:Jon C

因此,我试图在导航层次结构中构建第一个页面来选择产品类别。

我有一个称为集合的自定义分类法。我想创建一个页面,循环遍历集合分类法中的所有术语,并显示术语+链接和描述。除了下面的代码之外,我发现的几乎所有内容都是从特定的分类法创建一个帖子列表。这不是我想要的。我想要一个母版页,其中包含每个分类术语和描述,然后链接到与该术语对应的帖子。

例如,如果我的分类法是运输,术语可能是汽车、船、飞机,这些术语的描述可以解释什么是汽车、船或飞机。然后每个术语都会链接到一个特定汽车或诸如此类的列表。

我创建了一个名为taxonomy-collections.php 并输入以下代码。但这并没有奏效,有人能提出解决这个问题的办法吗?

<?php if ( have_posts() ) : while ( have_posts() ) : the_post();

$terms = get_terms( \'collections\' );

echo \'<ul>\';

foreach ( $terms as $term ) {

// The $term is an object, so we don\'t need to specify the $taxonomy.
$term_link = get_term_link( $term );

// If there was an error, continue to the next term.
if ( is_wp_error( $term_link ) ) {
    continue;
}

// We successfully got a link. Print it out.
echo \'<li><a href="\' . esc_url( $term_link ) . \'">\' . $term->name . \'</a></li>\';
echo  term_description($post->ID,$term);

}

echo \'</ul>\';

?>

<?php endwhile; else : ?>
 <p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>
<?php endif; ?>
这几乎是直接从抄本,所以我猜我错过了什么。

目前,代码中的每个术语都显示为列表,但如果有人可以帮忙的话,我确实想将其更改为网格格式。

因此,每个术语和描述将包装在一个div中,并与下一个向右对齐。

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

你可能想退房this post, 因为你的帖子链接到了这个问题。这应该可以解释你的大部分问题。

至于你的代码,把它移出循环。你的代码就快到了。退房get_terms 查看函数返回的可以使用的对象。您可以使用$term->description 而不是term_description($post->ID,$term); 返回术语描述。将代码修改为

$terms = get_terms( \'collections\' );

echo \'<ul>\';

foreach ( $terms as $term ) {

// The $term is an object, so we don\'t need to specify the $taxonomy.
$term_link = get_term_link( $term );

// If there was an error, continue to the next term.
if ( is_wp_error( $term_link ) ) {
    continue;
}

// We successfully got a link. Print it out.
echo \'<li><a href="\' . esc_url( $term_link ) . \'">\' . $term->name . \'</a></li>\';
echo  $term->description; // This will return the description of the term

}

echo \'</ul>\';

结束

相关推荐

wordpress nested loop

我正在构建嵌套循环查询。我有一个元框,可以捕获邮件id(分类器和转发器)。到目前为止,我的代码while ( have_posts() ) : the_post(); ?> <div id=\"<?php echo $post->post_name; ?>\"> <h1><?php the_title(); ?></h1> <?php the_content