【问题标题】:How to display the tags?如何显示标签?
【发布时间】:2016-05-10 00:04:17
【问题描述】:

我创建信息簿框,其中类别为发布者,标签为流派。这是我的代码:

<table>
<?php
    $my_publisher = get_the_category();
    $my_genre = get_the_tags();

if( ! empty( $my_publisher[0] ) ) {
        echo '<tr><td align="right" class="infobook"><b>Publisher</td><td align="center" class="infobook">:</td></b><td class="infobook"> <a href="'.get_category_link($my_publisher[0]->term_id ).'">'.$my_publisher[0]->cat_name.'</a></td></tr>';
            }

if( ! empty( $my_genre ) ) {
        echo '<tr><td align="right" class="infobook"><b>Genre</td><td align="center" class="infobook">:</td></b><td class="infobook"> ' .$my_genre. ' </td></tr>';
            }
?>
</table>

作为发布者的类别是有效的,但作为流派的标签不起作用(不显示)。 我应该怎么做才能修复代码?

【问题讨论】:

  • 我将此代码用于类别作为发布者:term_id ).'">'.$category[0]->cat_name.'' ; } ?>(来源:dbarnwal.wordpress.com/2014/07/23/…)。但是我还没有找到另一种显示标签的方法。
  • 我查看了documentation,看起来它返回了一个对象数组,所以你不能像那样回显它。查看链接中的文档,了解他们如何使用foreach 并获取每个标签的名称。

标签: php wordpress tags


【解决方案1】:

get_the_tags() 返回一个对象数组。每个对象都有一个“名称”属性。如果要显示分配给帖子的所有标签,则必须遍历它们并回显每个标签的 name 属性。如果要显示每个标签的链接,则必须使用get_tag_link() 函数并传入标签对象以获取链接。

我修改了代码;你可以在下面看到它。我使用数组来存储链接,然后使用逗号作为分隔符将其内爆。

<table>
<?php
$my_publisher = get_the_category();
$my_genre = get_the_tags();

if( ! empty( $my_publisher[0] ) ) {
    echo '<tr><td align="right" class="infobook"><b>Publisher</td><td align="center" class="infobook">:</td></b><td class="infobook"> <a href="'.get_category_link($my_publisher[0]->term_id ).'">'.$my_publisher[0]->cat_name.'</a></td></tr>';
}

if( ! empty( $my_genre ) ) {
    $tag_links = array();
    foreach($my_genre as $tag) {
        $tag_links[] = '<a href="'.get_tag_link($tag).'">'.$tag->name.'</a>';
    } 
    echo '<tr><td align="right" class="infobook"><b>Genre</td><td align="center" class="infobook">:</td></b><td class="infobook"> ' . implode(',', $tag_links) . ' </td></tr>';
}
?>
</table>

【讨论】:

  • 感谢安德鲁先生。但仍然无法正常工作。我正在尝试将您的代码编辑为 'if( ! empty( $my_genre ) ) { $tag_links = array(); foreach($my_genre as $tag) { } echo ' 流派'.$tag->name.' '; }'。它正在工作,但仅显示 4 个现有标签中的一个标签。
  • @PUSTAKAKORAN.COM 哎呀,我的代码出错了。我编辑了它。现在可以试试了吗?
  • @PUSTAKAKORAN.COM 不要编辑它,它应该可以正常工作。
  • 太棒了……!非常感谢安德鲁先生。我的问题解决了。
猜你喜欢
相关资源
最近更新 更多
热门标签