Optimizando Wordpress al maximo - Optimización de Wordpress avanzado

Blog sobre Optimizacion Avanzado y Optimización de Wordpress avanzado en Argentina

Las opciones de WordPress WordPress API proporcionan una serie de herramientas para cargar fácilmente o guardar datos. Son útiles para el manejo de pequeñas piezas de información, ya que otros mecanismos que ofrece WordPress (como postes o taxonomías) son demasiado complejos.

Por ejemplo, si queremos almacenar una clave de autenticación o el color de fondo de nuestro sitio en la cabecera, las opciones son lo que estamos buscando.

WordPress no sólo nos da las funciones para su manejo pero también nos permite hacerlo de la manera más eficiente.

Algunas de las opciones son incluso cargar directamente cuando el sistema empieza proporcionando así un acceso más rápido (al crear una nueva opción, debemos considerar si queremos autoload o no).

Considera, por ejemplo, un sitio en el que tenemos un carrusel mostrando noticias especificado en el back-end. Nuestro primer instinto sería usar una meta clave como sigue:

// functions.phpadd_action( 'save_post', function ( $post_id ) { // For simplicity, we do not include all the required validation before saving // the meta key: checking nonces, checking post type and status, checking // it is not a revision or an autosaving, etc. update_post_meta( $post_id, 'is_breaking_news', ! empty ( $_POST['is_breaking_news'] ) );
} ); // front-page.php$query = new WP_Query( array( 'posts_per_page' => 1, 'meta_key' => 'is_breaking_news' ));$breaking_news = $query->posts[0] ?: NULL;

 

Como puedes ver, este método es muy sencillo pero no es óptimo. Se realizará una consulta a la base de datos tratando de encontrar un post con una determinada tecla meta. Podríamos utilizar una opción para obtener un resultado similar:

// functions.phpadd_action( 'save_post', function ( $post_id ) { // Same comment for post validation if ( ! empty ( $_POST['is_breaking_news'] ) ) update_option( 'breaking_news_id', $post_id );} ); // front-page.phpif ( $breaking_news_id = get_option( 'breaking_news_id' ) ) $breaking_news = get_post( $breaking_news_id );else $breaking_news = NULL;

La funcionalidad varía ligeramente de un ejemplo a otro.

En la primera parte del código, siempre vamos a obtener las últimas noticias, en términos de la fecha de publicación del post.

En la segunda, cada vez que un nuevo post se establece como noticia de última hora, se sobrescribirá sobre la noticia anterior.

Pero debido a que probablemente queramos una noticia de último momento por vez, esto no será problema.

Y al final hemos cambiado una pesada consulta de base de datos (utilizando ‘WP_QUERY’ con meta keys) en una consulta simple y directa (la llamada ‘obtén_post()’), que es un enfoque mejor y más eficiente.

También podríamos hacer un pequeño cambio y usar los transitorios en lugar de las opciones.

Los transitorios funcionan de modo similar pero nos permiten especificar un tiempo de caducidad.

Por ejemplo, en el caso de las noticias que se adaptan a la perfección, porque no queremos un antiguo post como noticia de última hora y si dejamos la tarea de cambiar o eliminar esa noticia al administrador, [él] podría olvidarse de hacerlo. Así, con dos simples cambios, podemos añadir una fecha de caducidad:

// functions.phpadd_action( 'save_post', function ( $post_id ) { // Same comment for post validation // Let's say we want that breaking news for one hour // (3600 = # of seconds in an hour). if ( ! empty ( $_POST['is_breaking_news'] ) ) set_transient( 'breaking_news_id', $post_id, 3600 );} ); // front-page.phpif ( $breaking_news_id = get_transient( 'breaking_news_id' ) ) $breaking_news = get_post( $breaking_news_id );else $breaking_news = NULL;

Activar Un Caché Persistente

WordPress nativamente tiene un mecanismo de almacenamiento en caché objeto.

Las opciones, por ejemplo, se almacenan en la memoria caché mediante ese mecanismo.

Pero, por defecto, el caché no es persistente, es decir que sólo vive para la duración de una única solicitud. Todos los datos se guardan en la memoria caché, para que el acceso sea más rápido, pero sólo está disponible durante esa solicitud.

El caché persistente de apoyo requiere la instalación de un plugin de caché persistente.

Algunos plugins de caché de página completa vienen con un plugin de caché persistente incluido (por ejemplo el W3 Total Cache), pero otros no, y tenemos que instalarlo por separado.

Dependerá de la arquitectura de nuestra plataforma si vamos a usar archivos tal como el Memcache o algún otro mecanismo para almacenar datos en caché, debemos aprovechar esta característica sorprendente.

Podrías preguntarte: “Si esto es una gran característica de WordPress, ¿por qué no se habilita por defecto?”

La razón principal es que, dependiendo de la arquitectura de nuestra plataforma, algunas técnicas de caché funcionarán y otras no.

Si queremos acoger en nuestro sitio un servidor distribuido, por ejemplo, debemos usar un sistema de caché externo (como un servidor Memcached), pero si nuestro sitio web reside en un único servidor, podríamos ahorrar dinero y simplemente usar el sistema de archivos de caché.

Una cosa que debemos tener en cuenta es la caducidad de la caché. Esta es la trampa más común de trabajar con caché persistente.

Si no abordamos este tema correctamente, nuestros usuarios se quejarán de que no podrán ver los cambios que han hecho o que sus cambios se tardaron demasiado en aplicar.

A veces nos vamos a encontrar haciendo equilibrio entre rendimiento y dinamismo, pero incluso con estos obstáculos, el almacenamiento en caché persistente es algo que virtualmente cada instalación de WordPress debe aprovechar.

AJAXing La Manera Más Rápida

Si necesitamos comunicar a través de AJAX con nuestro sitio web, WordPress ofrece cierta abstracción a la hora de tramitar la solicitud en el servidor.

Aunque estas técnicas puedan utilizarse con la programación de herramientas back-end o envíos de formularios desde el front-end, estas deben evitarse si no son estrictamente necesarias.

La razón de esto es que para poder utilizar esos mecanismos, estamos obligados a hacer una petición post a algún archivo ubicado dentro de la carpeta “wp-admin”. La mayoría (si no todos) de plugins de Wordpress de caché de página completa ni la caché de peticiones post ni llamadas al administrador de archivos.

Por ejemplo, si queremos más puestos de carga dinámica cuando el usuario se desplaza a nuestra homepage, sería mejor llamar directamente a alguna otra página de front-end, que recibirá los beneficios de ser almacenado en caché.

Entonces podríamos analizar los resultados a través de JavaScript en el navegador.

Sí, estamos enviando más datos de los que necesitamos, pero estamos ganando en términos de velocidad de procesamiento y el tiempo de respuesta.

Visitar articulo completo sobre Optimización de Wordpress avanzado

Comparte tu opinion o comenta

Cuenta tu opinion o amplia el contenido del articulo