安装插件时出现明显错误

时间:2014-11-18 作者:Jim

我一直在开发我的第一个插件(调用myplugin)。插件代码的路径是wp-content/plugins/myplugin/myplugin。php。myplugin。php文件基本上如下所示:

<?php
defined( \'ABSPATH\' ) OR exit;
/*
 * Plugin Name:  My Plugin
 */

function my_plugin_activation() {
    global $wpdb;
    // SQL code to insert custom database tables
    // using CREATE TABLE IF NOT EXISTS tablename....
}

function my_plugin_deactivation() {   
    // SQL code to update table on deactivation
}

function my_plugin_uninstall() {
    global $wpdb;
    // SQL code to remove custom database tables
}

register_activation_hook( __FILE__, \'my_plugin_activation\');
register_deactivaction_hook( __FILE__, \'my_plugin_deactivation\');
register_uninstall_hook( __FILE__, \'my_plugin_uninstall\');
?>
当我激活上述插件代码时,my\\u plugin\\u激活例程会成功创建表,插件会被激活(如果完成激活,我会得到一个停用链接),但插件屏幕顶部会显示以下消息:

Plugin could not be activated because it triggered a fatal error.

Fatal error: Cannot redeclare my_plugin_activaction() (previously declared in C:\\xampp\\htdocs\\deve1wp\\wp-content\\plugins\\myplugin\\myplugin.php: 15) in C:\\xampp\\htdocs\\deve1wp\\wp-content\\plugins\\myplugin\\myplugin.php on line 198
第15行是实际的函数定义。第198行是我注册激活挂钩的行。

有什么好处?

提前谢谢。

2 个回复
SO网友:Jim

我发现了问题。我没有意识到这是一个几乎所有错误的通用消息。我从激活例程中删除了所有内容(类似于上文),并运行了它。。。没有错误。开始往后面添加“东西”。在激活函数的末尾出现了对flush()的调用,试图强制执行/wp内容/调试。要刷新到磁盘的日志触发了错误。

感谢这里所有帮助过我的人!;)

SO网友:pwbred

您在这一行有一个拼写错误:

register_deactivaction_hook( __FILE__, \'my_plugin_deactivation\');
它应该是:

register_deactivation_hook( __FILE__, \'my_plugin_deactivation\');

结束

相关推荐

Multisite and plugins options

我需要更多关于get_site_option(), update_site_option() 和add_site_option().在codex中,他们说它与单次安装相同,只是在多站点中,它返回网络范围的选项。好吧,但我对这一点感到困惑:这是否意味着一旦设置了网络范围选项,所有站点的选项都是相同的?还是每个站点都会覆盖它?我的意思是如果我这样做: update_site_option(\'option_group\', \'default_options());// default_options() r