我在这里尝试了许多回答的问题......
喜欢在<?php
之前和?>
之后删除空格
根本不工作 我仍然坚持..
我的代码如下..
add_action( 'admin_notices', 'fii' );
function fii(){
// parent plugin
if ( ! is_plugin_active( 'xxx/aaa.php' ) and current_user_can( 'activate_plugins' ) ) {
echo '<div class="notice notice-warning"><p>You need install xxxx plugin</p></div>';
}
}
register_activation_hook( __FILE__, 'fii' );
问题是当我的插件活动时,wordpress会给我这样的错误信息..
“插件在激活期间生成了281个字符的意外输出。如果您注意到”已发送标头“消息,联合供稿问题或其他问题,请尝试停用或删除此插件。”
但是当我在fii函数中关闭我的回声时,它很好“
add_action( 'admin_notices', 'fii' );
function fii(){
// parent plugin
if ( ! is_plugin_active( 'xxx/aaa.php' ) and current_user_can( 'activate_plugins' ) ) {
//echo '<div class="notice notice-warning"><p>You need install xxxx plugin</p></div>';
}
}
register_activation_hook( __FILE__, 'fii');
我的回声怎么了?
答案 0 :(得分:0)
最常见的原因是:
我认为可能是UTF-8编码尝试将其更改为ANSI。
答案 1 :(得分:0)
我的猜测是,因为你在激活钩子和管理员通知上都调用了这个插件,所以只要插件被激活,就会调用admin_notices钩子(在同一个循环中)。因此,您的插件会在激活过程中的某个点抛出回声。因此,这是意外的行为,因为激活不希望回应任何东西。
我也没有看到在激活时运行此功能的任何需要。只能在admin_notices上调用它,并在必要时调整函数中的逻辑,以便只有在插件被激活后才会显示此通知。
此外,目前您的代码并未考虑第三方插件是否处于活动状态,甚至未安装。因此,即使安装并激活了其他插件,用户也会收到该消息。
已经有一个很棒的库,可以将所需的和推荐的插件添加到名为TGM Plugin Activation的WordPress安装中。我强烈建议您使用它而不是创建自己的逻辑。