WordPress Shortcodes el camino correcto

Una de las razones principales por las que WordPress es la plataforma de CMS más popular disponible es el gran nivel de personalización que ofrece. Hoy, revisaremos el proceso de integración de una de esas características populares, los códigos cortos, de la manera más fácil para el usuario, en nuestro tema.


Un curso visual de choque en códigos cortos


Una palabra del autor

A pesar de que hay algunos trillones de opciones para elegir, WordPress ha tomado la corona cómodamente como el rey de los CMS y las plataformas de blogs con su increíble flexibilidad. Un shortcode es una de esas características que incrementa la facilidad de uso del sistema..

Sin embargo, la mayoría de las implementaciones aún requieren que recuerdes el shortcode en sí. Cuando ha creado una obra maestra de un tema, la facilidad de uso no debería quedarse atrás. Le mostraré cómo crear códigos cortos y luego integrarlos con el editor mismo, para que el usuario no tenga que revisar sus documentos solo para recordar la sintaxis correcta para incrustar un botón. Intrigado? Empecemos de inmediato!


¿Qué son estos shortco-whamathingies?

Se llama un Código corto y ha sido parte de la instalación básica de WordPress desde que llegó a la versión 2.5. Básicamente, estos son similares a los bbcodes utilizado en el popular software de tableros de mensajes: marcado ligero utilizado para dar formato al contenido.

Aquí, puedes definir tus propios códigos para usar dentro de tu tema. Sin embargo, a diferencia de los BBCodes, los códigos cortos se utilizan principalmente para proteger al usuario de marcas tediosas y posibles errores. Mediante el uso de un código corto, por ejemplo, un botón, el usuario no tiene que recordar el complicado marcado que se debe ingresar para crear el botón. En general, es un gran impulso para la facilidad de uso de un tema y, posiblemente, la amabilidad de noob.


Variaciones de ShortCode

Si no está familiarizado con el concepto de BBCode y, por extensión, con shortcode, así es como se ve la versión más simple:

 [mi galería]

Si alguna vez has incrustado una galería con WordPress, ya has usado un shortcode!

Hay dos variaciones más con las que también debes estar familiarizado..

 [botón] Contenido [/ botón] [enlace a = "www.net.tutsplus.com"] NetTuts + [/ link]

Implementaremos cada una de estas variaciones antes de pasar a otras cosas más ocupadas..

Cada implementación de shortcode requiere un proceso de dos pasos:

  • 1: Crear el método del controlador primario.
  • 2: Conecta el controlador a WordPress

Independientemente de la complejidad del código abreviado, los pasos básicos siguen siendo los mismos.


Toma 1: Reemplazo de cuerdas

Primero aprenderemos cómo implementar el shortcode más simple posible. Como caso de uso, supongamos que finaliza cada publicación con un texto de cierre de sesión común. Copiar y pegar puede ser un enfoque simple, pero puede sentirse como un ludita al hacerlo. Vamos a arreglar esto con un poco de velocidad WP!

A menos que se indique lo contrario, todo el código de abajo entra en funciones.php

Paso 1: Crear la función principal

La función principal se ocupa de la lógica central de su código abreviado. Tendremos que crear esto primero antes de continuar.

 function signOffText () return '¡Muchas gracias por leer! Y recuerda suscribirte a nuestro feed RSS. '; 

Paso 2: Hook en WordPress

El siguiente paso, como puede suponer, es conectarse al sistema de WordPress para asociar el código abreviado con este texto. Esto se hace usando el add_shortcode método.

 add_shortcode ('signoff', 'signOffText');

Sí, una sola línea es todo lo que se necesita. El primer parámetro define el shortcode que usarás en el editor, mientras que el segundo apunta a la función que creamos hace un momento..

Nota: los add_shortcode El método siempre viene después del método manejador..

Deberias hacer eso. Sólo tipo [cerrar sesión] en su editor y WordPress reemplazará dinámicamente el texto según sea necesario.


Toma 2: envolver contenido

