Afficher tous les shortcodes disponibles dans l’éditeur

A la suite de cet article, j’ai trouvé un bout de code qui permet l’affichage de tous les shortcodes disponibles pour son thème, plugin compris.Cela peut éviter de créer des boutons supplémentaires dans la page d’édition d’un article ou d’une page, cette fonction les regroupe tous sous la forme d’un select

add_action('media_buttons','cc_select',11);
function cc_select(){
    global $shortcode_tags;
    echo ' <select id="cc_select"><option>Shortcode</option>';
    foreach ($shortcode_tags as $key => $val){
            if($key){
            $shortcodes_select .= '<option value="['.$key.'][/'.$key.']">'.$key.'</option>';
            }
        }
     echo $shortcodes_select;
     echo '</select>';
}
add_action('admin_head', 'button_js');
function button_js() {
        echo '<script type="text/javascript">
        jQuery(document).ready(function(){
           jQuery("#cc_select").change(function() {
                          send_to_editor(jQuery("#cc_select :selected").val());
                          return false;
                });
        });
        </script>';
}

 

Si on souhaite appliquer cette méthode et supprimer certains shortcodes inutiles, on peut rajouter une exclusion à notre fonction, en choisissant à la suite les différents shortcodes que l’on veut ignorer dans la liste :

add_action('media_buttons','cc_select',11);
function cc_select(){
    global $shortcode_tags;
     /* ------------------------------------- */
     /* mettre le nom des shortcodes à supprimer de la liste ci dessous*/
     /* ------------------------------------- */
    $exclude = array("video", "audio");
    echo ' <select id="cc_select"><option>Shortcode</option>';
    foreach ($shortcode_tags as $key => $val){
            if(!in_array($key,$exclude)){
            $shortcodes_select .= '<option value="['.$key.'][/'.$key.']">'.$key.'</option>';
            }
        }
     echo $shortcodes_select;
     echo '</select>';
}
add_action('admin_head', 'button_js');
function button_js() {
        echo '<script type="text/javascript">
        jQuery(document).ready(function(){
           jQuery("#cc_select").change(function() {
                          send_to_editor(jQuery("#cc_select :selected").val());
                          return false;
                });
        });
        </script>';
}

Si l’on veut juste afficher un shortcode que l’on a crée, sous forme de select, je vous reporte à l’article suivant

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.