Je suis familier avec la création de shortcodes à fermeture automatique comme:
// shortcode
function wpse_shortcode_example( $wpse_atts ) {
// Attributes
$wpse_atts = shortcode_atts(
array(
'foo' => 'bar',
'width' => '100%',
'height' => 'auto',
),
$wpse_atts,
'wpse'
);
// Return
return '<embed
src="' . $wpse_atts['src'] . '"
width="' . $wpse_atts['width'] . '"
height="' . $wpse_atts['height'] . '";
}
add_shortcode( 'wpse', 'wpse_shortcode_example' );
mais je voudrais commencer à les ajouter au TinyMCE. J'ai fait plusieurs recherches mais tous les résultats de recherche sont datés ou utilisent une approche qui n'est plus recommandée:
- Comment ajouter un bouton de shortcode à l'éditeur TinyMCE? : excellent point de départ mais la question a été créée en 2012.
- Raccourcis WordPress: Un guide complet : bon article mais de 2012 et il utilise
query_posts()
mais pourrait être modifié - Guide pour créer vos propres boutons de l'éditeur WordPress : est un bel article, mais il y a encore un certain temps, 2013, mais il ne couvre pas les bases ou les bases pour utiliser TinyMCE.
Je sais que le développeur en est encore à ses débuts, mais le manuel du plugin ne parle que brièvement de TinyMCE Enhanced Shortcodes et de l' API Shortcode et add_shortcode()
ne mentionne pas TinyMCE.
Cela m'amène donc à ma question. Quelle est la procédure de base pour transformer un shortcode à fermeture automatique en bouton cliquable dans l'éditeur TinyMCE?
plugin-development
shortcode
tinymce
DᴀʀᴛʜVᴀᴅᴇʀ
la source
la source
Réponses:
Nous commençons par ajouter le bouton TinyMCE personnalisé:
Ensuite, nous déclarons et enregistrons le nouveau bouton:
Enfin, nous décidons quels boutons (plus sur les boutons peuvent être trouvés dans la mise en forme du contenu ) que nous voulons afficher. Évidemment, si vous avez UX en tête, vous n'en afficheriez que quelques-uns, par exemple:
Comme vous pouvez le voir dans la
add_tinymce_plugin_custom_em
fonction, nous déclarons un fichier javascript à l'intérieurget_template_directory_uri() .'/plug/custom-em/custom-em.js'
Créez donc le
custom-em.js
fichier, puis vous avez deux façons de procéder.Vous pouvez soit utiliser le format de shortcode suivant,
[shortcode foo="" bar=""]
soit[shortcode][/shortcode]
.Commençons par le
[shortcode foo="" bar=""]
format:Comme vous pouvez le voir, nous utilisons une image comme icône de bouton. Vous pouvez changer cela en texte comme indiqué dans l'exemple ci-dessous.
Ce qui suit est ce que nous utilisons sur notre propre plate-forme, il englobe la sélection dans
<em class="whatever">hello world</em>
:Veuillez publier les résultats et effectuer des modifications. TinyMCE est un fléau et nécessite des maux de tête mais peut être résolu de manière collaborative.
la source