根据GET请求执行某些函数

时间:2014-05-09 作者:ashutosh

我目前正在设计一个插件,只有当一个GET参数export=data 已通过。在普通PHP中,它将执行以下操作:

<?php
 if(isset($_GET[\'export\']) && ($_GET[\'export\']==\'data\')){
 abc(); //Execute this function on GET request
}

function abc(){
 //function data
}
?>
现在,我希望在我的插件的管理区域发生同样的事情,假设我的插件的slug是“\\u my-plugin”。因此,基本上,我希望在访问此URL时调用该函数:http://myblogaddress.com/wp-admin/admin.php?page=_my-plugin&export=data

提前感谢

1 个回复
SO网友:Stephen Harris

我认为,早期了解该页面的挂钩之一是load-{$slug}:

add_action( \'load-_my-plugin\', \'wpse143915_maybe_trigger_export\' );
function wpse143915_maybe_trigger_export(){
    if( isset( $_GET[\'export\'] ) && ( $_GET[\'export\'] == \'data\' ) ){
        //...
    }
}
如果您想知道页面slug是什么,请通过以下方式签出此插件Kaiser: https://github.com/franz-josef-kaiser/current-admin-info

但就我个人而言,我不会费心等待(管理)屏幕初始化。把他们送到admin-post.php?action=myprefix-export, 然后你就知道什么时候该url被点击了:

add_action( \'admin_post_myprefix-export\', \'wpse143915_initiate_export\' );
function wpse143915_initiate_export(){
   //Any security / validation checks

   //... export data...
}

结束

相关推荐

使用主题文件夹代替plugins_url

我想这很简单,但我无法解决。我正在尝试通过我的主题向WordPress仪表板添加菜单页。我有以下。。。add_menu_page( \'Test\', \'Test\', \'manage_options\', \'myplugin/myplugin-admin.php\', \'\', plugins_url( \'myplugin/image/icon.png\' ), 6 &