Return value of add_menu_page

时间:2011-10-19 作者:hamahama

我在抄本上读过这篇文章,似乎有些主题使用了它,但从来都不了解它是如何工作的。

(string) $hookname 内部用于跟踪菜单页回调,以便在global $menu 大堆

我似乎无法理解抄本的解释。有人能告诉我如何使用返回值以及它的用途吗?

2 个回复
SO网友:Rutwick Gangurde

一个重要的用途是只在特定的插件/管理页面上排队脚本/样式。

<?php
    add_action(\'init\', \'my_plugin_admin_page\');

    function my_plugin_admin_page()
    {
        //create the menu page
        $hook = add_menu_page(....);

        //use the hook for this page for enqueuing
        add_action(\'admin_print_styles-\' . $hook, \'my_plugin_admin_styles\');
    }

    function my_plugin_admin_styles()
    {
        //enqueue the style/script here
    }
?>
这是我知道的一个用途。

SO网友:EarnestoDev

希望代码是不言自明的

// Add a new submenu page and also add a load handler for it to process POSTs
($hook_name = add_submenu_page(
    \'plugins.php\', // Under plugins menu
    \'Title\',
    \'Menu\',
    \'activate_plugins\', // Administrators
    \'slug\',
    function(){ // Visual is here ?>
        <div class="wrap">
            <h2>Sub-Page Title</h2>
            <!-- Subpage visual output comes here -->
        </div>
<?php })) and (add_action("load-{$hook_name}", function(){ // Hook the load here
    if(!strcasecmp($_SERVER[\'REQUEST_METHOD\'], \'POST\')){
        $_POST =  stripslashes_deep($_POST); // Fix this WP BS security joke
        // Handle a POST request
        // ... Do stuff with $_POST
    }elseif(!strcasecmp($_SERVER[\'REQUEST_METHOD\'], \'GET\')){
        // Handle a GET (normal) request
        // ... Usually not needed
    }
}));

Have fun!

结束

相关推荐