PHP变量不显示使用bloginfo的图像('template_directory')

时间:2014-11-05 19:35:49

标签: php wordpress

我需要在变量中存储超链接图像,然后为我的WordPress网站回显该变量。我发现使用bloginfo(' template_directory')更方便,这样我就可以在本地服务器和实时服务器之间来回切换。

但变量中的bloginfo(' template_directory')不起作用,它什么都不显示。但是bloginfo(' template_directory')可以在我网站的其他区域使用。可能是什么问题?

CODE A有效。请注意URL中的127.0.0.1

<?php
$var = '<a href="http://www.twitter.com">
    <img src="http://127.0.0.1/wp-content/themes/twentyfourteen/images/social/twitter.png" />
    </a>';
echo $var;
?>

代码B不显示任何内容。为什么以下不起作用?请注意下面我使用的是bloginfo(&#39; template_directory&#39;)而不是127.0.0.1

<?php
$var = '<a href="http://www.twitter.com">
    <img src="<?php bloginfo('template_directory'); ?>/images/social/twitter.png" />
    </a>';
echo $var;
?> 

编辑

CODE C如何替换&#34; twitter&#34;变量? (我指的是下面第3行,单词&#34; twitter&#34;位于img src中)

<?php
    $var = '<a href="http://www.website.com">
        <img src="' . get_bloginfo("template_directory") . '/images/social/twitter.png" />
        </a>';
    echo $var;
?> 

3 个答案:

答案 0 :(得分:1)

您无法在PHP标记中使用PHP标记:

只需连接字符串:

<?php
    $var = '<a href="http://www.twitter.com">
        <img src="' . get_bloginfo("template_directory") . '/images/social/twitter.png" />
        </a>';    //↑                                    ↑ See here
    echo $var;
?> 

答案 1 :(得分:1)

你需要在var中使用get_bloginfo。在字符串中也不需要php标签。 http://codex.wordpress.org/Function_Reference/get_bloginfo

<?php
     $var = '<a href="http://www.twitter.com"><img src="'. get_bloginfo('template_directory') .'/images/social/twitter.png" /></a>';
     echo $var;
?>

还建议使用类似的东西代替儿童主题。 http://codex.wordpress.org/Function_Reference/get_template_directory_uri

<?php
    $var = '<img class="svg " src="'. get_template_directory_uri() .'/images/social/twitter.png">'
    echo $var;
?>

为了回应您的EDIT C代码块,我猜测您正在尝试遍历某些社交媒体图标链接。您可以这样做:

<?php
    // Array of social sites
    $sites = array(
        'twitter',
        'facebook',
        'instagram'
    );

    // Loop through each
    foreach($sites as $site){
        $var = '<img src="'. get_template_directory_uri() .'/images/social/'. $site .'.png">';
        echo $var;
    }
?>

答案 2 :(得分:1)

请勿使用get_bloginfo( 'template_directory' )以及用于子主题的get_bloginfo( 'stylesheet_directory' )。这些用于早期的Wordpress版本。在后来的版本中,这些被“更换”了更合适的功能。

正确使用的函数是get_template_directory_uri()用于父主题,get_stylesheet_directory_uri()用于子主题。我建议您仔细阅读这些页面

至于你的语法,正如另一个答案中所解释的那样,你不能在不分离它们的情况下在同一个字符串中使用HTML和PHP。这是使用string operators完成的,您可以在提供的链接中阅读

您似乎需要添加社交媒体图标。如果是这样,请查看这两个帖子。特别阅读@toscho对我的问题所做的那一次。这应该可以帮助你解决一些问题