不要将URL指向admin.php
, 使用admin-post.php
而是:
\'<a href="\' . admin_url( \'admin-post.php?action=print.csv\' ) . \'">\'
在插件中,为该操作注册回调:
add_action( \'admin_post_print.csv\', \'print_csv\' );
function print_csv()
{
if ( ! current_user_can( \'manage_options\' ) )
return;
header(\'Content-Type: application/csv\');
header(\'Content-Disposition: attachment; filename=example.csv\');
header(\'Pragma: no-cache\');
// output the CSV data
}
如果要使匿名用户(未登录)可以使用这些数据,请再次向以下用户注册回调:
add_action( \'admin_post_nopriv_print.csv\', \'print_csv\' );
…并从功能中删除功能检查。