WordPress es uno de los CMS mas usados en el mundo. Al parecer 33% de Internet esta soportado por WordPress. Tal vez por su facilidad de uso para crear contenido de forma rápida y fácil para un usuario promedio de Internet. Pero la plataforma no está diseñada para resolver todo tipo de problemas. Por esta razón si tenemos una aplicación web (en este caso hecha con Yii2) o un sistema mas complejo es necesario realizarla con otro tecnología y no a través de plugins.

¿Por que integrar autenticación de WordPress a Yii2

En el párrafo anterior comenté como WordPress no puede ser usado para todo tipo de problemas. A veces necesitamos crear una aplicación con un framework para resolver cierto tipos de problemas o tener mayor control. Yo suelo usar el framework Yii2 permite realizar buenas aplicaciones en poco tiempo. Llevo un par de años usándolo y me gusta mucho.

A veces, tienes un sitio web con WordPress donde tienes una base de datos de usuario. Por ejemplo, una tienda registra todos sus usuarios allí o un sitio de noticias tiene cuentas para todos los redactores. Es posible reutilizar esta información en otro sistema que este alojado en el mismo servidor y usarlo como medio de autenticación.

Se que lo ideal es hacer una autenticación a través de OAuth o un API pero en algunos casos donde es un sistema pequeño, no hay presupuesto ni tiempo para invertir en esta solución es posible hacerlo de la siguiente manera.

Incluir el código base de WordPress

Antes de incluir el código de WordPress para la autenticación, tenemos la posibilidad de descartar la carga de código que no hemos usado, para esto podemos incluir en nuestro archivo PHP las siguientes constantes. Esto lo podemos escribir en en el archivo principal de Yii2, ubicado en /web/index.php antes de iniciar la aplicación.

define( 'WP_USE_THEMES', false);
define( 'COOKIE_DOMAIN', false );
define( 'DISABLE_WP_CRON', true );

Estas 3 constantes desactivan: la carga de temas, limitar la cookie al dominio del sitio y desactivar el cron. Este último evita que se tarde mucho tiempo la autenticación al lanzar los eventos pendientes del cron.

Luego simplemente incluimos los archivos wp-load.php y pluggable.php para cargar las funciones de autenticación de WordPress.

$wp_folder = 'RUTA_AL_WORDPRESS';
require(__DIR__ . '/../' . $wp_folder . '/wp-load.php');
require(__DIR__ . '/../' . $wp_folder . '/wp-includes/pluggable.php');

(new yii\web\Application($config))->run();

Modificación de la autenticación

