您可能无权访问$_GET
. 我想你可能需要global $wpdb, $posts, $_GET;
其次,一切都发生在构造器中,即插件加载时,即每次加载站点的任何页面时。因此,每次加载页面时,您都在检查$_GET[\'action\']
用于“编辑”或“删除”。这些动作值非常常见。它们甚至被用于WordPress核心。编辑帖子时请查看URL。你在这里所做的一切将导致无休止的冲突。
你只想在你的插件页面上处理它,而不是在网站上全局处理,所以把代码从构造器中提取出来,并将其放入自己的函数中。然后将该函数挂接到特定于插件页面的钩子上。
function parser_handler() {
global $_GET;
//Here I inspect if action exits or not
if($_GET[\'action\']){
switch ($_GET[\'action\']){
case \'edit\':
//than here should be a redirect to a custom page to edit the item passing the record query argument, do I need in this case hidden sup-page?!!!
break;
case \'delete\':
var_dump(\'test\');
$this->_delete_target($_GET[\'record\'] , $_GET[\'post_id\']);
break;
}
}
}
在构造函数中添加。。。
add_action(\'load-parser-top-level-handle\',array($this,\'parser_handler\'));
我在猜测
load-
钩将其视为占位符。下面是如何找到正确的钩子。加载页面。查看源。在页面顶部附近查找Javascript。在这个脚本中应该是
pagenow
参数取该值并在其前面加上“load-”。该钩子在您的特定插件页面被发送到浏览器之前立即运行。