1. Code
  2. Game Development

Usar WordPress como un framework para una aplicación web

Scroll to top

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Los frameworks de aplicaciones como Ruby on Rails, CakePHP, CodeIgniter, etc. Son habituales hoy en día. Si los has usado alguna vez o has leído sobre ellos es posible que seas consciente de sus características y de cómo te pueden ayudar a acelerar el desarrollo de tu aplicación. En este artículo explicaremos las características comunes que podemos encontrar en la mayoría de estos frameworks y su similaridad con WordPress.


¿Qué es un framework de aplicación?

En palabras sencillas, un framework de aplicación puede ser invocado como un conjunto de librerías de código o clases reusables. Los frameworks permiten a los diseñadores/desarrolladores centrarse en la lógica de su software y su negocio en lugar de en los detalles generales como la gestión del usuario, la conexión de la base de datos, los errores de registro, el cacheado, la generación de enlaces amigables, etc. Esto ayuda a reducir el tiempo de desarrollo.

Algunos de los frameworks de aplicaciones web más ampliamente usados son Ruby on Rails, CodeIgniter, CakePHP y Zend. Estos frameworks están construidos sobre una arquitectura MVC para separar distintos aspectos de la aplicación.

Como la intención del artículo es solo comparar estos frameworks con WordPress, ahora hablaremos solo sobre frameworks construidos con PHP, ya que es lo que también usa WordPress.


Ventajas de usar un framework de aplicación web

PHP es un lenguaje de programación ampliamente usado. Ha recibido críticas negativas en el pasado pero con frecuencia no debido a errores. PHP tiene una pequeña curva de aprendizaje que hace que a cualquiera nuevo en la programación le resulte fácil empezar a usarlo. Esto ha dado como resultado que algunos usuarios utilicen atajos que hacen que sus sitios web/aplicaciones sean menos seguros.

Como cada desarrollador tiene un estilo distinto al escribir código, el uso de un framework ayuda de alguna manera a asegurarse de que todo el mundo escribe de un modo estandarizado y que cumple las convenciones.

Abajo encontrarás una lista con las características que estos frameworks ofrecen:

  • Gestión de usuarios
  • Motor de plantillas
  • Registro de errores
  • Localización
  • Validación de formularios y datos
  • Carga de archivos y gestión de medios
  • Manipulación de imagen
  • URLs amigables para los motores de búsqueda
  • Gestión de sesiones
  • Trackback, XML-RPC y APIs
  • Capacidad de ampliación usando ganchos y clases o plugins
  • Programación de ejecución automática de código
  • Cacheado

WordPress tiene la mayoría de las anteriores capacidades integradas. Así que la pregunta es, ¿por qué no podemos usar WordPress como un framework? Como actuales usuarios de WordPress ya somos conscientes de las clases y convenciones usadas por WordPress. Usándolo para nuestros más grandes proyectos nos permitiría usar nuestros actuales conocimientos para crear más rápidamente aplicaciones web más grandes y más complejas usando la herramienta con la que nos encanta trabajar.


Características de WordPress que lo convierten en una excitante herramienta para ser utilizada como framework:

1. Administración y escritorio

Sin duda WordPress cuenta con uno de los mejores backends de administración. Esta puede ser una de las razones por las que los usuarios generales son capaces de adoptar WordPress tan rápidamente. Un menú bien organizado, widgets de escritorio y un diseño responsivo convierten a WordPress en un framework mejor que cualquier otro, al menos en términos del diseño del backend.

Añadir menús personalizados o crear pantallas independientes para la introducción de información para distintos conjuntos de datos (gracias a los tipos de entrada personalizadas) es fácil de hacer.

El escritorio permite disponer de una rápida visión de conjunto del sitio web y sus contenidos y también podrías crear tus propios widgets de escritorio usando unas pocas líneas de código como por ejemplo:

1
	// Function that output's the contents of the dashboard widget

2
	function dashboard_widget_function() {
3
		echo "Hello World, this id my first Dashboard Widget!";
4
	}
5
	// Function that beeng used in the action hook

6
	function add_dashboard_widgets() {
7
		wp_add_dashboard_widget('dashboard_widget', 'Example Dashboard Widget', 'dashboard_widget_function');
8
	}
9
	// Register the new dashboard widget into the 'wp_dashboard_setup' action

10
	add_action('wp_dashboard_setup', 'add_dashboard_widgets' );
Google Analytics Dashboard WidgetGoogle Analytics Dashboard WidgetGoogle Analytics Dashboard Widget

Buenos ejemplos de estos widgets de escritorio sería el plugin de Google Analytics, que te proporciona un rápido resumen de las estadísticas de los últimos 30 días en un pequeño widget de escritorio.

El diseño del escritorio de WordPress también se puede cambiar usando CSS para hacerlo de marca blanca.

2. Gestión de usuarios y control de acceso

Uno de los aspectos más importantes de cualquier aplicación es la gestión de los usuarios y el control de acceso. WordPress ofrece una excelente herramienta de gestión de usuarios junto con la capacidad de ampliar el control de acceso a distintas secciones de la aplicación usando roles y capacidades.

