WordPress: Automatically create media buttons for shortcodes
Shortcodes are pretty cool way of formatting content as well as doing a lot of other things. However, common users can often have problems when they have to remember and type the shortcodes to achieve the desired results. Even if you are a pro at WordPress, you can still forget some shortcode exists in your WordPress theme. It would have been easy if all shortcodes were available for selection in a dropdown media button in the text editor.
Add the following code snippet to the functions.php file of your wordpress theme to add a select menu with a list of all available shortcodes. You do not have to add shortcodes in the code; the snippet does it automatically. You can exclude certain shortcodes (maybe, a back-end arrangement not required by users) by adding that in the exclusion list $exclude array. You can find the details in the comment in the code.
add_action('media_buttons','add_sc_select',11);
function add_sc_select(){
global $shortcode_tags;
/* ------------------------------------- */
/* enter names of shortcode to exclude bellow */
/* ------------------------------------- */
$exclude = array("wp_caption", "embed");
echo ' <select id="sc_select"><option>Shortcode</option>';
foreach ($shortcode_tags as $key => $val){
if(!in_array($key,$exclude)){
$shortcodes_list .= '<option value="['.$key.'][/'.$key.']">'.$key.'</option>';
}
}
echo $shortcodes_list;
echo '</select>';
}
add_action('admin_head', 'button_js');
function button_js() {
echo '<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#sc_select").change(function() {
send_to_editor(jQuery("#sc_select :selected").val());
return false;
});
});
</script>';
}
Source: WP Snipp