Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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 echo容易解决的问题;)_Php_Wordpress_Echo - Fatal编程技术网

PHP echo容易解决的问题;)

PHP echo容易解决的问题;),php,wordpress,echo,Php,Wordpress,Echo,好的,这与Wordpress有关,我知道Wordpress堆栈交换,但我在这里问这个问题,因为这主要是一个PHP问题 我希望我的代码使用if语句显示某些内容或不显示任何内容 问题是在bulit函数中有一个变量和bloginfo('template_directory') 我写道: <?php if (!empty($instance['example'])) echo "<li><a href=". $example ."><img src

好的,这与Wordpress有关,我知道Wordpress堆栈交换,但我在这里问这个问题,因为这主要是一个PHP问题

我希望我的代码使用if语句显示某些内容或不显示任何内容

问题是在bulit函数中有一个变量和bloginfo('template_directory')

我写道:

    <?php if (!empty($instance['example'])) 

    echo "<li><a href=". $example ."><img src="?><?php bloginfo('template_directory') ?><?php echo "/images/example.png /></a></li>"; ?>   

它工作正常,直到$instance['example']不为空时,它仍然显示模板目录链接,包括images/example.png

有什么想法吗


我尝试了“.bloginfo('template_directory')”,但似乎不起作用。

PHP如果语句中没有大括号{},则只会计算其后的第一行。为了解决这个问题,

 <?php if (!empty($instance['example']))  {

echo "<li><a href=". $example ."><img src="?><?php bloginfo('template_directory') ?><?php echo "/images/example.png /></a></li>"; } ?> 


试试看它是否适合你的需要。我所做的只是插入大括号,以便if语句跨越所有参数。

您忘记在if语句之后添加
以生成
if endif块。或者,使用标准的花括号将所有命令括在if语句中

目前,它只检查第一个
echo
命令的
if

请尝试以下代码:

<?php if (!empty($instance['example'])) 

    echo "<li><a href=". $example ."><img src=".get_bloginfo('template_directory')."/images/example.png /></a></li>";
?>   

试试这个

<?php if (!empty($instance['example'])) {

    echo "<li><a href=". $example ."><img src="?><?php bloginfo('template_directory') ?>
    <?php echo "/images/example.png /></a></li>"; 

   }
?>

答案与其他答案相同,但代码格式更好:

<?php 
if(!empty($instance['example']))
{
    echo '<li><a href=' . $example . '><img src=' . bloginfo('template_directory') . '/images/example.png /></a></li>'; 
}
?> 

添加括号,删除不必要的打开/关闭php标记,并将字符串转换为单引号,因为其中没有需要处理的变量或特殊字符。

我个人会使用

<?php 
if( !empty( $instance['example'] ) )
    echo '<li><a href="' . $example . '"><img src="' . get_bloginfo('stylesheet_directory') . '/images/example.png" alt="" border="0" /></a></li>'; 
?>

首先,我们添加缺少的属性引号。
其次,我们使用样式表路径来确保它指向子主题的正确位置。
第三,我们调用
get_bloginfo
来获取echo语句的返回值。

第四,我还向图像添加了一个
border=“0”
,链接中的图像通常不需要边框,还添加了一个alt标记,因为它至少有助于通过HTML验证,即使您将其保留为空。

您能显示实际生成的HTML吗?它有什么问题吗?请尝试在{和}中封装回音每个答案都遗漏了一件事(虽然从技术上来说可能不是必需的),那就是我一直在努力添加的内容,那就是HTML属性上的引号。每个答案都连在一起,但没有在属性周围加上额外的引号。确切地说,不需要大括号,我知道,只是不知道怎么做。顺便说一句,我做这件事的方式几乎和你一样,但没有起作用。我猜是打错了。无论如何谢谢你!这是因为“bloginfo”函数“回显”自身,但get_bloginfo却没有。它对其他函数也很有用,例如_titlex get _title和其他。。