我在自定义帖子类型中有一系列帖子,这些帖子在分类“集合”中都有一个术语。每个帖子与“集合”分类中不超过一个术语相关联。我想在每个帖子下创建一个链接,上面写着“此收藏中的更多内容”,如何动态创建指向其所属术语的链接?
当我使用以下代码段时,它会显示一个术语列表作为链接。我只需要永久链接,这样我就可以创建自定义链接,而不是与之关联的术语的名称。
<?php echo get_the_term_list( $post->ID, 'collection', '', ', ', '' ); ?>
我想要完成的是一种动态的方式来写这样的东西:
<a href="TERM_PERMALINK">More in this Collection</a>
答案 0 :(得分:11)
您也可以使用 get_term_link()功能。
http://codex.wordpress.org/Function_Reference/get_term_link
这是一个小例子:
$terms = get_the_terms($post->ID, 'my_taxonomy');
if (! empty($terms)) {
foreach ($terms as $term) {
$url = get_term_link($term->slug, 'my_taxonomy');
print "<a href='{$url}'>{$term->name}</a>";
}
}
答案 1 :(得分:1)
这是一个使用get_term_link()实际输出链接的示例。
$collections = get_the_terms($post->ID, 'collection');
foreach ($collections as $collection){
echo "<a href='".get_term_link($collection->slug, 'collection')."'>".$collection->name."</a>";
}
答案 2 :(得分:0)
也许这会奏效:
$cats = wp_get_post_terms($postId, 'cat name');
$category_link = get_term_link($cats[0]);
答案 3 :(得分:-2)
您将要使用get_the_term
来获取该帖子使用的术语数组。然后,您可以遍历该数组以创建永久链接。
get_the_terms( $post->ID, 'collection' )
这将返回一个符合以下结构的数组:
Array
(
[0] => stdClass Object
(
[term_id] => ...
[name] => ...
[slug] => ...
[term_group] => ...
[term_taxonomy_id] => ...
[taxonomy] => collection
[description] => ...
[parent] => ...
[count] => ...
)
)
通过此数组的简单循环将允许您以您想要的任何格式解析永久链接,但我个人推荐http://site.url/TAXONOMY/TERM
。
$collections = get_the_terms( $post->ID, 'collection' );
foreach( $collections as $collection ) {
$link = get_bloginfo( 'url' ) . '/collection/' . $collection->slug . '/';
echo $link;
}
在我的代码片段中,我正在回应永久链接。你可以随心所欲地做任何事情(将它存储在一个数组中,在链接定义中使用它,或者任何东西。