我试图在一个WordPress网站上定制wp-config.php
文件,偶然发现了这个(旧的)article on digwp.com,它建议在wp-config中设置Cookie域,我试图检查它是否能提高性能。
在www.example.com上介绍了相同的方法https://developer.wordpress.org/apis/wp-config-php/#additional-defined-constants
define( 'COOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'home' ) . '/' ) );
define( 'SITECOOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'siteurl' ) . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
define( 'PLUGINS_COOKIE_PATH', preg_replace( '|https?://[^/]+|i', '', WP_PLUGIN_URL ) );
但是,结果是以下错误:
(!)致命错误:未捕获的错误:调用未定义的函数get_option(),该函数位于/Users/jrmy/Sites/secretsoflifeanddeath/local/app/public/wp-config. php中,位于第30行
(!)错误:调用未定义的函数get_option(),该函数位于/Users/jrmy/Sites/secretsoflifeanddeath/local/app/public/wp-config. php中,位于第30行
我搜索了答案,只找到了@Nathan Dawson在this question上的一条评论,其中提到了这一点:
get_option()在wp-config.php中是不起作用的,因此您需要手动输入URL或使用其他方法来检测它。
我️想知道为什么get_option()
在wp-config.php
中似乎不起作用,尽管WordPress推荐这样做,还有什么更好的替代方法?
注意:
- 我使用的是WordPress 6.0.2
- 我的
wp-config.php
文件在cookie域声明之上还包含以下内容:
define( 'WP_SITEURL', 'https://domain.tld' );
define( 'WP_HOME', 'https://domain.tld' );
1条答案
按热度按时间anauzrmj1#
get_option是在option.php中声明的,option.php是由wp-load.php加载的(在更多的内部包含之后)。如果你打开wp-load.php的第40-60行,你会看到WordPress包含了wp-config.php,只有在那之后它才指向wp-load.php,这意味着当你在wp-config.php中时,你不能使用get_option函数。
错误是合法的,他是对的:我建议你只写硬代码,就像你与WP_SITEURL和WP_HOME