The mu_dropdown_languages WordPress PHP filter allows you to modify the list of languages available in the dropdown menu.
Usage
add_filter('mu_dropdown_languages', 'your_custom_function', 10, 3); function your_custom_function($output, $lang_files, $current) { // your custom code here return $output; }
Parameters
- $output (string[]): Array of HTML output for the dropdown.
- $lang_files (string[]): Array of available language files.
- $current (string): The current language code.
More information
See WordPress Developer Resources: mu_dropdown_languages
Examples
Add a new language to the dropdown
Add the custom language “Esperanto” to the dropdown.
add_filter('mu_dropdown_languages', 'add_esperanto_to_dropdown', 10, 3); function add_esperanto_to_dropdown($output, $lang_files, $current) { $esperanto_option = '<option value="eo" ' . selected('eo', $current, false) . '>Esperanto</option>'; array_push($output, $esperanto_option); return $output; }
Remove a specific language from the dropdown
Remove the “Spanish” language from the dropdown.
add_filter('mu_dropdown_languages', 'remove_spanish_from_dropdown', 10, 3); function remove_spanish_from_dropdown($output, $lang_files, $current) { $spanish_key = array_search('<option value="es_ES" ' . selected('es_ES', $current, false) . '>Español</option>', $output); if ($spanish_key !== false) { unset($output[$spanish_key]); } return $output; }
Change the display text of a language
Change the display text of the “English” language to “American English”.
add_filter('mu_dropdown_languages', 'change_english_display_text', 10, 3); function change_english_display_text($output, $lang_files, $current) { $english_key = array_search('<option value="en_US" ' . selected('en_US', $current, false) . '>English</option>', $output); if ($english_key !== false) { $output[$english_key] = '<option value="en_US" ' . selected('en_US', $current, false) . '>American English</option>'; } return $output; }
Sort languages alphabetically
Sort the languages in the dropdown alphabetically.
add_filter('mu_dropdown_languages', 'sort_languages_alphabetically', 10, 3); function sort_languages_alphabetically($output, $lang_files, $current) { asort($output); return $output; }
Remove all languages except for the current one
Remove all languages from the dropdown except for the current one.
add_filter('mu_dropdown_languages', 'remove_all_except_current', 10, 3); function remove_all_except_current($output, $lang_files, $current) { foreach ($output as $key => $option) { if (strpos($option, 'value="' . $current . '"') === false) { unset($output[$key]); } } return $output; }