正确使用wp_get_Object_Terms

时间:2011-04-08 作者:Marcel

Summary:
如何获取返回的对象的名称和永久链接wp_get_object_terms()?

Detailled:
我创建了一个名为“ge\\u zielgruppe”的自定义帖子类型和一个名为“ge\\u zielgruppe\\u taxonomy”的分类法。后者可以附加到帖子和“ge\\u zielgruppe”帖子类型。

在“ge\\u zielgruppe”的单个页面上,我想展示最后几篇贴有相同“ge\\u zielgruppe\\u分类法”标签的帖子。我是用

<?php
$theZielgruppe = wp_get_object_terms($post->ID, \'ge_zielgruppe_taxonomy\');
$zielgruppe = new WP_Query(array(\'ge_zielgruppe_taxonomy\' => $theZielgruppe->slug));
$zielgruppe->query(\'showposts=10\');
if ($zielgruppe->have_posts()) :
    while ($zielgruppe->have_posts()) :
        $zielgruppe->the_post();
?>
<<--archive-stuff-->>
<?php
    endwhile;
endif;
?>
这部分有效(但是,我不知道它是否优雅)。

现在我想在这10篇帖子后面加一个链接,如下所示

<a href="<<--permalink to archive of \'ge_zielgruppe_taxonomy\'-->>" rel="bookmark" title="More posts for <<--Name of \'ge_zielgruppe_taxonomy\'-->>; ">More posts for <<--Name of \'ge_zielgruppe_taxonomy\'-->></a>
那我怎么才能

  1. <<--permalink to archive of \'ge_zielgruppe_taxonomy\'-->><<--Name of \'ge_zielgruppe_taxonomy\'-->>

1 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

要获取该分类术语的归档url,请使用如下内容(我使用上面的命名约定,并假设$theZielgruppe 是一个术语对象。

$url = get_term_link( $theZielgruppe, \'ge_zielgruppe_taxonomy\' );
要获得名称,只需使用

$theZielgruppe->name
这就是你要找的吗?

编辑上面的链接如下所示:

<a href="<?php echo get_term_link( $theZielgruppe, \'ge_zielgruppe_taxonomy\' ); ?>" rel="bookmark" title="More posts for <?php echo $theZielgruppe->name; ?>; ">More posts for <?php echo $theZielgruppe->name; ?></a>
编辑2

wp_get_object_terms() 返回术语数组。如果您更改了$theZielgruppe$theZielgruppe[0] 使用当前ge_zielgruppe 与相关。不过,这是一个警告:wp_get_object_terms() 可以作为空数组或WP_Error. 您可能需要更改代码以检查:

<?php
$theZielgruppe = wp_get_object_terms($post->ID, \'ge_zielgruppe_taxonomy\');
if( !empty( $theZielgruppe ) && !is_wp_error( $theZielgruppe ) ):
    $theZielgruppe = $theZielgruppe[0];
    $zielgruppe = new WP_Query(array(\'ge_zielgruppe_taxonomy\' => $theZielgruppe->slug));
    $zielgruppe->query(\'showposts=10\');
    if ($zielgruppe->have_posts()) :
        while ($zielgruppe->have_posts()) :
            $zielgruppe->the_post();
    ?>
    <<--archive-stuff-->>
    <?php
        endwhile;
    endif;
    ?>
    <a href="<?php echo get_term_link( $theZielgruppe, \'ge_zielgruppe_taxonomy\' ); ?>" rel="bookmark" title="More posts for <?php echo $theZielgruppe->name; ?>; ">More posts for <?php echo $theZielgruppe->name; ?></a>
    <?php
endif;
?>

结束