Uso de la biblioteca de activación del complemento TGM en tus temas

Los temas no están destinados a ser funcionales, pero como desarrolladores de temas, en su mayoría necesitamos incluir algunas características para hacer que nuestro tema sea un poco mejor y una función, ya sabes, funcional. 

En este tutorial, vamos a echar un vistazo al término "territorio de complementos" y aprenderemos a usar una herramienta fantástica escrita por Thomas Griffin: la biblioteca de activación de complementos de TGM.

Funcionalidad del tema: territorio invasor de complementos

Los temas están destinados a cambiar el diseño de su sitio web de WordPress. Idealmente, debería ser visual. Pero en esta edad de oro de WordPress, los desarrolladores de temas a menudo incluyen características funcionales en sus temas para mantenerse competitivos en el mercado. Esto se suponía que era, pero es.

Esta es la invasión del territorio del plugin. Podemos definir "territorio de plugin" en términos simples: las partes funcionales del código están dentro de los límites de este territorio. Cada bit de código que cambia la funcionalidad de su sitio web debe servirse como un complemento, si aún no se ha servido en el núcleo de WordPress. 

En una de mis publicaciones anteriores (en la serie "Making the Perfect WordPress Theme"), mencioné regla de oro del "territorio plugin":

Si la característica es sobre el apariencia visual del sitio web, debería estar en el tema, pero si se trata de la funcionalidad de un sitio web, debe incluirse como un complemento separado.

Bastante fácil, cierto? 

Aunque las personas aún tienden a codificar bits funcionales en sus temas, los directorios de temas (como WordPress.org y ThemeForest) no aceptan temas que invadan el "territorio de complementos". Por lo tanto, se ha convertido en un problema para ofrecer funcionalidad con temas..

Afortunadamente, existe una solución bastante simple y no va en contra de la regla del "territorio del complemento".

Introducción a la biblioteca de activación de plugin TGM

TGM Plugin Activation es una biblioteca liviana con el fin de agrupar temas con complementos. La idea es simple: cuando un usuario instala su tema, hace que el usuario instale complementos de WordPress.org, un sitio web externo o la carpeta de temas. Esto es lo que Thomas Griffin, el creador de la biblioteca, define esta pequeña herramienta práctica:

Activación del complemento TGM es una biblioteca de PHP que le permite solicitar o recomendar fácilmente complementos para sus temas (y complementos) de WordPress. Permite a los usuarios instalar e incluso activar automáticamente complementos en forma individual o masiva utilizando clases, funciones e interfaces nativas de Wordpress. Puede hacer referencia a complementos preempaquetados, complementos del Repositorio de complementos de WordPress o incluso complementos alojados en otros lugares de Internet..

Esta es probablemente la solución más inteligente para el problema de "invasión de territorio de complementos". Y es bastante fácil de aplicar, también. 

Echemos un vistazo!

Instalación de la activación del complemento TGM

Instalar TGM Plugin Activation es ridículamente fácil. Solo sigue estos pasos:

  • Descargue la biblioteca de activación del complemento TGM de la sección "Descargar" de la página.
  • Abra el archivo zip y extraiga class-tgm-plugin -ctivation.php en tu carpeta de temas (donde quieras).
  • Abre tu tema funciones.php archiva y usa el requerir una vez() función para, bueno, requerir el archivo de clase (una vez) en su tema.
  • Cree una función para configurar la activación del complemento TGM y conéctela a tgmpa_register mediante el add_action () función.
  • Hecho!

Es tan fácil que ni siquiera necesita un código PHP complicado para requerir o recomendar complementos. Echa un vistazo al siguiente código:

A partir de ahora, puede hacer que sus usuarios instalen nuevos complementos configurando $ plugins Variable en la función que acabas de crear.. 

A ver cómo se hace..

Instalación de complementos con activación de complemento TGM

Como se puede ver desde arriba, el $ plugins La variable es una matriz. Y para definir los complementos a instalar, debe crear matrices dentro de esa matriz (para que pueda establecer sus propios parámetros). Suena difícil, pero no es:

Hay un par de parámetros para usar:

  • nombre (cadena, requerida) - El nombre del complemento.
  • babosa (cadena, requerida) - El slug del complemento (generalmente el nombre de su carpeta).
  • necesario (booleano, requerido) - Si está configurado en cierto, Tu tema "requerirá" el plugin. Si falso, el tema lo "recomendará".
  • fuente (cadena, a veces se requiere) - La fuente del complemento. Si es un plugin de WordPress.org, este parámetro no debe usarse; mas se requiere.
  • versión (cadena, opcional) - La versión mínima requerida para el complemento. Por ejemplo; Si el usuario del tema ya ha instalado un complemento requerido pero no tiene el número de versión mínimo que usted especificó, la Activación del complemento TGM advierte al usuario que lo actualice.
  • force_activation (booleano, opcional) - Si se establece en cierto, el usuario no podrá desactivar el complemento mientras su tema esté activo. Un poco molesto, pero podría ser necesario en algunos escenarios..
  • force_deactivation (booleano, opcional) - Si se establece en cierto, El complemento se desactivará una vez que el usuario cambie de tema..
  • external_url (cadena, opcional) - Si se establece, el nombre del complemento se vinculará a esta dirección en la notificación de requisitos del complemento.

