Wordpress 全局 $wpdb 函数问题
Posted
技术标签:
【中文标题】Wordpress 全局 $wpdb 函数问题【英文标题】:Wordpress global $wpdb function issue 【发布时间】:2014-09-06 12:58:19 【问题描述】:我正在开发一个插件,在插件中我想在新表中添加数据。我在我创建的这个文件中创建了一个文件“lsp_manage_foo.php”
<form action="<?php echo plugin_dir_url(__FILE__) ?>lsp_foo/lsp_manage_process.php" method="post" name="lsp_add_foo">
<table border="0" cellspacing="4" cellpadding="0">
<tr>
<td >
<label>
foo Name
</label>
</td>
<td >
<input type="text" name="lsp_add_foo" id="lsp_add_foo" value="">
</td>
<td align="right">
<input type="submit" name="lsp_save_foo" value="Add Foo">
</td>
</tr>
</table>
</form>
并且在“lsp_manage_process.php”中
<?php
global $wpdb;
$foo_add = $wpdb->prefix."lsp_foo";
$lsp_foo_name = stripslashes(strip_tags($_POST['lsp_add_foo']));
$foo_shortcode = str_replace(" ", "_", $lsp_foo_name);
$foo_shortcode = strtolower($foo_shortcode);
$foo_data = array(
'foo_name' => $lsp_foo_name,
'foo_shortcode' => $foo_shortcode
);
$foo_insert = $wpdb->insert($foo_add,$foo_data);
header("Location: lsp_manage_foo.php");
?>
我遇到的问题是当我点击提交时,它会转到“lsp_manage_process.php”文件并显示这个错误
Notice: Trying to get property of non-object in /var/www/dev/lgs_pro/wp-content/plugins/foo_pro/lsp_foo/lsp_manage_process.php on line 5
Fatal error: Call to a member function insert() on a non-object in /var/www/dev/lgs_pro/wp-content/plugins/foo_pro/lsp_foo/lsp_manage_process.php on line 18
我在“global $wpdb”上面包含了这一行
include "../../../../wp-includes/wp-db.php";
但是什么都没发生
我的文件路径结构是
wp-content/plugins/foo_pro/lsp_foo/lsp_manage_process.php
任何想法。
【问题讨论】:
var_dump($wpdb);
给你什么?文件是单独加载还是插件核心的一部分? I think this might help you
【参考方案1】:
在global $wpdb
之前添加这一行
require_once( str_replace('//','/',dirname(__FILE__).'/') .'../../../wp-config.php');
或
require_once( str_replace('//','/',dirname(__FILE__).'/') .'../../../../wp-config.php');
【讨论】:
你能再帮我一期吗 opppppppssss,对不起,兄弟,我自己处理了,谢谢你的帮助:)你能给我的问题一个点吗;)以上是关于Wordpress 全局 $wpdb 函数问题的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress 多用户、自定义数据库、使用全局 wpdb 时潜在的并发问题
安装在函数内部时,Wordpress $wpdb 更新不起作用?
使用 $wpdb get_results 的 WordPress 查询出错 [重复]