好的,仔细研究一下,我在db中的tables函数(从第1088行开始)中发现了一个小bug。SharDB附带的php脚本文件。
这段代码就是问题所在(从db.php的第1114行开始):
if ( isset( $tables[\'users\'] ) ) {
if( defined( \'CUSTOM_USER_TABLE\' ) )
$pre_tables[\'users\'] = CUSTOM_USER_TABLE;
if ( defined( \'CUSTOM_USER_META_TABLE\' ) )
$pre_tables[\'usermeta\'] = CUSTOM_USER_META_TABLE;
}
请参见,它在返回表列表之前会进行检查,以查看是否定义了CUSTOM\\u USER\\u TABLE和CUSTOM\\u USER\\u META\\u TABLE,如果定义了,则会覆盖默认值。然而,由于
isset( $tables[\'users\'] )
检查第114行$tables是一个表名数组,“users”是数组中的一个值,因此从未设置$tables[“users”]。
因此,将第114行更改为:
if ( isset( $pre_tables[\'users\'] ) )
瞧。你们都准备好了
(我现在要去找插件作者并报告错误!)