调用wp-db.php中未定义的函数
我在WordPress安装中有一个独立的脚本,我使用以下方法加载wpdb对象:调用wp-db.php中未定义的函数,php,wordpress,Php,Wordpress,我在WordPress安装中有一个独立的脚本,我使用以下方法加载wpdb对象: define( 'SHORTINIT', true ); require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' ); 但是,调用脚本时,我的错误日志会输出以下内容: PHP Fatal error: Call to undefined function __() in /wp-includes/wp-db.php on line 1297 当我转到wp
define( 'SHORTINIT', true );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
但是,调用脚本时,我的错误日志会输出以下内容:
PHP Fatal error: Call to undefined function __() in /wp-includes/wp-db.php on line 1297
当我转到wp-db.php中的第1297行时,我看到
_doing_it_wrong( 'wpdb::prepare', sprintf( __( 'The query argument of %s must have a placeholder.' ), 'wpdb::prepare()' ), '3.9.0' );
如果我注释掉这一行,脚本不会崩溃,但作为核心WordPress文件,我认为这不是最好的解决方案
我确实在一个单独的类中使用了prepare方法,但是只有在独立脚本文件中才会出现此错误。当我通过在WordPress“识别”的文件中创建一个对象来重复使用同一个单独的类时,我没有发现错误。位于-因此您可以尝试将其也包括在内(希望这本身不会涉及到反过来需要其他文件的内容;-)
显然它确实有效,所以我将添加它作为一个答案。那么您包括一个随机wordpress文件,而wordpress自动包含的其他20个左右的文件中没有一个文件,并且想知道为什么您在说未定义函数时会出现错误?当您说“独立脚本”时,您的意思是它没有通过WP,但是否可以直接访问?在这种情况下(如果你想使用某个WP文件),你要么需要在脚本的开头(推荐,因为以后可能会出现更多问题),要么自己创建一个该函数的模拟。根据WP文档,
\uuu
位于WP includes/l10n.php
,因此你也可以尝试并包含它(希望这不是指那些需要其他文件的东西;-)@JonathanKuhn我不需要包括所有其他20个左右的文件,因为wp-load.php加载了这个问题前2个答案中列出的所需文件@CBroe谢谢,这很有效!