【问题标题】:need help in using get_the_tag_list($ID) WordPress在使用 get_the_tag_list($ID) WordPress 时需要帮助
【发布时间】:2010-10-27 05:04:00
【问题描述】:

我正在制作一个新的 WordPress 模板,我只想以文本格式获取与帖子关联的标签列表。我正在使用

get_the_tag_list($id)

但问题是它会返回 URL 以及文本。有什么方法可以获取附加到以逗号分隔的帖子的标签的“文本”?

tag1, tag2, tag3, tag4 等没有 URL 并且只是文本?

谢谢

【问题讨论】:

标签: php wordpress wordpress-theming


【解决方案1】:

模板标签get_the_tags()返回一个数组,该数组包含与当前在循环中的上下文中的帖子相关联的所有标签。您可以遍历这个数组并手动生成一个逗号分隔的列表。

这是一个使用 implode 和 print_r 函数的示例:

<?php
$posttags = get_the_tags();
if ($posttags) {
  foreach ($posttags as $tag) {
     $tagnames[count($tagnames)] = $tag->name;
  }
  $comma_separated_tagnames = implode(", ", $tagnames);
  print_r($comma_separated_tagnames);
}
?>

【讨论】:

  • 嘿——这很完美,但它会返回所有标签——不仅仅是帖子的标签?
  • 任何想法如何让它只为单个帖子返回标签?
  • 上面的代码返回单个帖子的标签,如果你把它放在单个帖子的循环中。您不会向 get_the_tags 发送 ID,因此它是上下文相关的。如果您在更全局的上下文中使用此代码,则可以在 foreach 中针对 $tag->term_id 进行测试,以过滤掉您不感兴趣的标签。
  • 再次感谢您的回复-当我使用此代码时,我面临的问题是标签是“聚合的”,即它在顶部帖子上打印标签很好-只出现顶部帖子标签,但随后在第二个帖子中 - 它打印顶部帖子标签和第二个帖子标签,依此类推。第三篇文章、第 1 篇、第 2 篇和第 3 篇文章标签等如何限制此代码中的标签,只显示一篇文章?
  • 即这段代码完美运行 name . ' '; } } ?> 它只返回每个帖子的标签。你的工作很好 - 因为我可以在 echo 中打印 $comma_separate_tagnames - 但我不是 PHP 编码器,所以不知道如何更改代码以不“计数/聚合”标签 - 而只是显示每个帖子的标签
【解决方案2】:
<?php
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
echo $tag->name . ','; 
}
}
?>

来源:http://codex.wordpress.org/Template_Tags/get_the_tags

【讨论】:

  • 我错过了它与埃文的回复几乎相同。它仍应按循环内的要求工作。在我自己的博客上,我使用 the_tags('', ', ', '');在帖子标题之后打印标签列表。这些都包含链接,所以我想它对你没有用。
猜你喜欢
  • 2016-07-29
  • 1970-01-01
  • 2018-10-21
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多