A continuación, vamos a echar un vistazo a otra variación: envolviendo un poco de contenido con un poco de marcado. Tendrías que usarlo así:

 [cita] Algunos textos [/ cita]

Paso 1: Crear la función principal

La función primaria tiene que ser modificada un poco aquí. Notamos que nuestra función recibe dos parámetros: atributos a través de atts variable y el contenido en sí a través de la contenido variable.

El siguiente paso es simplemente devolver el marcado envuelto alrededor del texto seleccionado.

 función de presupuesto ($ atts, $ contenido = nulo) return '
"'. $ content.'"
';

Paso 2: Hook en WordPress

Este paso sigue siendo el mismo:

 add_shortcode ("quote", "quote");

Me gusta nombrar mis códigos cortos exactamente igual que las funciones primarias a menos que la denominación se vuelva difícil de manejar. Puede tener sus propios estilos, así que no dude en cambiar el esquema de nombres. No hay buenas prácticas aceptadas.


Toma 3: Añadir atributos

Finalmente, también veremos cómo agregar atributos a la mezcla. Tendrías que usarlo así:

 [link to = "www.net.tutsplus.com"] NetTuts + [/ link]

Paso 1: Crear la función principal

La función principal debe ser refaccionada para manejar todas las nuevas funcionalidades que estamos incorporando. Primero, fusionamos los atributos pasados ​​con el código corto y los atributos que estamos esperando. Puedes leer más sobre el proceso aquí.

El paso final, como siempre, es simplemente devolver el marcado que queremos después de llenarlo adecuadamente. Aquí, he usado los datos enviados con el código corto para completar el ancla href atributo así como contenido.

 enlace de la función ($ atts, $ content = null) extract (shortcode_atts (array ("to" => 'http://net.tutsplus.com'), $ atts)); devuelve ''. $ content. ''; 

Paso 2: Hook en WordPress

Este paso se mantiene sin cambios, pero es esencial. Recuerde, sin esto, WordPress no tiene qué hacer con el código corto.

 add_shortcode ("enlace", "enlace");

Pateando todo a una muesca

Aquí es donde esperas que este tutorial termine, pero no, lo has adivinado mal. Como mencioné anteriormente, los códigos cortos quitan mucho dolor, pero hay pocos errores. Por un lado, el usuario debe recordar los códigos cortos que tiene a su disposición para hacer un uso significativo de ellos..

Si tienes solo una pareja, todo está bien, pero con temas cargados de características, recordar que cada uno de ellos se convierte en una tarea rutinaria. Para corregir esto, vamos a agregar botones directamente a la interfaz de TinyMCE, de modo que el usuario puede simplemente hacer clic en el botón para hacerlo todo.

Como ejemplo, voy a enseñarte cómo agregar la segunda variación al editor. Espero que pueda extrapolar esta información para la funcionalidad específica que tiene en mente.


Paso 1: Gancho en WordPress

El primer paso en el proceso es conectarse a WordPress y agregar nuestro código de inicialización. El siguiente fragmento se encarga de eso. Recuerde, todo esto debe estar en su funciones.php expediente.

 add_action ('init', 'add_button');

Estamos pidiendo a WordPress que ejecute la función llamada botón de agregar cuando la pagina esta cargada inicialmente. add_action es nuestro gancho en los internos de WordPress.


Paso 2: Crear nuestra función de inicialización

 función add_button () if (current_user_can ('edit_posts') && current_user_can ('edit_pages')) add_filter ('mce_external_plugins', 'add_plugin'); add_filter ('mce_buttons', 'register_button'); 

Este pequeño fragmento de código se ejecutará cuando se cargue la página. Anteriormente, estamos verificando si el usuario tiene la autorización necesaria para editar una página o una publicación antes de continuar.

Una vez hecho esto, conectamos dos de nuestras funciones [para ser escritas] a filtros específicos. Ambos en realidad se conectan a la arquitectura frontal de TinyMCE a través de WordPress. El primero se ejecuta cuando el editor carga los complementos, mientras que el segundo se ejecuta cuando los botones están a punto de cargarse..

