The admin_action_{$_REQUEST[‘action’]} WordPress PHP action fires when an ‘action’ request variable is sent. The dynamic portion of the hook name, $_REQUEST['action'], refers to the action derived from the GET or POST request.
Usage
add_action('admin_action_{$_REQUEST['action']}', 'my_custom_function');
function my_custom_function() {
// your custom code here
}
Parameters
- None
More information
See WordPress Developer Resources: admin_action_{$_REQUEST[‘action’]}
Examples
Custom bulk action for posts
Add a custom bulk action in the post list to change the post format.
// Add custom bulk action to the dropdown
add_filter('bulk_actions-edit-post', 'my_custom_bulk_action');
function my_custom_bulk_action($bulk_actions) {
$bulk_actions['change_post_format'] = __('Change Post Format', 'text-domain');
return $bulk_actions;
}
// Handle custom bulk action
add_action('admin_action_change_post_format', 'handle_change_post_format');
function handle_change_post_format() {
// Check for nonce and permissions
// your custom code here
}
Custom admin action to clear cache
Create a button to clear cache in the admin area.
// Add custom page
add_action('admin_menu', 'my_cache_clear_page');
function my_cache_clear_page() {
add_submenu_page('tools.php', 'Clear Cache', 'Clear Cache', 'manage_options', 'clear-cache', 'clear_cache_page_callback');
}
// Output the custom page
function clear_cache_page_callback() {
echo '<form action="" method="post">';
echo '<input type="hidden" name="action" value="clear_cache">';
echo '<input type="submit" value="Clear Cache" class="button button-primary">';
echo '</form>';
}
// Handle custom action
add_action('admin_action_clear_cache', 'handle_clear_cache');
function handle_clear_cache() {
// Clear cache
// your custom code here
}
Custom admin action to export data
Export custom data in a CSV format.
// Add custom page
add_action('admin_menu', 'my_data_export_page');
function my_data_export_page() {
add_submenu_page('tools.php', 'Export Data', 'Export Data', 'manage_options', 'export-data', 'export_data_page_callback');
}
// Output the custom page
function export_data_page_callback() {
echo '<form action="" method="post">';
echo '<input type="hidden" name="action" value="export_data">';
echo '<input type="submit" value="Export Data" class="button button-primary">';
echo '</form>';
}
// Handle custom action
add_action('admin_action_export_data', 'handle_export_data');
function handle_export_data() {
// Export data
// your custom code here
}
Custom admin action to import data
Import custom data from an uploaded file.
// Add custom page
add_action('admin_menu', 'my_data_import_page');
function my_data_import_page() {
add_submenu_page('tools.php', 'Import Data', 'Import Data', 'manage_options', 'import-data', 'import_data_page_callback');
}
// Output the custom page
function import_data_page_callback() {
echo '<form action="" method="post" enctype="multipart/form-data">';
echo '<input type="hidden" name="action" value="import_data">';
echo '<input type="file" name="import_file">';
echo '<input type="submit" value="Import Data" class="button button-primary">';
echo '</form>';
}
// Handle custom action
add_action('admin_action_import_data', 'handle_import_data');
function handle_import_data() {
// Import data
// your custom code here
}
Custom admin action to reset settings
Reset custom plugin settings to default values.
// Add custom page
add_action('admin_menu', 'my_settings_reset_page');
function my_settings_reset_page() {
add_submenu_page('options-general.php', 'Reset Settings', 'Reset Settings', 'manage_options', 'reset-settings', 'reset_settings_page_callback');
}
// Output the custom page
function reset_settings_page_callback() {
echo '<form action="" method="post">';
echo '<input type="hidden" name="action" value="reset_settings">';
echo '<input type="submit" value="Reset Settings" class="button button-primary">';
echo '</form>';
}
// Handle custom action
add_action('admin_action_reset_settings', 'handle_reset_settings');
function handle_reset_settings() {
// Reset settings
// your custom code here
}