1

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

当我点击“添加员工”时,我会看到一个新窗口,我可以在其中填写员工的所有字段,然后点击“保存”

但是当我单击保存时,我收到以下 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 页面知道它是什么?还是我用错了?

4

3 回答 3

2

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

 function myFunction() {
       global $wpdb;
       $wpdb->insert(...);
    }
于 2013-06-20T14:21:00.963 回答
2

您很可能错过了$wpdb.

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.
于 2013-06-20T14:20:07.093 回答
0

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

于 2019-06-22T11:09:53.530 回答