使用常量而不是GET_STYLESET_DIRECTORY_URI有什么好处吗?

时间:2015-11-16 作者:MrKainig

在wp配置中定义常量时,是否有任何好处。像这样的php

<php define(\'PATH_TO_THEME\', get_stylesheet_directory_uri() ); ?>
然后参考PATH_TO_THEME 而是使用get_stylesheet_directory_uri() 多次?

我从wordpress手册中了解到,当您多次调用此函数时,与使用类似于常量的PATH\\u to\\u主题相比,它会消耗更多的性能。这是真的吗?为什么呢?

或者,当使用绝对uri定义常量时,它是否只会提高性能<php define(\'PATH_TO_THEME\', \'http://example.com/wp-content/themes/themename\' ); ?> 这当然意味着您必须在网站的url或样式表目录的位置发生更改时更改uri。

2 个回复
最合适的回答,由SO网友:Hans Koch 整理而成

你可以阅读主题的源代码。php何处get_stylesheet_directory_uri() 定义,在内部您将看到str_replace() wich在每个请求上都会消耗额外的资源。避免这种情况的最好方法是定义一个包含路径的变量或常量。在这种情况下,只调用一次。

https://core.trac.wordpress.org/browser/tags/4.3.1/src/wp-includes/theme.php#L0

SO网友:Milo

呼叫时get_stylesheet_directory_uri 与设置常量相比,多次确实会消耗一些额外的资源,我怀疑您能否可靠地衡量它对代码的总体影响。您还将丢失应用于的输出的过滤器get_stylesheet_directory_uri, 如果它是根据上下文更改的,则会使代码的可读性稍微降低。

如果你想在你的网站上寻找一些额外的速度,这可能是优化列表的底部。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请