当前位置: 首页 > 知识库问答 >
问题:

Wordpress寄存器\激活\挂钩

施宏大
2023-03-14

我写我的第一个WordPress插件和有问题的register_activation_hook......我想要的是在register_activation_hook中声明一个变量,并在其中一个菜单页面上进行响应。

我已经把我的代码分解成单独的文件,并在下面的两个文件中包含了一个简短的版本:

define('TEST_PLUGIN', rtrim( plugin_dir_path( __FILE__ ), '/' ));    

function test_plugin_install() {        
    $test="TEST";
}

register_activation_hook( __FILE__, 'test_plugin_install' );

add_action( 'admin_menu', 'test_plugin_add_menu' );

function test_plugin_add_menu() {
    add_menu_page( 'Test Plugin Page', 'Test Plugin', 'manage_options', 'test_plugin', 'test_plugin_settings' );
}

function test_plugin_settings() {
    require( TEST_PLUGIN_DIR . '/test_plugin_settings.php' );       
}

在test_plugin_settings.php我使用:

global $test;
echo $test;

我知道test_plugin_settings.php可以工作,因为我的代码有选项卡和其他内容,这些内容可以在菜单页面中呈现。但是,$test变量没有。

在函数test_plugin_install()中,我还创建了sql表...有趣的是,sql只有在插件首次安装时才会执行,即插件目录被删除,sql表被清除。

这让我认为register_activation_hook只是第一次调用,而不是当插件只是停用,然后重新激活。

这是正确的吗?

共有1个答案

广亮
2023-03-14

register_activation_hook仅在激活时触发,用于安装一些选项或创建表,而admin_menu需要在admin_init上触发(操作为wp-admin初始化一些东西)。

 类似资料:
  • 我正在尝试为短代码创建一个插件。但我的激活钩不起作用。插件在我的页面中被激活,但在我的代码中没有任何东西可以工作,比如:我的 请帮帮我。我卡住了

  • 我目前正在写一个wordpress插件,我遇到了一些问题。我的功能在插件激活时不运行。。。谁能告诉我问题出在哪里? 但不幸的是,安装功能不起作用......但当外部类中的代码安装功能是工作

  • 示例:http://undeniable.info/img/temp_ss.png 我使用的是用户审批系统,因此说您的帐户处于活动状态的消息根本不合适。我们仍然希望我们的用户确认他们的电子邮件,因此我想将邮件“帐户激活”更改为“帐户电子邮件验证”,并将“激活您的帐户”更改为“验证您的帐户电子邮件”或类似的内容。 在我的整个public_html dir中搜索这些帐户激活的消息时,不会返回任何内容,

  • Vim提供了许多寄存器。可以将这些寄存器用作多个剪贴板。使用多个文件时,此功能非常有用。在本章中,将讨论以下主题内容 - 复制寄存器中的文本 粘贴寄存器中的文本 列出可用的寄存器 寄存器类型 1. 复制寄存器中的文本 对于复制,可以使用普通的命令,即并将其存储在寄存器中,可以使用以下语法 - 例如,要复制寄存器中的文本,请使用以下命令 - 2. 粘贴寄存器中的文本 从寄存器粘贴文本 - 例如,下面

  • 当前的Perl 5虚拟机是一台堆栈机器。 它通过将操作保持在堆栈上来传递操作之间的值。 操作将值加载到堆栈上,执行他们需要执行的操作并将结果放回堆栈。 这很容易使用,但速度很慢。 要将两个数字相加,您需要执行三次堆栈推送和两次堆栈弹出。 更糟糕的是,堆栈必须在运行时增长,这意味着在您不想分配内存时分配内存。 因此,Parrot将打破虚拟机的既定传统,并使用寄存器架构,更类似于真实硬件CPU的架构。

  • 处理器操作主要涉及处理数据。 该数据可以存储在存储器中并从其上访问。 然而,从存储器读取数据和将数据存储到存储器中会降低处理器的速度,因为它涉及通过控制总线向存储器存储单元发送数据请求并通过相同通道获取数据的复杂过程。 为了加速处理器操作,处理器包括一些内部存储器存储位置,称为registers 。 寄存器存储数据元素以便处理而无需访问存储器。 处理器芯片内置有限数量的寄存器。 处理器寄存器 IA