我经常遇到同样的烦恼,所以我想看看是否有任何想法或经验。
我创建了一个使用其自己的管理页面的插件。它必须。现在,我整理出了WP_List_Table()的内容,我必须说这很棒...但是...
自定义插件页面始终加载,admin.php?page=...
除非我不希望直接从插件目录加载它们。现在,如果我从该页面执行“操作”,则需要以某种方式进行处理,然后将其重定向回该页面而不使用action参数。真的,不管我执行GET还是POST。
WP在所有内部页面上都在同一页面上执行此操作,它检查是否有动作,如果有,则对其进行处理,然后在没有动作的情况下重定向到自身。这是可能的,因为admin-header
尚未在这些页面上加载。
但是,如果您尝试在自己的页面上执行此操作,则一半的管理界面已发送到浏览器,因此无法再进行重定向。显然,解决方案是直接POST / GET到另一个页面,在该页面上加载WP框架,进行处理,然后重定向回原始页面...但是...有点烦人,因为...我的原始页面是通过回调加载的,因此它在我的类的方法中运行。那好美丽。
如果我加载一个单独的页面,则必须手动添加wp-load.php
并且不在类的范围内,这很烦人,在我的情况下,这尤其会困扰我,因为我只是匿名实例化了我的插件类,因此没有人可以访问它从外部。
因此,经过漫长的故事之后...有人提出了一个很好的解决方案来通过回调加载另一个页面而又没有设置整个管理界面吗?
(我知道一种解决方法...我可以将一个函数挂接到其中load-....
,以检查action参数,然后进行处理和重定向。但是我想知道是否有更好的方法。)
谢谢。
plugin-wp-pagenavi
是为了什么……我以为这是关于插件和管理菜单之间的相关性的事情。由于我的问题与此有关,因此我选择了该标签。
[admin-menu]
在这里使用,但我认为这与之无关。我将标签更改为我认为合适的标签,您当然可以再次对其进行编辑。
[plugin-wp-pagenavi]
?[plugin-development]
这里肯定是受欢迎的。