wordpress 在wp-config.php中的get_option()函数

euoag5mw  于 2022-11-02  发布在  WordPress
关注(0)|答案(1)|浏览(114)

我试图在一个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' );
anauzrmj

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

相关问题