PHP wordpress如果文本值为空,则echo


PHP wordpress if a text value is empty, echo

我正在构建一个wordpress主题。在后台,用户可以选择输入其社交网络(即推特、脸书、instagram等(的url。然后,这些URL被动态地添加到链接到相应网络的主题前端中的图像中。

我遇到的问题是,如果用户没有输入网络的url,我不希望显示图像。我正试图编写这样的代码:如果url为空,则echo"class="hidden"-这个类在css中有display:none。

这是我的php:的一个片段

<ul class="icons">
    <li <?php if (get_theme_mod('footer_twitter')==0) {echo 'class="hidden"'; } ?>><a href="<?php echo get_theme_mod('footer_twitter'); ?> " class="icon circle fa-twitter"><span class="label">Twitter</span></a></li>
</ul>

和css:

ul.icons li.hidden {
   display:none;
}

上面的php代码当前为所有情况输出echo语句,即使在后台输入了url。有人能帮我处理这个代码吗?

检查"get_theme_mod(("的返回。您可以使用进行检查,因为我不认为它是"==0"。http://codex.wordpress.org/Function_Reference/get_theme_mod

var_dump(get_theme_mod('footer_twitter'));
//string(0)

这是你的新代码:

<ul class="icons">
    <li class="<?php echo empty(get_theme_mod('footer_twitter')) ? 'hidden' : ''; ?>">
        <a href="<?php echo get_theme_mod('footer_twitter'); ?> " class="icon circle fa-twitter">
            <span class="label">Twitter</span>
        </a>
    </li>
</ul>

请检查此语法:http://php.net/manual/en/control-structures.alternative-syntax.php这是在"视图"代码中对控制结构进行编码的最佳方式。

<?php if (!empty (get_theme_mod( 'set_address2' ))) {
    echo get_theme_mod( 'set_address2');
}?>

这在Wordpress中似乎对我有用。让我知道这是否有效。