Estoy familiarizado con la creación de códigos cortos de cierre automático como:
// 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' );
pero me gustaría comenzar a agregarlos a TinyMCE. He realizado varias búsquedas, pero todos los resultados de búsqueda están fechados o utilizan un enfoque que ya no se recomienda:
- ¿Cómo agregar un botón de código corto al editor TinyMCE? : excelente punto de partida, pero la pregunta se creó en 2012.
- Códigos abreviados de WordPress: una guía completa : buen artículo pero de 2012 y usa
query_posts()
pero podría modificarse - Guía para crear sus propios botones del editor de WordPress : es un buen artículo pero aún de hace un tiempo, 2013, pero no cubre los conceptos básicos o la base para usar TinyMCE.
Sé que el desarrollador aún se encuentra en sus primeras etapas, pero el Manual de complementos solo habla brevemente sobre TinyMCE Enhanced Shortcodes y Shortcode API y add_shortcode()
no menciona TinyMCE.
Entonces esto me lleva a mi pregunta. ¿Cuál es el procedimiento básico para convertir un shortcode de cierre automático en un botón en el que se puede hacer clic en el editor TinyMCE?
plugin-development
shortcode
tinymce
DᴀʀᴛʜVᴀᴅᴇʀ
fuente
fuente
Respuestas:
Comenzamos agregando el botón TinyMCE personalizado:
Luego declaramos y registramos el nuevo botón:
Finalmente, decidimos qué botones (se pueden encontrar más sobre los botones en Formateo de contenido ) que queremos mostrar. Obviamente, si tienes UX en mente, solo mostrarías algunos de ellos, por ejemplo:
Como puede ver en la
add_tinymce_plugin_custom_em
función, estamos declarando un archivo javascript dentroget_template_directory_uri() .'/plug/custom-em/custom-em.js'
Así que crea el
custom-em.js
archivo, y luego tienes dos formas de hacerlo.Puedes ir con el siguiente formato de shortcode
[shortcode foo="" bar=""]
o[shortcode][/shortcode]
.Comencemos con el
[shortcode foo="" bar=""]
formato:Como puede ver, usamos una imagen como icono del botón. Puede cambiar eso en texto como se describe en el ejemplo a continuación.
Lo siguiente es lo que usamos en nuestra propia plataforma, envuelve la selección en
<em class="whatever">hello world</em>
:Por favor, publique resultados y realice ediciones. TinyMCE es una plaga y requiere dolor de cabeza, pero puede resolverse de manera colaborativa.
fuente