加载完成后显示管理通知(_O)

时间:2021-09-13 作者:user212402

这是我的代码:

class App 
{
    
    public function run()
    {
        add_action(\'admin_menu\', [$this, \'menu\']);
        add_action(\'admin_notices\', [$this, \'pip\']);
    }

    public function menu()
    {
        echo 0;

        add_submenu_page(
            \'tools.php\',
            __(\'Tools\', \'name-plugin\'),
            __(\'Name\', \'name-plugin\'),
            \'manage_options\',
            \'name-plugin\',
            [$this, \'show\']
        );
    }

    public function show()
    {
        echo 1;
    }

    public function pip() {
        echo 2;
    }
}
此代码已打印021

但我想打印012

注:我想把所有add_action 在里面run 方法

我也使用了优先级,但它不起作用:

add_action(\'admin_menu\', [$this, \'menu\'], 1);
add_action(\'admin_notices\', [$this, \'pip\'], 2);
如果我把admin_notices 在里面show 方法,此代码运行良好。

但我不想把它放进去show 方法

1 个回复
SO网友:Tom J Nowell

这些不是管理员通知。这还不够echo 上的文本admin_notices 钩子,它需要包装在特定的HTML中。

以下是以下示例the official WP doc for admin_notices:

function sample_admin_notice__success() {
    ?>
    <div class="notice notice-success is-dismissible">
        <p><?php _e( \'Done!\', \'sample-text-domain\' ); ?></p>
    </div>
    <?php
}
add_action( \'admin_notices\', \'sample_admin_notice__success\' );
如果需要在钩子触发后添加通知,请使用相同的HTML结构,WordPress将使用javascript将其移动到正确的位置