How to display post tags

时间:2014-06-30 作者:user1181153

我正在将HTML模板转换为wordpress主题,在函数中显示post标记时遇到了一些问题。php文件。我想做的是用HTML代码将以下代码添加到函数文件中。我已经试了几天了,我已经看过抄本了,但我试的都没用。

<div class="tags">
<a href="#" rel="tag">tag 1</a> <a href="#" rel="tag">tag 2</a> <a href="#" rel="tag">tag 3</a> <a href="#" rel="tag">tag 4</a>
</div>
有谁能帮忙吗?

5 个回复
SO网友:s1lv3r

我想你正在寻找get_tags() 作用您需要将其放入single-post.php (或single.php 如果你的主题没有single-post.php) (要查找正确的模板文件,您可以随时查看 Wordpress Template Hierarchy).

要使用上述链接函数回显标签列表,您需要使用以下内容:

<?php $tags = get_tags(); ?>
<div class="tags">
<?php foreach ( $tags as $tag ) { ?>
    <a href="<?php echo get_tag_link( $tag->term_id ); ?> " rel="tag"><?php echo $tag->name; ?></a>
<?php } ?>
</div>

SO网友:Brad Dalton

这里有一种方法可以在单个帖子的内容之后添加帖子标签,只需使用the_content 从函数文件中筛选自定义函数。使用the_tags

function tags_after_single_post_content($content) {

if( is_singular(\'post\') && is_main_query() ) {

$tags = the_tags(\'<div class="entry-meta">Tagged with: \',\' • \',\'</div><br />\'); 

$content .= $content . $tags;
    }
return $content;
}
add_filter( \'the_content\', \'tags_after_single_post_content\' );

Result:

enter image description here

SO网友:Artem P

正确代码:

function tags_after_single_post_content($content) {
  $posttags = get_the_tags();
  if ($posttags) {
    $array = [];
    foreach($posttags as $tag) {
      $array[] = \'<a href="/tag/\' . $tag->slug . \'/">\' . $tag->name . \'</a>\';
    }
    $content .= \'Tags: \' . implode(\', \', $array) . \'<br>\';
  }

  return $content;
}
add_filter( \'the_content\', \'tags_after_single_post_content\' );
原因this 答案是错误的,因为the_tags 应在内部使用isThe Loop \\u标记不返回任何内容,因此其他代码不执行任何操作。在这个答案中get_the_tags 返回标记实例的数组,以便我们可以将它们附加到内容中。

SO网友:user57366

显示标记列表,其中包含指向每个标记的链接以及每个标记的特定类:

$tags = get_tags();
$html = \'<div class="post_tags">\';
    foreach ( $tags as $tag ) {
       $tag_link = get_tag_link( $tag->term_id );

       $html .= "<a href=\'{$tag_link}\' title=\'{$tag->name} Tag\' class=\'{$tag->slug}\'>";
       $html .= "{$tag->name}</a>";
    }
$html .= \'</div>\';
echo $html;

SO网友:Gunay Farzalibayli

您必须在函数末尾使用此代码。php文件:

function tags_after_single_post_content($content) {
  $posttags = get_the_tags();
  if ($posttags) {
    $array = [];
    foreach($posttags as $tag) {
      $array[] = \'<a href="/tag/\' . $tag->slug . \'/">\' . $tag->name . \'</a>\';
    }
    $content .= \'Tags: \' . implode(\', \', $array) . \'<br>\';
  }

  return $content;
}
add_filter( \'the_content\', \'tags_after_single_post_content\' );

结束

相关推荐

QUERY_POSTS按多种方式排序

我对query\\u posts orderby multiple ways有问题。我在Wordpress中有一个类别,在那里我需要显示具有排名的第一个帖子,然后按标题显示所有帖子。下面是工作代码,工作正常,但不知道如何连接这些代码。这段代码只显示排名靠前的帖子 query_posts(array(\'cat\' => $category->term_id, \'posts_per_page\' => -1, \'orderby\' => \'meta_value\', \'me