如果输入为空,如何使用PHP显示其他内容?

时间:2013-12-10 00:11:10

标签: php wordpress

我的WordPress选项面板有一个部分,用户可以在其中粘贴其徽标的URL以显示在标题中。如果输入为空白,我希望博客的标题显示在我的标题上。输入的ID是“nl_logo”,所以我在标题中添加了一个if语句。

<?php if ("nl_logo") { ?>
    <img src="<?php echo get_option('nl_logo'); ?>">
<?php } else { ?>
    <h1><a href="'get_site_url()' ?>"><?php bloginfo('name'); ?></a></h1>
<?php } ?>

if语句的第一部分有效。但是,当我的输入中没有保存URL时,其他任何内容都不起作用。因此,如果输入为空,如何使用PHP显示其他内容?或者有不同的更好的方法来做到这一点?例如,创建一个函数并调用结果以使用简单的PHP行显示?

6 个答案:

答案 0 :(得分:3)

试试这个......也试着理解它。

保持既定的编码风格:

<?php $nlLogo = get_option('nl_logo'); ?>
<?php if (empty($nlLogo)) { ?>
    <h1><a href="<?php echo(get_site_url()); ?>"><?php echo(bloginfo('name')); ?></a></h1>
<?php } else { ?>
    <img src="<?php echo($nlLogo); ?>">
<?php } ?>

现在至少应该是有效的PHP。我不知道你使用的功能是否正确,但是如果它们应该有效。

这是一种更清洁的方法......

<?php
    $nlLogo = get_option('nl_logo');
    if (empty($nlLogo)) {
        echo('<h1><a href="'.get_site_url().'">'.bloginfo('name').'</a></h1>');            
    } else {
        echo('<img src="'.$nlLogo.'">');
    }
?>

选项三,因为我使用三元组感觉“教学”。可能有点长,这是最好的选择,但它是另一种选择。

<?php
    $nlLogo = get_option('nl_logo');
    echo(empty($nlLogo) ? '<h1><a href="'.get_site_url().'">'.bloginfo('name').'</a></h1>' : '<img src="'.$nlLogo.'">');
?>

注意我切换了if / else,因为我使用的是空的,这样做感觉更干净而不是使用!empty()

答案 1 :(得分:1)

<h1><a href="'get_site_url()' ?>"><?php bloginfo('name'); ?></a></h1>

应该是

<h1><a href="<?php echo get_site_url() ?>"><?php echo bloginfo('name'); ?></a></h1>

答案 2 :(得分:0)

您正在测试字符串“nl_logo”是否为true。返回总是如此。

尝试更改您的代码:

<?php

   $nl_logo = get_option('nl_logo');

   if (!empty($nl_logo)): 
?>
    <img src="<?php echo $nl_logo; ?>">

<?php else: ?>

<h1><a href="<?php echo get_site_url() ?>"><?php bloginfo('name'); ?></a></h1>

<?php endif; ?>

答案 3 :(得分:0)

不要关闭php标签。

无论你需要编写什么html,只需在一个大的php块中将它写为echo语句。

这应该可以解决您的问题

答案 4 :(得分:0)

您可以尝试empty方法来测试字符串是否为空。在上下文中:

if(!empty($nl_logo)) {
    // stuff
} else {
    // other stuff
}

答案 5 :(得分:0)

这没有意义:

if ("nl_logo")

你基本上是在说这个字符串是否存在然后继续,当然是这样做。

获取输入字符串更有意义:

$input = $_POST["postedInput"];

作为一个例子,只要你知道如何将价值转化为$input,这并不重要。

现在,您可以使用ternary operator来确定是否要使用用户的输入,或者是否要使用默认标题:

$img = $input == "" ? bloginfo($input) : get_option($input);

取决于你的函数做什么..如果get_options返回一个字符串,那么这将有效。

无论如何,不​​要错误地使用PHP和HTML,它会让事情变得复杂,你会陷入糟糕的设计之中。

注意:

确保使用isset检查输入是否实际收到。