我一直在使用Shortcode Exec PHP插件编写一个函数,当我在编辑器中运行它时,该函数运行良好。
当我将其移动到插件时,我开始在日志中看到错误,例如:
PHP Fatal error: Call to undefined function wp_create_category()
我意识到这是因为缺乏包括等等。
为插件添加内置wordpress功能的正确方法是什么?
我的插件使用以下wordpress功能
wp_create_category
username_exists
wp_generate_password
wp_create_user
wp_insert_post
update_post_meta
add_post_meta
答案 0 :(得分:15)
使用以下代码,工作正常,我已经测试
require_once(ABSPATH . 'wp-config.php');
require_once(ABSPATH . 'wp-includes/wp-db.php');
require_once(ABSPATH . 'wp-admin/includes/taxonomy.php');
答案 1 :(得分:3)
尝试将此信息包含在您的文件中,然后告诉我 -
require_once(WORDPRESS_HOME. 'wp-config.php');
require_once(WORDPRESS_HOME. 'wp-includes/wp-db.php');
require_once(WORDPRESS_HOME. 'wp-admin/includes/taxonomy.php');
答案 2 :(得分:0)
我知道这是一个很老的问题,但不知何故没有人提到我想到的解决方案。
我认为正确的做法是在你的插件中使用正确的 init 钩子。添加 require_once() 对我来说似乎是黑客。
所以有些功能只为管理区加载,有些只为前端加载。所以取决于那些在你的插件中使用正确钩子的人。
add_action('init', function () {}
或
add_action('admin_init', function () {}
当然,您可以在一个插件中同时使用它们。