Wordpress自定义插件wpdb无法识别

时间:2013-06-20 14:16:13

标签: php wordpress wordpress-plugin

我正在开发我的第一个wordpress插件,我可以列出所有员工的CRUD功能。

当我点击"添加员工"我得到一个新窗口,我可以填写员工的所有字段,然后点击" Save"

但是当我点击保存时,我收到以下PHP错误:

   Fatal error: Call to a member function insert() on a non-object in C:\wamp\www\wp-custom-plugin\wp-content\plugins\werknemers\employee_crud_functions.php on line 15

当我看第15行时,代码是:

 $wpdb->insert( ... )

这是我的表单,动作设置为该php页面

 <form method="POST" action="<?php bloginfo('url') ?>/wp-content/plugins/werknemers/employee_crud_functions.php">

我假设该文件不知道$ wpdb变量。但是我怎么能让那个php页面知道它是什么?或者我使用它都错了?

3 个答案:

答案 0 :(得分:2)

您很可能错过$wpdb的全球声明。

来自wpdb reference

WordPress provides a global variable, $wpdb, 
which is an instantiation of the class already 
set up to talk to the WordPress database. 
Always use the global $wpdb variable. 
(Remember to globalize $wpdb before using it in any custom functions.)

你需要像这样使用它。

global $wpdb;
//do something with it.

答案 1 :(得分:2)

你有全局的$ wbdb吗? 我知道使用全局不是很好的做法,但大多数Wordpress插件似乎都是这样工作......

 function myFunction() {
       global $wpdb;
       $wpdb->insert(...);
    }

答案 2 :(得分:0)

您可以像这样包含wp-config文件 include('../../../ wp-config.php');这个对我有用。 这是我文件夹的目录结构 F:\ wamp64 \ www \ Wordpress \ custom_plugin_development \ wp-content \ plugins \ CRUD-Plugin