激活 WordPress 插件后显示消息
Posted
技术标签:
【中文标题】激活 WordPress 插件后显示消息【英文标题】:Show message after activating WordPress plugin 【发布时间】:2016-11-09 01:55:38 【问题描述】:我想在激活插件后显示激活消息。
我在 SO 上看到了一些关于此的问题,但它们都不能正常工作:
if (!get_option("startup"))
echo "<div class='updated'><h3>Welcome to [name]</h3>";
update_option('startup', 'true');
这行得通..有点。它将 html 放在最顶部,甚至在 <!DOCTYPE>
之前。有没有办法把它放在正确的地方?那么在body标签中呢?
【问题讨论】:
您是否尝试在正确的位置调用它? 【参考方案1】:您需要在这里做一些事情。首先,register_activation_hook()
function 用于挂钩插件的激活。 admin_notices
action 用于在管理区域内添加通知(您不能在任何地方打印通知)。
但是,还有一个额外的问题是您不能在插件激活时使用admin_notices
操作。这是因为 WordPress 不会“实时激活”您的插件 - 它会在后台激活它并抑制输出,以确保在完成激活之前它不会触发任何致命错误。
幸运的是,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' );
【讨论】:
以上是关于激活 WordPress 插件后显示消息的主要内容,如果未能解决你的问题,请参考以下文章
我无法在 localhost 上激活我的 WordPress 插件
在 Wordpress 中激活 Unyson 插件时出错致命错误
WordPress,cron和time - 服务器上的时间会影响插件吗?怎么解决?