首先,您直接在类的新实例中调用WordPress函数,这会导致一个空的wp\\U查询状态,在调用代码时会生成一个日志。
要解决此问题,您应该将呼叫移动到init
胡克,像这样:
class Something() {
public function __construct() {
add_action(\'init\', [$this, \'my_func\']);
}
public function my_func() {
if ( is_single() ) {
require_once( \'/lib/control.php\' );
}
}
}
new Something();
您的函数将在WordPress初始化结束后和任何标头之前运行,因此,全局
$wp_query
实例现在知道发生了什么。
如果上述解决方案对您无效,您也可以尝试以下方法:
将通话移动到single.php
主题的文件。(简单,凌乱)
再次检查您的single.php
文件已用循环包装。尝试更换is_single
方法$wp_query->is_single()
看看会发生什么。(不要忘记添加global $wp_query
在函数的第一行)