gpt4 book ai didi

php - 激活 WordPress 插件后显示消息

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:48 25 4
gpt4 key购买 nike

我想在激活插件后显示一条激活消息。

我在 SO 上看到了一些关于此的问题,但没有一个能正常工作:

if (!get_option("startup")) {
echo "<div class='updated'><h3>Welcome to [name]</h3>";
update_option('startup', 'true');
}

这行得通……有点。它把 HTML 放在最上面,甚至在 <!DOCTYPE> 之前.有没有办法把它放在正确的地方?那么在 body 标签中呢?

最佳答案

这里有几件事你需要做。首先,register_activation_hook() function用于 Hook 激活插件。和 admin_notices action用于在管理区域内添加通知(您不能在任何地方打印您的通知)。

但是,还有一个额外的问题是您不能在插件激活时使用admin_notices 操作。这是因为 WordPress 不会“实时激活”您的插件 - 它会在后台激活它并抑制输出,以确保在完成激活之前它不会触发任何 fatal error 。

幸运的是,this blog post概述了这个问题的解决方案。该帖子的作者建议使用 transients保存插件的“状态”,以便在激活后可以检索它。

因为该博客与本网站一样拥有 CC-BY-SA 许可证,所以我将复制此处的代码以使其继续存在。我稍微压缩了它以减少这篇文章的长度,但你可以 view the whole blog post完整的解决方案。我还对此进行了测试以确保它仍然有效 - 它在我安装的 WordPress 4.5.3 上有效。

register_activation_hook( __FILE__, 'fx_admin_notice_example_activation_hook' );

function fx_admin_notice_example_activation_hook() {
set_transient( 'fx-admin-notice-example', true, 5 );
}

add_action( 'admin_notices', 'fx_admin_notice_example_notice' );

function fx_admin_notice_example_notice(){

/* Check transient, if available display notice */
if( get_transient( 'fx-admin-notice-example' ) ){
?>
<div class="updated notice is-dismissible">
<p>Thank you for using this plugin! <strong>You are awesome</strong>.</p>
</div>
<?php
/* Delete transient, only display this notice once. */
delete_transient( 'fx-admin-notice-example' );
}
}

关于php - 激活 WordPress 插件后显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38233751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com