【问题标题】:Prepend hashtags in wordpress wp_tag_cloud在 wordpress wp_tag_cloud 中添加主题标签
【发布时间】:2024-01-22 21:13:01
【问题描述】:

如何在 wp_tag_cloud 前添加“#”?

这是我目前的代码

$args = array(
      'order'   => 'count',
      ); 
wp_tag_cloud( $args ); 

分隔符不起作用,因为这不会影响第一个标签。

谢谢!

【问题讨论】:

  • 你反对通过CSS“内容”添加它们吗?
  • 嗯,我该怎么做?

标签: php html wordpress tags


【解决方案1】:

我可以在这里看到几个选项。根据您的代码,您似乎正在使用默认的 'format' => 'flat' 参数。如果您想使用它,您应该能够使用 CSS 为每个标签添加主题标签。类似于以下内容:

a[class^="tag-link-"]::before {
    content: '#';
}

或者,您可以使用'format' => 'array' 参数返回一个标签数组,然后循环遍历它们并随心所欲地回显它们。在 PHP 中,这看起来像:

$args = array(
    'order'   => 'count',
    'format'  => 'array',
); 
$tags = wp_tag_cloud( $args );

foreach ( $tags as $tag ) {
    echo '#' . $tag . ' ';
} 

当然,还有更优雅的方法可以使用 PHP 将 # 实际包装在同一个链接标签中。

【讨论】:

  • 好的,谢谢!我只是太缺乏经验,看不到这样的事情:) 完美的解决方案
  • 不客气。很酷的是,既然您已经看过了,您可能会将这些技术添加到您的武器库中,并开始以不同的方式思考类似的问题。
  • 是的 :) 如果我回首半年,我学到了很多东西。所以你的回答也会让我更进一步。但说真的,我不知道我会做什么不使用 * :D 祝你有美好的一天!
【解决方案2】:
$tags = wp_tag_cloud(['number' => 7, 'orderby' => 'count', 'order' => 'DESC', 'format' => 'array']);
foreach ($tags as $tag){
    $tagTitle = strip_tags($tag);
    $tagLink = get_bloginfo('home') . '/tag/' . str_replace(' ', '-', $tagTitle);
    echo '<li><a href="' . $tagLink . '">#' . $tagTitle . '</a></li>';
}

【讨论】: