首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >admin_notices在内部函数中不工作

admin_notices在内部函数中不工作
EN

WordPress Development用户
提问于 2020-04-27 21:54:31
回答 1查看 629关注 0票数 0

我正在创建一个插件。但是,当我试图在函数中调用add_action('admin_notices','my_test_notice_1');时,它不起作用。

我需要在我的函数中调用add_action('admin_notices','my_test_notice_1')。我该怎么做呢。-谢谢你的答复。

代码语言:javascript
复制
 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'); 
EN

回答 1

WordPress Development用户

回答已采纳

发布于 2020-04-28 05:34:30

嗯,这是因为钩子发射的顺序。钩子实际上是从数组(看一看)加载的,其中admin_notices在调用add_menu_page之前执行。

现在,要在您的管理页面中显示消息,您可以使用global $pagenow条件检查$_GET['page']和页面GET变量并打印您的消息。就像下面-

代码语言:javascript
复制
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版本。请在投入生产前进行测试。

希望这能帮上忙。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/365245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档