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 键(以及选项和元键)命名为您的代码所独有的东西,这样任何命名冲突的可能性就会很小。
在不依赖表单导航的情况下正确使用子菜单导航的另一个示例是这样的:
<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 流程的工作方式。
祝你好运,如果这有帮助,请告诉我。