我正在尝试将一个新的表格行插入到自定义 wpdb
表格中。数据来自发布到脚本的表单。
我在脚本的开头声明了 global $wpdb
,并插入到数据库中,但出于某种原因,它不喜欢 WordPress 建议在法典。
// declare global wpdb
global $wpdb;
// set variables for posting to db
$name = $_POST['name'];
$email = $_POST['email'];
// post to the db
$wpdb->query( $wpdb->prepare(
"
INSERT INTO $wpdb->entries
( name, email )
VALUES ( %s, %s )
",
$name,
$email
) );
关于它为什么会出错的任何想法?
最佳答案
这是一个 wordpress 特性,所以全局 $wpdb
只有在之前定义过的情况下才能被调用。
这意味着,在/wp-content/... 文件夹中,如果您使用具有 wp 特定功能的脚本,它在使用 wordpress 核心编译之前将无法工作。
因此,例如,主题模板或插件文件可以通过调用 $wpdb
来工作,但您的独立脚本不会,即使它位于插件或主题目录中也是如此。
简单的解决方案是在运行该脚本之前包含/wp-config.php 文件。只写:
include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php' );
在调用 $wpdb
之前。它对我有用。
关于php - 在非对象 WordPress 上调用成员函数 query(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18759528/