Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果输入为空,如何使用PHP显示其他内容?_Php_Wordpress - Fatal编程技术网

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

如果输入为空,如何使用PHP显示其他内容?,php,wordpress,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

我的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行显示?

正在测试字符串“nl_logo”是否为真。该值始终为真

尝试如下更改代码:

<?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; ?>

">

您正在测试字符串“nl_logo”是否正确。这总是正确的

尝试如下更改代码:

<?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; ?>

">

不要关闭php标记

无论您需要编写什么html,只需在一个大php块中将其作为echo语句编写即可


这将解决您的问题

不要关闭php标记

无论您需要编写什么html,只需在一个大php块中将其作为echo语句编写即可

这将解决您的问题

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

if(!empty($nl_logo)) {
    // stuff
} else {
    // other stuff
}
您可以尝试使用该方法测试字符串是否为空。在上下文中:

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

这没有意义:

if ("nl_logo")
你基本上是说,如果字符串存在,那么继续,当然是这样

采用输入字符串更有意义:

$input = $_POST["postedInput"];
例如,只要您知道如何将值输入到
$input
中,这并不重要

现在,您可以使用来确定是要使用用户的输入,还是要使用默认标题:

$img = $input == "" ? bloginfo($input) : get_option($input);
取决于函数的功能。如果get_options返回字符串,则此操作将起作用

无论如何,不要误用PHP和HTML,这会使事情变得复杂,你会陷入糟糕的设计中

注:


确保使用
isset

检查输入是否实际收到,这没有意义:

if ("nl_logo")
你基本上是说,如果字符串存在,那么继续,当然是这样

采用输入字符串更有意义:

$input = $_POST["postedInput"];
例如,只要您知道如何将值输入到
$input
中,这并不重要

现在,您可以使用来确定是要使用用户的输入,还是要使用默认标题:

$img = $input == "" ? bloginfo($input) : get_option($input);
取决于函数的功能。如果get_options返回字符串,则此操作将起作用

无论如何,不要误用PHP和HTML,这会使事情变得复杂,你会陷入糟糕的设计中

注:


确保使用
isset

检查输入是否实际收到。尝试此操作……同时尝试理解它

与既定的编码风格保持一致:

<?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
    $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,这样做而不是使用empty,感觉更干净!empty()

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

与既定的编码风格保持一致:

<?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
    $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,这样做比使用!empty()感觉更干净。


应该是

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


应该是

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


出色的定位..我没有看到:)出色的定位..我没有看到:)我只是添加了一个更干净的版本。关于@Hardy关于大括号的评论。很多人对此很挑剔,但这是为了代码可读性和一些只有几行的东西,大括号是可以的。任何人都可以遵循这个c中的逻辑ode没有问题。对于更长的块,您可以使用如下替代语法:对于更干净的版本,这些函数中的某些函数可能不会返回值,但实际会回显它们,这可能是它无法工作的原因之一。您不能使用empty()在一个函数上,它不会直接工作,但您可以检查它是否为空字符串(“”)。关键是您需要知道函数get_选项将返回什么。只要它返回“”,它就会工作,但函数通常会返回false,而这并不等于“”。无论如何,它是这样的:if(get_option('nl_logo')==“”){…code…}如果它是一个可以使用的变量!empty($variable)!=NOT…NOT empty…但不允许对函数执行此操作(get_选项是函数),因此必须先将其存储到变量中,如上面的示例所示。empty是null、false、空数组、数字零或字符串”“。如果您只是查找null,则可以使用isset,或者如果您确切知道可以执行的值类型!”或者!=0..我刚刚添加了一个更干净的版本。关于@Hardy关于大括号的评论。很多人对此很挑剔,但这是为了代码可读性,对于只有几行的东西,大括号是可以的。任何人都可以毫无问题地遵循代码中的逻辑。对于更长的块,可以使用替代语法li这样做是为了干净