Una vez realizado el paso anterior, procedemos a modificar la autenticación para que en vez de buscar en la base de datos, utilice la información de WordPress. Para ello en el método de findIdentity lo podemos realizar de la siguiente forma

  public static function findIdentity( $id ) {

    $wp_user = get_user_by($wp_attribute, trim($value));

    if ($wp_user) {
      $user                 = new self();
      $user->id             = $wpUser->ID;
      $user->username       = $wpUser->data->user_login;
      $user->niceName       = $wpUser->data->user_nicename;
      $user->displayName    = $wpUser->data->display_name;
      $user->email          = $wpUser->data->user_email;
      $user->dateRegistered = $wpUser->data->user_registered;
      $user->roles          = $wpUser->roles;
      $user->password       = $wpUser->user_pass;

      return $user;
    } else {
      return null;
    }

¡Listo! Ya podrás iniciar sesión en tu aplicación Yii2 utilizando las credenciales de tu instalación de WordPress. Nota como una vez teniendo el objeto de tipo WP_User podemos acceder a toda la información del usuario.

Espero que te guste y te sirva esta información.


La entrada Autenticar en Yii2 usando los usuarios de WordPress se publicó primero en El blog de Skatox.

Leer más

Si te ha pasado como a mi que has vuelto a editar tu WordPress con Visual Composer y todo se ha vuelto una locura, no te preocupes, hay una solución muy sencilla.

Desde la versión 5.0.1 de WordPress, se ha agregado un nuevo editor de texto para todos los usuarios llamado Gutenberg. Para quienes no lo conocen, este nuevo editor permite la edición de contenido por bloques, facilitando una elaboración de contenido estructurado que agiliza la publicación de articulos y páginas con una calidad increible… ¿Pero que pasa con aquellos de nosotros que utilizabamos Visual Composer desde hace mucho tiempo antes de que este nuevo editor existiera?

Si aún deseas utilizar Visual Composer (que mi recomendación es ir migrando progresivamente tu contenido de un editor al otro para utilizar la menor cantidad de plugines necesarios), la forma mas sencilla de volver a tener activo tu editor de VC por encima de Gutenberg es instalando Classic Editor.

La comunidad ha desarrollado este plugin para que puedas hacer uso del editor original, y que tu VC funcione como antes. Luego de instalarlo, verifica en Ajustes -> Escritura -> Editor por Defecto que tengas activa la versión Clasica.

En mi caso, seguiré utilizando VC un tiempo mas, ya que sus galerías y complementos extendidos me brindan mas opciones y libertades de lo que Gutenberg ofrece por ahora.


This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

Leer más

Descubre apps muy auténticas para tu móvil
Descubre aplicaciones muy auténticas para tu móvil

¿No sabes que más descargarte en el móvil, pero querrías darle un valor añadido a tu dispositivo? Con tantas aplicaciones móviles para descargar, puede ser difícil encontrar las más adecuadas para ti. Hay muchas que no te resultarán útiles después de un tiempo o que no satisfarán tus expectativas cuando las hayas descargado. Para evitar esto, primero tienes que saber qué buscas exactamente, qué necesitas. Una vez lo sepas, encuentra las apps que más se adapten a lo que buscas. Pero por si no lo tienes claro o por si necesitas algunas ideas de apps para descargarte, aquí te hablamos de algunas que, al menos, te parecerán muy auténticas.

InkHunter: ¿alguna vez te has preguntado cómo te quedaría un tatuaje determinado o si el tatuaje que tienes en mente para hacerte te quedará bien? Esta app te dará la respuesta. Por supuesto, esta app no es para todos los públicos ya que tiene un público muy limitado: pero para todos aquellos que quieran hacerse un tatuaje, esta app es perfecta. Te permite diseñar y probar cómo va a quedarte un tatuaje en concreto antes de que te lo hagas gracias a la realidad aumentada. InkHunter te ayudará a ver cómo quedará ese tatuaje: puedes utilizar los gráficos que la app tiene o subir el que tú quieras según tus preferencias de tatuaje. Es muy fácil, solo tienes que poner el tatuaje que te gustaría hacerte e indicar con la cámara dónde te gustaría llevarlo. Si lo necesitas, podrás ajustar el tamaño y el color, para que la representación sea lo más real posible.

Apps de criptomonedas: las criptomonedas han estado de moda durante estos últimos años. Estas monedas virtuales, y descentralizadas de países, organismo y gobiernos, han llegado para revolucionar el mundo y la forma en la que pagamos. Muchas empresas se han animado a incorporar las cripto como forma de pago, aunque a estas divisas aún les queda un gran camino por recorrer. Hay apps que están creadas para ayudarte con la minería de las cripto o para darte toda la información que necesitas sobre estas monedas: su precio, su valor, las último cripto que han aparecido en el mercado y mucho más. Otra sugerencia es una app para invertir en criptomonedas, al fin y al cabo, muchos inversores han apostado por ellas y han obtenido grandes ganancias. Eso sí, si vas a invertir con una aplicación, asegúrate de que es una app regulada y que te ofrece seguridad.

¿Necesitas más apps auténticas para tu móvil? Si estas no te convencen, hay muchas más, como apps para relajarse o apps para practicar idiomas con gente de todo el mundo. Para conseguir apps novedosas que se adapten a ti, la clave está es saber qué buscas y en leer las experiencias de otros usuarios sobre las apps que te interesan. Si los comentarios son buenos y se ajustan a tus necesidades, ¡seguro que les sacas el máximo partido con tu móvil desde y donde quieras!

La entrada Algunas apps muy auténticas para tu móvil se publicó primero en El blog de Skatox.

Leer más

Los que me leen desde hace años, habrán notado que suelo cambiar el diseño y tema de mi bitácora (blog) cada 3 años aproximadamente. La última vez que lo hice fue en el 2014. En ese entonces modifiqué un tema existente y lo adapté al diseño que tenía en mente. Pero con el paso del tiempo tuve problemas para mantenerlo, debía estar pendiente de nuevas tendencias para agregarlo y al no hacer un tema hijo, perdía las actualizaciones originales del tema.

Skatux: el pinguino de mi blog
Skatux, el logo de mi web ha vuelto al encabezado e icono del sitio

Mejoras del tema y de rendimiento

Lo primero que hice fue descargar la última versión del tema original. Hice un diff para ver las diferencias y así solo incluir las modificaciones requeridas. Me llamó ver como cosas que hacía anteriormente con modificaciones de código ahora las podía hacer con CSS. También ahora he podido migrar partes del diseño a flexbox en vez de usar floats y clears para alinear elementos.

También he incluido mejoras en el rendimiento como eliminar la carga de archivos de CSS y JS que no necesito. Agregué en el HTML la precarga de dominios para la publicidad de Google Adsense y otros elementos de terceros.

Con la ayuda de GTMetrix pude descubrir las fallas de mi sitio web. Posteriormente empecé a aplicar cada consejo para aumentar el rendimiento del sitio. No pude llegar hasta el puntaje máximo porque el problema es con la configuración de elementos de terceros como el botón de seguir de Twitter, publicidad de Adsense, entre otros. No se tiene acceso a esos elementos y son requeridos por el sitio. Aunque sé que llegué al puntaje máximo sobre las cosas que poseo control.

Mejoras de accesibilidad

Siempre he usado el color naranja como el distintivo de mi blog. Pero al aplicar las pruebas de accesibilidad de Lighthouse descubrí que los tonos naranjas no pueden ir sobre blanco. Por lo tanto tuve que buscar el color mas próximo para así tener mi sitio accesible a todo tipo de personas. También agregué elementos requeridos a algunas imágenes o mejoras del código para facilitar la lectura del sitio en dispositivos para personas con discapacidad.

También tuve que acomodar el tamaño de algunas fuentes y separar elementos para mejorar la visualización. Eso si, sin afectar el diseño del sitio.

La experiencia de actualizar mi blog

Mejorar el trabajo que realicé hace 5 años fue interesante. Me da pena ver como hacía algunas cosas. Pero comprobé como he mejorado mis conocimientos en WordPress y desarrollo web general. También es interesante conseguirse con código o archivos obsoletos. Encontré 2 plugines para vender publicidad, cuyas empresas ya no existen y por lo tanto eliminé.

Vale la pena cada cierto tiempo realizar esta tarea para modernizar las tecnologías del blog. Comprobar si has mejorado o aprendido nuevas cosas y ganar nuevos conocimientos para aplicarlos en trabajos

Espero que noten las mejoras en la carga del sitio. Si encuentran algún problema en bug, no duden en reportarlo para solucionarlo y mejorar la calidad del sitio.

Gracias por leer este artículo 🙂

La entrada Experiencia al actualizar el tema de mi blog se publicó primero en El blog de Skatox.

Leer más