我正在创建一个插件。但是,当我试图在函数中调用add_action('admin_notices','my_test_notice_1');时,它不起作用。
我需要在我的函数中调用add_action('admin_notices','my_test_notice_1')。我该怎么做呢。-谢谢你的答复。
admin_notice_1 is printed on the page ';
}
}
// Admin Notice 1 - This is working
add_action('admin_notices', 'admin_notice_1');
function admin_notice_1(){
echo ' admin_notice_1 is printed on the page ';
}
}
add_action('admin_menu', 'test_plugin_admin_menu'); 发布于 2020-04-28 05:34:30
嗯,这是因为钩子发射的顺序。钩子实际上是从数组(看一看)加载的,其中admin_notices在调用add_menu_page之前执行。
现在,要在您的管理页面中显示消息,您可以使用global $pagenow条件检查$_GET['page']和页面GET变量并打印您的消息。就像下面-
add_action( 'admin_menu', 'test_plugin_admin_menu' );
function test_plugin_admin_menu () {
add_menu_page(
__('Testing Page ', 'rses'),
__('Testing Page', 'rses'),
'activate_plugins',
'testing_plugin',
'testing_plugin_cb_function',
'dashicons-businessman'
);
}
function testing_plugin_cb_function () {
// Do your magic here
}
add_action( 'admin_notices', 'admin_notice_1' );
function admin_notice_1 () {
global $pagenow;
if ( 'admin.php' === $pagenow && 'testing_plugin' === $_GET['page'] ) {
echo ' admin_notice_1 is printed on the page ';
}
}顺便说一句,嵌套函数是一件非常糟糕的事情,所以我在这里放置了代码的<#>refactored版本。请在投入生产前进行测试。
希望这能帮上忙。
https://wordpress.stackexchange.com/questions/365245
复制相似问题