我正在开发我的第一个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页面知道它是什么?或者我使用它都错了?
答案 0 :(得分:2)
您很可能错过$wpdb
的全球声明。
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