GET_TEMPLATE_DIRECTORY()仍在返回上一个主题的路径

时间:2013-10-24 作者:composerMike

在WordPress中,我一直在安装和使用各种主题,包括2013、Roots和现在的BlankSlate。我注意到现在我激活了BlankSlate,函数get_template_directory() 用于首页。php仍在返回根主题目录的路径。我当前的头版。php如下所示。

<?php get_header(); ?>
<section id="content" role="main">
       <img class="frontpageimg" src="<?php get_template_directory(); ?>/images/slogan-2.png">


       <h4>In the Los Angeles area? </h4> <p>Ask about free demo loaners! </p>
       <h4>We also take mail orders.</h4> On all orders, there is a 30-day return policy!</p> 



       <img src = "<?php get_template_directory(); ?>/assets/img/cables-ers-absorber-700.jpg"/></a>
       <img src = "<?php get_template_directory(); ?>/assets/img/blueprint-silencers-v2-700.jpg"/></a>
       <img src = "<?php get_template_directory(); ?>/assets/img/brav-front-page-700.jpg"/></a>

        <a href="contact" class="btn btn-lg btn-orange">Contact Us</a>

</section>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
编辑更新:进行了一些调试,如下所示:

停用所有插件。注销,清除缓存。问题仍然存在。

从BlankSlate(问题显而易见)切换到2013主题。类似的行为,虽然我现在可以更具体地说那是什么行为。在2013年的主题中,显然PHP构造<?php echo get_template_directory(); ?>/path-in-2013-theme/file.jpg 有效,但<?php get_template_directory(); ?> 返回根主题的路径。这同样适用于<?php echo get_template_directory_uri(); ?> (正确使用echo 但并非没有)。

然而,BlankSlate中的行为有些不同。没有echo 二者都get_template_directory()get_template_directory_uri() 返回根主题的路径,同时使用echo 他们做了一些其他的事情(但我不确定那是什么……我如何转储这些值以进行调试?)

进一步调试:

我可以用Firebug检查页面源代码。果然,这些函数没有回声就没有输出。所以图像来源是src="/assets/img/brav-banner-3.jpg 等等这在一些主题中起到了作用。我的意思是我可以看到图像。那么可能是缓存问题?当我添加echo并更改jpg的路径时,我能够让它在BlankSlate主题中工作。所以我将把这个问题标记为已解决,作为一个缓存问题。

1 个回复
最合适的回答,由SO网友:Otto 整理而成

get\\u template\\u directory()和get\\u template\\u directory\\u uri()函数实际上根本不回显任何内容。除非你回应它们,否则它们根本不会输出。

您的代码如下所示:

<img class="frontpageimg" src="<?php get_template_directory(); ?>/images/slogan-2.png">
应实际导致此输出:

<img class="frontpageimg" src="/images/slogan-2.png">
这可能不是你所期望的。检查页面的来源。并添加回声,这不是可选的。:)

此外,如果主题可能与相对URL和重写等内容发生了冲突,正如Chip所建议的那样,那么您的浏览器正在缓存。众所周知,浏览器缓存很难调试。我喜欢使用Chrome和inspector工具,因为当你打开它时,右键单击“重新加载”按钮会给你一个“空缓存和硬重新加载”,它可以做更多你期望它做的事情,以显示事情的真实情况。

结束

相关推荐

Get WP Install Directory

我有一个主题,我为自己感到骄傲我设计安装在wp位于根级别的wp站点。然后,我的一半用户在mysite上安装了该主题。com*/wordpress/*!。。。这没用。。。因此,需要进行一些路径转换。我创建了许多常量,所以我不必总是重写路径。示例://http constants $symbiostock_template_directory = get_bloginfo(\'template_directory\'); define(\'symbiostock_CLASS