Por defecto, sin ni siquiera una sola línea de código, WordPress admite distintos roles como Administración (con control completo), Editor, Contribuidor, y Suscriptor. Usando este mecanismo es fácil extender el nivel de control que asignas a un usuario para gestionar distintas secciones del sitio web.

3. Motor de plantilla

Aparte de las características del backend, otra parte importante de cualquier proyecto consiste en la creación de la cara frontal del sitio web. WordPress tiene uno de los sistemas de plantillas más sencillos con documentación detallada y una comunidad creciente y activa para ayudarte si te atascas.

Como no está basado en MCV (Controladores de modelos de vista) es más fácil incluso para aquellos con cero conocimientos de PHP empezar a usar WordPress.

4. Localización

WorPress tiene una capacidad integrada para dar soporte a la localización. También ofrece generación dinámica de clases de manera que los desarrolladores de temas puedan crear sitios web más fácilmente para acceder a si el usuario lee de izquierda a derecha o de derecha a izquierda.

5. Plugins

A día de hoy WordPress cuenta con 20.105 plugins gratuitos activos en su directorio. También existen miles de plugins de calidad gratuitos y a cambio de una pequeña tasa. Los plugins amplían la funcionalidad predeterminada para ofrecer distintos tipos de funcionalidad que va desde el cacheado, la generación de mapa del sitio, la integración con servicios de terceros, contenido multiidioma del sitio, etc.

6. Cacheado

El cacheado es uno de los aspectos importantes de cualquier sitio web o aplicación basada en la web. Ayuda a reducir la carga del servidos y aumenta la velocidad de un sitio web. WordPress ofrece un sencillo mecanismo de cacheado que se puede activar con tan solo unas pocas líneas de código y para los usuarios que deseen más control, existen plugins que proporcionan control completo en la forma en la que un sitio web es cacheado y también ofrecen integración con redes de distribución de contenido de terceros.

7. URLs amigables para los motores de búsqueda

WordPress ofrece generación de URL amigable usando tan solo unos clics y se integra bien con el resto de secciones de generación de contenido.

8. Carga de archivos y gestión de medios

WordPress tiene una de las mejores funcionalidades de carga y gestión de medios. No ofrece una manipulación de imagen sofisticada como Instagram, pero ofrece las características más utilizadas.

Con carga mediante arrastre y soltar, generación de miniaturas, conexión entre un elemento de datos como “Post” con múltiples imágenes, creación automática de galerías, WordPress ofrece una decente lista de características para la gestión de medios.

9. Ganchos, acciones y filtros

WordPress ofrece muchos ganchos que permiten que los desarrolladores invoquen funciones en momentos concretos. Estos se utilizan para añadir CSS y JavaScript a las etiquetas de cabecera de la página, añadiendo un banner al final de una entrada, etc.

10. Registro de errores

PHP cuenta con un sistema estándar de gestión de errores que se puede activar en WordPress colocando las siguientes líneas en tu wp-config.php:

1
	@ini_set('log_errors','On');
2
	@ini_set('display_errors','Off');
3
	@ini_set('error_log','/home/example.com/logs/php_error.log');
4
	/* That's all, stop editing! Happy blogging. */

11. XML-RPC y APIs

WordPress soporta XML-RPC el cual permite la publicación remota de datos en el sitio web. Actualmente esto se usa ampliamente solo para la publicación remota desde un cliente weblog a un sitio web WordPress, sin embargo, considéralo como algo que le permitirá a tus aplicaciones de escritorio comunicarse con tu aplicación basada en la web.

12. Instancias múltiples

Una de las mejores características de WordPress es WordPress Multisitio. Esto te permite ejecutar múltiples instancias de WordPress desde un único conjunto de archivos de núcleo. Esto podría usarse para crear o bien sitios web multiidioma, intancias específicas de una aplicación para determinados países o se puede usar también para crear algo tan dinámico como Shopify.com con una red de tiendas online. Esto es sobre lo que se ejecuta también WordPress.com.


WordPress fue creado originalmente como una aplicación web. Sin embargo, durante los últimos años, la talentosa gente de la comunidad de WordPress lo han personalizado y usado para construir no solo portales para sitios web de periódicos, temas para inmobiliarias, foros, y sitios web de preguntas y respuestas, así como muchos, muchos más variados sitios web.


Conclusión

Al optar por WordPress también deberías ser consciente de sus limitaciones. WordPress es rico en características y por tanto cuando es usado como base para aplicaciones más amplias, tendrás a tu disposición muchas características al alcance de tu mano. No obstante, si tus requisitos demandan un montón de personalización y contar con interconexión entre muy distintos tipos de datos, es posible que WordPress no sea la mejor opción.

Si has usado WordPress como algo más que un CMS, por favor, comparte tu proyecto con nosotros y cuéntanos qué hay de singular en él en la siguiente sección de comentarios.