【问题标题】:If has tag, get tag, else. [Wordpress, PHP, Function]如果有标签,则获取标签,否则。 [WordPress、PHP、函数]
【发布时间】:2020-06-18 15:10:42
【问题描述】:

如果有标签,我正在尝试让 wordpress 显示标签。但是当没有标签时,如果没有标签,其他元素会受到影响并隐藏。我希望它在没有标签时显示“没有可用的标签”,而不是隐藏整个元素。

if ( !has_tag() ) return;
    $tags = get_the_tags();	
    foreach ( $tags as $tag ) {
        $tag_link = get_tag_link( $tag->term_id );				
    }
	
    echo "<li class='list-group-item'><a href='{$url}' class='btn btn-danger btn-sm'><strong>Original Size</strong> ({$original_w}x{$original_h})</a>&nbsp;<a href='{$tag_link}' class='btn btn-danger btn-sm'><strong>Show more {$tag->name} wallpaper</strong></a></li>";

当帖子中有标签时 http://i.stack.imgur.com/Tl06G.png

当帖子中没有标签时 http://i.stack.imgur.com/jUyAZ.png

即使帖子中没有标签,我也想显示元素。

仅供参考,我是 PHP 新手。

【问题讨论】:

  • 那么如果没有标签你如何显示标签?
  • 您尝试过什么来调试该问题?当 has_tag() 返回 false 时使用 return 可能是一个很好的起点

标签: php wordpress


【解决方案1】:

您的代码在这里有点乱。您需要检查$tags 是否为空。如果没有标签,$tags 将为空,这意味着get_the_tags 返回一个空数组。

你可以这样做

$tags = get_the_tags();

if($tags) {
    //your foreach loop to show tags
}else{
    // show something else if there are no tags
}

【讨论】:

    【解决方案2】:

    你可以做这样的事情。这对我有用。

       <div class="post-tags">
      <?php
    global $post;
    if(has_tag()){
    foreach(get_the_tags($post->ID) as $tag)
    {
            echo '<a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a>';
    
    }
    }else{
    echo 'No tags available';
    }
    
    ?>
    </div>

    【讨论】:

      【解决方案3】:

      您已经收到了很好的答案,我想补充一些一般性的内容:

      您还可以使用 PHP 函数 count() 来计算数组中的项目数。这将为您提供更精确的信息,而不仅仅是“有标签”或“没有标签”。

      如果将count() 的结果保存在变量中,则可以在switch 或if 子句等条件语句中使用它,如已显示的那样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-23
        • 2013-11-08
        • 1970-01-01
        • 1970-01-01
        • 2015-05-24
        相关资源
        最近更新 更多