The media_upload_form_url WordPress PHP filter allows you to modify the media upload form action URL.
Usage
add_filter('media_upload_form_url', 'my_custom_upload_form_url', 10, 2); function my_custom_upload_form_url($form_action_url, $type) { // your custom code here return $form_action_url; }
Parameters
$form_action_url (string)
– The media upload form action URL.$type (string)
– The type of media. Default ‘file’.
More information
See WordPress Developer Resources: media_upload_form_url
Examples
Append a query parameter to the form action URL
In this example, we’ll append a query parameter my_param
to the form action URL.
add_filter('media_upload_form_url', 'append_my_param_to_upload_form_url', 10, 2); function append_my_param_to_upload_form_url($form_action_url, $type) { $form_action_url = add_query_arg('my_param', 'example_value', $form_action_url); return $form_action_url; }
Change the form action URL based on media type
In this example, we’ll change the form action URL depending on the media type being uploaded.
add_filter('media_upload_form_url', 'change_upload_form_url_based_on_media_type', 10, 2); function change_upload_form_url_based_on_media_type($form_action_url, $type) { if ($type == 'image') { $form_action_url = 'https://example.com/custom-image-upload-url'; } elseif ($type == 'audio') { $form_action_url = 'https://example.com/custom-audio-upload-url'; } return $form_action_url; }
Add a subdirectory to the form action URL
In this example, we’ll add a subdirectory uploads
to the form action URL.
add_filter('media_upload_form_url', 'add_subdirectory_to_upload_form_url', 10, 2); function add_subdirectory_to_upload_form_url($form_action_url, $type) { $form_action_url = trailingslashit($form_action_url) . 'uploads/'; return $form_action_url; }
Modify the form action URL based on user role
In this example, we’ll modify the form action URL based on the current user’s role.
add_filter('media_upload_form_url', 'change_upload_form_url_based_on_user_role', 10, 2); function change_upload_form_url_based_on_user_role($form_action_url, $type) { $current_user = wp_get_current_user(); if (in_array('administrator', $current_user->roles)) { $form_action_url = 'https://example.com/admin-upload-url'; } else { $form_action_url = 'https://example.com/regular-upload-url'; } return $form_action_url; }
Force the form action URL to use HTTPS
In this example, we’ll force the form action URL to always use HTTPS.
add_filter('media_upload_form_url', 'force_https_in_upload_form_url', 10, 2); function force_https_in_upload_form_url($form_action_url, $type) { $form_action_url = set_url_scheme($form_action_url, 'https'); return $form_action_url; }