如何在循环中的WordPress帖子上输出永久链接?

时间:2010-09-22 23:47:12

标签: php loops wordpress

我在自定义帖子类型中有一系列帖子,这些帖子在分类“集合”中都有一个术语。每个帖子与“集合”分类中不超过一个术语相关联。我想在每个帖子下创建一个链接,上面写着“此收藏中的更多内容”,如何动态创建指向其所属术语的链接?

当我使用以下代码段时,它会显示一个术语列表作为链接。我只需要永久链接,这样我就可以创建自定义链接,而不是与之关联的术语的名称。

<?php echo get_the_term_list( $post->ID, 'collection', '', ', ', '' ); ?>

我想要完成的是一种动态的方式来写这样的东西:

<a href="TERM_PERMALINK">More in this Collection</a>

4 个答案:

答案 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;
}

在我的代码片段中,我正在回应永久链接。你可以随心所欲地做任何事情(将它存储在一个数组中,在链接定义中使用它,或者任何东西。