En el ejemplo anterior, procedemos independientemente del modo en que se encuentre el editor. Si desea mostrarlo solo cuando el editor está en, por ejemplo, el modo visual, deberá realizar una comprobación rápida. Si get_user_option ('rich_editing') evalúa a cierto, estás en modo visual De lo contrario, el modo HTML. Normalmente tiendo a agregar estos botones solo en modo visual, pero siéntase libre de mezclar y combinar aquí.


Paso 3: Registrar nuestro botón

 función register_button ($ buttons) array_push ($ buttons, "quote"); devuelve $ botones; 

La función simplemente agrega nuestro shortcode a la matriz de botones. También puede agregar un divisor entre su nuevo botón y los botones anteriores al ingresar una | antes de.


Paso 4: Registrar nuestro complemento TinyMCE

 function add_plugin ($ plugin_array) $ plugin_array ['quote'] = get_bloginfo ('template_url'). '/ js / customcodes.js'; devuelve $ plugin_array; 

El fragmento anterior le permite a TinyMCE, y WordPress, saber cómo manejar este botón. Aquí, mapeamos nuestro citar código corto a un archivo JavaScript específico. Usamos el get_bloginfo Método para obtener la ruta a la plantilla actual. Por el bien de la organización, mantengo mi plugin tinyMCE junto con mis otros archivos JS.


Paso 5: Escribir el complemento TinyMCE

Ahora en la parte final de nuestro esfuerzo. Recuerde, el siguiente código entra en un archivo llamado customcodes.js colocado en el directorio JS de tu tema. Si pensabas que iba a entrar funciones.php Como todo el código anterior, ninguna cookie para ti.!

 (function () tinymce.create ('tinymce.plugins.quote', init: function (ed, url) ed.addButton ('quote', title: 'Add a Quote', image: url + '/ image .png ', onclick: function () ed.selection.setContent (' [quote] '+ ed.selection.getContent () +' [/ quote] '););, createControl: function (n, cm) return null;,); tinymce.PluginManager.add ('quote', tinymce.plugins.quote);) ();

Parece un poco complejo pero te aseguro que no es nada. Vamos a dividirlo en una sección más pequeña para facilitar el análisis..

primero El orden del día es un cierre rápido para evitar contaminar el espacio de nombres global. Por dentro, llamamos al crear Método para crear un nuevo complemento que pase el nombre y otros atributos variados. En aras de la brevedad, solo voy a llamar a mi complemento citar.

Una vez dentro, definimos la en eso Función que se ejecuta en la inicialización. ed apunta a la instancia del editor mientras url apunta a la URL del código del plugin.

La mayoría de los atributos deben ser bastante autoexplicativos. Tenga en cuenta que la imagen que pasa es relativa a la carpeta principal del archivo JS que contiene el código. Aqui estaria directorio de temas / js.

Siguiente arriba, creamos el controlador de eventos para este botón a través de al hacer clic función. La línea de un solo que contiene esencialmente obtiene el texto seleccionado, si lo hubiera, y lo envuelve sin código corto. setContent y obtener el contenido son métodos auxiliares proporcionados por tinyMCE para manipular el texto seleccionado.

Finalmente, en la última línea, agregamos el complemento recién creado al administrador de complementos de tinyMCE. Presta atención a los nombres que usas en cada paso. Es propenso a errores si no estás prestando atención. Y eso es todo! Hemos terminado Carga el editor y asegúrate de que tu nuevo botón esté funcionando.


Conclusión

Y ahí lo tienes. Hemos integrado con éxito códigos cortos en un tema de WordPress de una manera muy fácil de usar. Esperemos que hayas encontrado este tutorial para ser de ayuda. Siéntase libre de reutilizar este código en cualquier otra parte de sus proyectos e incorpore los comentarios si necesita ayuda.

Preguntas? Cosas bonitas que decir? Criticas? Pulsa la sección de comentarios y déjame un comentario. Feliz codificación y muchas gracias por leer.!