Tiene tres opciones para hacer que sus usuarios instalen complementos con la Activación de Complementos TGM: Puede requerir un complemento del Directorio de Complementos de WordPress, de una fuente externa (como su propio servidor o un CDN), o de su carpeta de temas (como /my-theme/plugins/shortcodes.zip).

Requerir un complemento de WordPress.org

 'BuddyPress', 'slug' => 'buddypress', 'required' => false, // se recomienda este complemento)); ?>

Requerir un complemento de una fuente externa

 'My Awesome Plugin', 'slug' => 'my-awesome-plugin', 'source' => 'http://files.my-website.com/my-awesome-plugin.zip', 'required' = > true, // este complemento es requerido 'external_url' => 'http://my-website.com/introducing-my-awesome-plugin', // página de mi plugin 'force_deactivation' => true, // desactiva este complemento cuando el usuario cambia a otro tema)); ?>

Requerir un complemento del directorio de temas

 'My Super Sleek Slider', 'slug' => 'my-super-sleek-slider', 'source' => get_stylesheet_directory (). '/lib/plugins/my-super-sleek-slider.zip', // La fuente "interna" del complemento. 'required' => true, // este plugin es requerido 'versión' => '1.2', // el usuario debe usar la versión 1.2 (o superior) de este plugin 'force_activation' => false, // este plugin va a funcionar permanecer activado a menos que el usuario cambie a otro tema)); ?>

Configuración de la activación del complemento TGM

Observe la tgmpa () ¿Funciona con dos parámetros al final de nuestro código de ejemplo? El segundo parámetro es el $ config variable que también pasa a ser una matriz, al igual que el $ plugins parámetro. Como su nombre lo sugiere, puede configurar la biblioteca de activación del complemento TGM con esta matriz. También tiene su propio conjunto de opciones que necesita configurar:

  • carné de identidad (cadena): un ID único para la biblioteca de activación de complemento de TGM que implementaste en tu tema. Esto es realmente muy importante: si otro complemento también utiliza la activación del complemento TGM, las diferentes identificaciones evitarían conflictos.
  • ruta predeterminada (cadena): la ruta de acceso absoluta predeterminada para los complementos dentro de su tema. Cuando configura esto, puede usar el nombre del archivo ZIP como fuente parámetro para tu plugin.
  • menú (cadena) - La barra de menú para la página de instalación del complemento.
  • has_notices (booleano) - Si se establece en cierto, Se muestran avisos de administración para los complementos requeridos / recomendados.
  • desestimable (booleano) - Si se establece en cierto, El usuario puede "descartar" los avisos..
  • despide_msg (cadena) - Si el desestimable La opción se establece en falso, este mensaje se mostrará sobre el aviso de administrador..
  • es_automático (booleano) - Si se establece en cierto, Los complementos se activarán después de que el usuario acepte instalarlos..
  • mensaje (cadena) - HTML opcional para mostrar antes de la tabla de complementos.
  • instrumentos de cuerda (array) - Sin embargo, otro formación que incluye los mensajes a mostrar. También puedes establecerlos como cadenas traducibles. Revisar la example.php archivo para ver la lista completa de cadenas de mensajes.
 'mytheme-tgmpa', // su ID de TGMPA exclusivo 'default_path' => get_stylesheet_directory (). '/ lib / plugins /', // ruta absoluta por defecto 'menú' => 'mytheme-install-required-plugins', // barra de menú 'has_notices' => true, // Mostrar avisos de administrador 'descartable' => false , // los avisos NO son desechables 'dismiss_msg' => 'Realmente, realmente necesito que instales estos complementos, ¿vale?', // este mensaje se mostrará en la parte superior de nag 'is_automatic' => true, // automáticamente activar complementos después de la instalación 'mensaje' => '', // mensaje a la salida justo antes de la tabla de complementos' cadenas '=> array (); // La matriz de cadenas de mensajes que utiliza la Activación del complemento TGM); ?>

Envolviendo todo

Como puede ver, no es en absoluto imposible ofrecer funcionalidad con los temas de WordPress, solo tiene que pensar en los usuarios cuando cambian de tema a otro. La biblioteca de activación de complementos de TGM ofrece una manera realmente inteligente de jugar con el libro.

¿Qué te parece esta herramienta? ¿Lo ha usado alguna vez, o planea usarlo en el futuro? Cuéntanos lo que piensas comentando abajo. Y si te ha gustado este artículo, no olvides compartirlo con tus amigos.!