在网络仪表板中保存子页面设置

时间:2017-03-20 作者:T.Todua

在单个WP安装中,在插件生成的子页面上

<form action="options.php" ...
工作做得很好。

但是,在多站点网络子页面中,options.php 不起作用,也不settings.php (表单提交后会重定向到该页面)。。。

我找不到要在那里使用的页面,要发送的页面<form> 将保存并重定向回子页面的页面的值(如options.php 在单个WP站点上执行-它保存值并重定向回)。

1 个回复
SO网友:Paul \'Sparrow Hawk\' Biron

最简单的方法是设置窗体的action=\'\' 并使用global $plugin_page; 如中所述Notes 第节add_submenu_page().

例如:

add_action (\'network_admin_menu\', \'add_network_menus\') ;

function
add_network_menus ()
{
    add_menu_page (\'My Page Title\', \'My Menu Title\',
        \'manage_network\', \'my_menu_slug\', \'my_network_admin_page\') ;
    add_submenu_page (\'my_menu_slug\', \'Some Subpage Title\',
        \'My Submeny Title\', \'manage_network\', \'my_submenu_slug\',
        \'network_admin_subpage\') ;

    return ;
}

function
network_admin_page ()
{
    global $title, $plugin_page ;

    echo <<<EOF
<div class=\'wrap\'>
    <div id=\'icon-tools\' class=\'icon32\'></div>
    <h2>$title</h2>

    <p>more content here</p>
</div>
EOF;

    return ;
}

function
network_admin_subpage ()
{
    global $title, $plugin_page ;

    echo <<<EOF
<div class=\'wrap\'>
    <div id=\'icon-tools\' class=\'icon32\'></div>
    <h2>$title</h2>

    <p>more content here</p>
    <form action=\'\' method=\'GET\'>
        <input type=\'hidden\' name=\'page\' value=\'$plugin_page\' />
        <input type=\'submit\' value=\'Submit\'>
    </form>
</div>
EOF;

    return ;
}
这适用于普通和网络管理菜单。