WordPress add_submenu_page 不接受参数

标签 wordpress

我在开发 WordPress 插件时遇到了这个问题。这是我正在处理的区域的代码片段:

add_submenu_page( 'admin_manager',
                  'Add Event',
                  'Add Event',
                  'manage_options',
                  'add_event&action=modify',
                  'add_event_handler' );

如您所见,在我的菜单项上我想添加“&action=modify”

'add_event&action=modify'

但是当我这样做时,Wordpress 拒绝我访问并说我没有适当的权限。没有额外的参数它工作得很好,wordpress 中是否有内置的东西不允许这样的事情?

有什么想法或解决方法吗?

最佳答案

slug 参数并不用于接收查询参数。如果您打算设置某种默认操作(我也认为“操作”查询很可能是 WordPress 本身使用的保留关键字),为什么不将页面设置为填充该参数是否默认存在?

我的猜测是您还需要其他参数,然后您可以使用表单发送数据(通过 POST 或 GET)以使用这些参数填充您的页面。例如:

<!-- SUBMENU PAGE -->
<form action="" method="GET">
    <label>Select Action: </label>
    <select name="jKern_action">
        <option value="modify">Modify</option>
        <option value="add">Add Event</option>
        <option value="delete">Delete Event</option>
    </select>
</form>
<?php
$action = isset($_GET['jKern_action']) ? $_GET['jKern_action'] : 'modify';
switch($action)
{
    case 'add' :
    ?>
        <!-- YOUR EVENT ADDING HTML HERE -->
    <?php
    break;
    case 'delete' :
    ?>
        <!-- DELETE HTML HERE -->
    <?php
    break;
    default :
    ?>
        <!-- DEFAULT MODIFICATION HTML -->
<?php
}
?>

这不是一个完美的例子,但我相信您可以了解这里所做的事情。如前所述,slug 参数并不是为了填充查询,您还应该为您的 GET 和 POST 键(以及 option 和 meta 键)命名为您的代码所特有的名称,以便将任何命名冲突的可能性降至最低。

正确使用子菜单导航而不依赖表单进行导航的另一个示例如下:

<a href="?page=add_event&jKern_action=add">Add Event</a>
<a href="?page=add_event&jKern_action=modify">Edit Event</a>
<a href="?page=add_event&jKern_action=delete">Delete Event</a>
<?php
...
?>

您最好的选择是查找一些插件作者如何有效使用 add_submenu_page() 函数的示例,但大多数情况下,您应该使用它并习惯正常的 WordPress 流程的工作方式。

祝你好运,请告诉我这是否有帮助。

关于WordPress add_submenu_page 不接受参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10806358/

相关文章:

javascript - $routeParams 在 angularjs 中未定义?

php - 在使用 WordPress Submit_button() 提交之前运行 PHP 函数

javascript - 使用 jQuery 取消 css 属性的导航栏固定顶部

php - 直接在FTP上制作wordpress主题会不会更快?

php - 从 gutenberg block gallery 中删除内联样式

javascript - 为什么我只能在 wp.customize 中使用颜色和背景?

javascript - 从 Wordpress 站点导出已编译的 CSS 和 JS

image - 如何将 WORDPRESS 热链接图像(对于 exp : Image. jpg)重定向到它所在的帖子/页面?

wordpress - 联系表格 7 不起作用

performance - WordPress 操作、过滤器和性能