获得第一任期


10

如何仅获得自定义帖子类型的第一项。
我可以全力以赴-没问题。这就是我用来抓住所有人的东西

<?php foreach ($terms as $term) {echo '<a href="'.get_term_link($term->slug, 'sitecat').'">'.$term->name.'</a>,';} ?> >> <a href="<?php the_permalink(); ?>"><?php the_title('', ''); ?></a></h2></span>

希望能使用我的代码给出答案,但是我们非常欢迎任何帮助

Answers:


23

我不确定“第一”分类法是什么意思,但是,

$terms = get_the_terms( $post->ID, 'mytaxonomy' );

返回一个分类法术语对象数组,因此

$term = array_pop($terms);

会给你数组中的第一项。然后:

echo '<a href="'.get_term_link($term->slug, 'mytaxonomy').'">'.$term->name.'</a>,'

(您可能想包括一些if语句,以防返回空数组或错误(请参阅参考资料is_wp_error


刚刚尝试了这个。.得到一个错误:可捕获的致命错误:类别WP_Error的对象无法转换为在线/home/content/14/6469114/html/wp-content/themes/sagive/single-website.php中的字符串40
Sagive SEO 2012年

在第40行:<?php $ terms = get_the_terms($ post-> ID,'sitecat'); array_pop($ terms); 回声'<a href="'.get_term_link($term-> slug,'sitecat')。'“>'。$ term-> name。'</a>'; ?>
Sagive SEO 2012年

确定..错误是在我身边-不是你的答案;)非常感谢队友
Sagive SEO

4

从PHP 5.4开始,您可以直接取消对数组的引用,因此,只需获得第一个条件即可。

$first_term = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0];
var_dump( $first_term );

如果您需要第一个术语的特定属性(例如术语名称),则可以执行以下操作

$first_term_name = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0]->name;
var_dump( $first_term_name );

编辑

请注意,这确实有其缺点,因为WP_Error如果分类法无效,您将获得一个对象。另外,如果返回的数组为空,您还将收到未定义的数组键警告,因此请谨慎使用。


0

它为我工作。它仅带来第一个类别作为文本,没有锚点。

$terms = get_the_terms( $post->ID , 'your_custom_taxonomy' ); 
foreach( $terms as $term ) { 
    print $term->name;
    break;
    unset($term);
}

1
什么“为您工作”?旁注:break;会真正停止您的声明,unset不会触发,只会处理第一个项目。
kaiser 2014年

unset( $term );应该是您的foreach循环,而不是里面它:-)
彼得·古森

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.