如何解决WordPress中WP_User_Query::query调用错误?
WordPress WP_User_Query 调用错误解决方法
Notice: Function WP_User_Query::query was called incorrectly. User queries should not be run before the plugins_loaded hook. Please see Debugging in WordPress for more information. (This message was added in version 6.1.1.) in /home3/middls9t/xyz.com/wp-includes/functions.php on line 5835
这个提示的核心问题是WP_User_Query::query()函数被过早调用——WordPress明确要求用户查询操作必须在plugins_loaded钩子执行完成后再运行,不能在该钩子触发前执行相关查询。
解决步骤:
- 定位问题代码:找到主题或插件中直接调用
WP_User_Query或其query()方法的代码段。这类代码通常出现在主题functions.php开头、插件主文件顶部,没有绑定到任何WordPress钩子上。 - 延迟查询执行:将用户查询代码包裹到钩子回调函数中,确保在
plugins_loaded之后运行。推荐使用init钩子(此时WordPress环境初始化更完整),示例如下:// 错误写法:直接在文件顶部执行查询 $user_query = new WP_User_Query( $args ); $users = $user_query->get_results(); // 正确写法:绑定到init钩子延迟执行 add_action( 'init', 'run_custom_user_query' ); function run_custom_user_query() { $args = array( // 填写你的查询参数,比如role、search等 ); $user_query = new WP_User_Query( $args ); $users = $user_query->get_results(); // 在这里处理查询结果 } - 排查第三方工具:如果是第三方主题或插件引发的错误,先禁用所有插件,逐个启用排查;或切换到WordPress默认主题(如Twenty Twenty-Four)确认问题来源。若为第三方工具问题,可等待开发者更新,或通过自定义插件覆盖其逻辑(不建议直接修改第三方文件,避免更新后丢失修改)。
- 临时隐藏提示(不推荐):若只是想暂时屏蔽通知,可在
wp-config.php中设置WP_DEBUG为false,但这只是掩盖问题,无法从根源解决:define( 'WP_DEBUG', false );
内容的提问来源于stack exchange,提问作者Ashish
相关产品推荐
相关产品推荐

