WordPress函数cache_users在更新到6.1后未找到

zd287kbt  于 2022-11-22  发布在  WordPress
关注(0)|答案(4)|浏览(151)

我在自定义插件中运行函数get_users()时出错
PHP致命错误:未捕获的错误:在/Users/priyankgohil/sites/upw-new/wp-includes/class-wp-user-query.php中调用未定义的函数cache_users()
堆栈追踪:(79)用户名和密码:用户名/密码/用户名/密码/用户名/密码/用户名/密码/用户名/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/密码/(214)用户名:用户名:用户名:用户名:用户名:用户名:用户名:获取用户(数组)(_U)
升级到wordpress6.1后,是否有人有解决方案或面临相同问题

iyfamqjs

iyfamqjs1#

在这个问题得到解决之前,您可以在wp-includes/class-wp-user-query.php的第843行上面添加以下代码:

if ( ! function_exists( 'cache_users' ) ) {
    require_once ABSPATH . WPINC . '/pluggable.php';
}

这个函数看起来像是在新版本中引入的,代码(在其他区域)看起来像是在请求pluggable.php文件之前检查该文件中的函数。

v64noz0r

v64noz0r2#

要在你自己的插件代码中包含修复程序,试试这个(对我来说很有效)

add_action('pre_get_users','fix_cache_users_bug');

function fix_cache_users_bug($query) {
    if ( ! function_exists( 'cache_users' ) ) {
        require_once ABSPATH . WPINC . '/pluggable.php';
    }   
}

我觉得这比入侵核心文件好。

ftf50wuq

ftf50wuq3#

它可以从一个必须使用的插件修补。在/wp-content/mu-plugins/cache-users.php添加一个新文件,并添加以下内容:

<?php
/**
 * cache_users() Polyfill
 *
 * Patch for issues with WP_User_Query in WP 6.1
 */
if ( ! function_exists( 'cache_users' ) ) {
  function cache_users( $results ) {
    return $results;
  }
}

这将安全地修补这个问题,而不修改WordPress的核心文件,直到它在后续版本中得到解决。它绕过该高速缓存,这是不理想的,但它解决了任何致命的错误可靠。

68de4m5k

68de4m5k4#

我用以下方法解决了这个问题:
1.从https://wordpress.org/download/下载最新的wordpress文件
1.压缩除wp-content文件夹和wp-config.php文件之外的所有文件和文件夹x1c 0d1x
1.将步骤2中创建的压缩文件上传到站点的根目录
1.解压缩并替换所有文件和文件夹
我在Youtube上做了一段视频,希望能有所帮助:https://www.youtube.com/watch?v=uTs0WBOOMew

相关问题