我应该将我的添加操作放在哪里(...和添加过滤器(...我需要把它们取下来吗?

时间:2011-07-13 作者:joon

我正在用我经常使用的一些自定义代码创建一个插件,希望其他人也能发现它的用处。

它起作用了,太棒了!但是

Here\'s my question:

我觉得在我对系统的理解中遗漏了一些难题。

停用插件后,我添加并钩住的所有代码会发生什么情况?

在我看来。php文件,何时执行不在函数中的代码?仅在安装时?那么register_activation_hook( __FILE__,\'install_method\'); ?

如果我把add_actionadd_filter 在我的主php文件中,卸载时是否必须删除它们?(例如,我知道如果我add_option(\'option\', \'0\', \'\', \'yes\'); 在安装过程中,我必须delete_option(\'option\'); 卸载时。)

在一些教程中,他们告诉我if ( is_admin() ) {} 围绕我的代码,这是必要的吗?

2 个回复
最合适的回答,由SO网友:Milo 整理而成

过滤器和操作随每个请求一起添加。当您禁用插件时,它们会立即消失,因为它们只存在于您的插件代码中。这就是您可以在每个请求的基础上有选择地添加它们的方式。如果不想在当前请求中运行筛选器或操作,则只需删除它们。

is_admin() 是检查是否显示管理页面,并且应仅为管理页面包装内容。

SO网友:Bainternet

其目的是什么register_activation_hook

目的register_activation_hook 是让您的函数在插件激活时运行代码,例如,如果您的插件使用自定义数据库表,您可以使用该挂钩调用将在数据库中创建该表的函数,或者如果您想使用add_option.

现在,当插件被停用时,您不必删除选项,因为有时人们会临时停用插件,每次停用插件时,他们都必须重新定义插件设置,相反,您应该提供一个选项,使用您可以运行的自定义函数“卸载”插件选项。

至于add_actionadd_filter 这是你的主要目标。php文件,当插件被激活时,您无需担心它们,它们不会得到处理,因此无需删除它们。

最后一点is_admin() 正如Milo所说,它是一个条件函数,用于检查您当前是否在管理员(WordPress后端)页面上,因此您只能在管理员页面上调用您的函数或挂钩。

结束

相关推荐

Custom Post Row Actions

我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $