输出CPT单一职位分类术语的插件和名称

时间:2019-04-23 作者:Desi

当我在一篇自定义帖子类型的帖子上时,我希望能够抓住slugname 这样我就可以将它们插入到链接中。下面是我尝试过的,但似乎不起作用。

<?php

$term_slug = get_queried_object()->slug;
$term_name = get_queried_object()->name;

echo \'<span class="back-button"><a href="/portfolio/\' .$term_slug. \'">&larr; Back to \' .$term_name. \'</a></span>\';

?>
例如,如果我在一篇自定义帖子类型“Projects”的帖子上,而分类术语是“Album Artwork”,那么我希望能够抓住slug “album artwork”和名称“album artwork”,这样我就可以把它们放到链接中。我该怎么做?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

如果你只写一篇文章,那么你的代码就不能工作,因为get_queried_object 将包含帖子(而不是术语)。

如果你想获得给定职位的条款,你应该使用get_the_terms 作用

$terms = get_the_terms( get_the_ID(), \'<TAXONOMY_NAME>\' ); // <- put real tax name in here
你还必须记住,一篇文章可能有多个术语,因此上面的一行将为你提供一个术语数组。您可以这样循环:

foreach ( $terms as $term ) {
     echo \'<span class="back-button"><a href="/portfolio/\' .$term->slug. \'">&larr; Back to \' .$term->name. \'</a></span>\';
}
最后一件事。。。

你不应该像你那样建立术语链接。有一个功能用于:get_term_link 您应该使用它,而不是将一个术语的slug与一些字符串连接起来(为什么?因为一些插件可能会更改此类链接的结构,您的代码将停止工作)。

因此,完整代码可以如下所示:

$terms = get_the_terms( get_the_ID(), \'<TAXONOMY_NAME>\' ); // <- put real tax name in here
if ( $terms and ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo \'<span class="back-button"><a href="\' . esc_attr( get_term_link( $term ) . \'">&larr; Back to \' . esc_html($term->name) . \'</a></span>\';
    }
}

相关推荐

WordPress在wp_set_Object_Terms行显示致命错误

我想以编程方式设置一些产品类别。当一个新产品发布时,它正在工作。但当我可以更新它时,它会显示一个错误,如:后端致命错误:PHP致命错误:无法在插件/自定义同步产品/trade\\u函数中使用WP\\u error类型的对象作为数组。php第100行\\n.任何人都可以帮助我解决此错误。function set_product_category_woo($T_product_type,$post_id){ $product_categories = term_exists($T_p