7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. WordPress

Su primer complemento de WordPress: Optimización simple

Scroll to top
Read Time: 12 mins

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

WordPress es la plataforma de blogs más grande disponible hoy en Internet; y con el lanzamiento oficial de la versión tres a la vuelta de la esquina, solo se hará más grande. Como tal, a lo largo de los próximos tuts autónomos, vamos a aprender los pormenores del desarrollo de complementos de WordPress, comenzando con la creación de nuestro primer plugin simple, "Optimización simple".


Paso 0: antes de comenzar

Este tutorial supondrá que tienes al menos la comprensión de un principiante de PHP y la sintaxis de WordPress. Aunque cubriremos todo, algunos conocimientos previos te ayudarán a comprender los conceptos mucho más fácilmente. También supondré que tienes una configuración de blog de WP y listo para funcionar.


Paso 1: Lo que hace nuestro complemento

El primer paso, al escribir un plugin de WP, es determinar todo lo que desea que haga. Dado que este es nuestro primer complemento, no haremos nada demasiado drástico. Vamos a crear algo que acelerará nuestro blog; nuestras páginas se procesarán más rápido, y también haremos un poco de SEO para mejorar nuestro rango de búsqueda y capacidad de búsqueda.

"¡Siempre crea una lista de lo que quieres que tu plugin realmente haga antes de escribir cualquier código!"

Eliminar metaetiquetas inútiles:

  • "rsd_link" - Enlace de descubrimiento realmente simple
  • "wlwmanifest_link" - Enlace de Windows Live Writer
  • "wp_generator" - número de versión de WordPress

Eliminar filtros innecesarios:

  • "wptexturize" - Citas directas
  • "wp_filter_kses" - HTML en los perfiles de usuario

SEO:

  • Insertar etiquetas de publicación en <head> como palabras clave
  • Inserte el extracto del mensaje en <head> como descripción

Paso 2: Colocando la base

Para comenzar, vaya a su carpeta de complementos ("/wp-content/plugins/"), y cree una nueva carpeta. Llamaremos al nuestro "simple-optimización". A continuación, dentro de esta carpeta, vamos a necesitar crear dos archivos. El primero será el archivo de complemento real (llamado "main.php"), y el segundo será el archivo README obligatorio ("readme.txt"). Vamos a dejar el archivo readme.txt vacío por el momento; así que abre main.php en tu editor de texto preferido y copia en el siguiente código

Este texto es el mínimo necesario para que un complemento aparezca en el directorio de plugins de WordPress. Obviamente tendrá que llenar cada parte como mejor le parezca.


Paso 3: Agregar funciones

Las dos primeras características que vamos a implementar también serán las más simples. De forma predeterminada, WordPress agrega varias metaetiquetas a la sección <head>  de su blog, pero el hecho simple es que estas metaetiquetas no tienen absolutamente ningún valor; así que simplemente vamos a detener que WordPress los agregue. Cada vez que WordPress realiza una acción, se llama filter o action, y podemos eliminar o manipular estos filtros y acciones (aquí puede encontrar una lista de todos los filtros y todas las acciones aquí). En este caso, queremos eliminar las diversas acciones que agregan esas meta-etiquetas.

Para hacerlo, usamos una función muy simple llamada "remove_action('action','function')". Esta función eliminará la función declarada en el segundo parámetro de la acción, el primer parámetro.

El mismo principio exacto se aplica a los dos filtros que vamos a eliminar:


Paso 4: SEO

Ahora que hemos eliminado ese infierno, asegurémonos de que nuestro blog tenga un SEO básico; es decir, asegurémonos de tener palabras clave por página, que corresponden a esa página y cambiar la descripción para que coincida más con el artículo. Para nuestras palabras clave, vamos a tomar las etiquetas de la página / publicación actual. Esto se hace super simple por la función "wp_get_post_tags()". wp_get_post_tags devolverá una matriz de etiquetas de la publicación actual. A continuación, podemos formatear fácilmente esta matriz en una cadena y colocarla dentro de nuestro encabezado (dentro de la función "wp_head()", que cada tema debería tener ya) al adjuntar nuestra función a la acción wp_head.

Comencemos creando una nueva función, tags_to_keywords(), y, dentro de esta función, escribiremos una declaración if simple, que verifica si la página actual es una sola publicación o página (usando las funciones de WP: is_single() y is_page()). A continuación, crearemos una variable dentro de esta declaración if, denominada $tags, y estableceremos su contenido en la función wp_get_post_tags(); sin embargo, para que esta función funcione, necesitamos pasar un parámetro de "post_id". La manera más sencilla de obtener eso es globalizando la variable $post de WP que contiene la identificación de la publicación ($post->ID, $post es un objeto y por eso estamos llamando a sus valores de esa manera).

A continuación, usaremos un foreach para filtrar los datos de $ etiquetas y crear una nueva matriz con solo la información que queremos ($tag_array). A continuación, implosionaremos la matriz en una cadena y separaremos cada elemento de la matriz con una coma y espacio ($tag_string). Luego, crearemos otra instrucción if que compruebe si $tag_string tiene un valor (es decir, si tenemos etiquetas para la publicación) y, si lo hace, repita el último HTML.

Lo último que tenemos que hacer ahora es adjuntar nuestra nueva función con la acción wp_head. Para hacer esto, vamos a llamar a add_action('action','function'), y pasarle los parámetros "wp_head" y "tags_to_keywords" (en ese orden).

Para aumentar aún más nuestro SEO, vamos a agregar nuestros metadatos de descripción al encabezado también, utilizando el mismo método que las palabras clave. Una vez que tengamos la declaración if reescrita, vamos a crear una nueva variable $all_post_content y llenarla usando la función WP wp_get_single_post() (y pasar el parámetro de $post->ID). Esto nos dará un objeto lleno de todos los datos sobre nuestra publicación. Con esta variable, podemos crear una descripción usando el contenido real de la publicación, pero vamos a acortarla a un centenar de caracteres utilizando la función substr($excerpt). Y luego, haremos eco del HTML con el extracto escrito. (Opcionalmente, también puede agregar una declaración else y hacer eco de la descripción de su blog usando la función get_bloginfo('description').)


Paso 5: Optimizar la base de datos

La característica final de nuestro complemento es optimizar nuestras tablas de base de datos al eliminar la sobrecarga (datos inútiles / en exceso en una tabla SQL creada al manipular la base de datos). Para comenzar, crearemos una nueva función (optimize_database), y dentro de ella, llamaremos a la variable global WPDB ($wpdb). De esta forma, podemos interactuar con la base de datos, sin tener que volver a ingresar nuestros detalles de autenticación. $wpdb tiene varios métodos que puede usar para interactuar y recuperar información de la base de datos (lista completa aquí), pero solo vamos a usar uno, get_results. El uso de get_results con los parámetros de "SHOW TABLES" y "ARRAY_A" nos devolverá una matriz asociativa de todos los nombres de tabla en la base de datos. En ese punto, podemos usar un foreach para recorrer cada uno de los valores de la matriz (usando array_values ​​para obtener el nombre de la tabla, debido a la forma en que la función está en capas) y usar otro método $wpdb, query para ejecutar el comando optimize ("OPTIMIZE TABLE _____").

Si bien esta función funciona, en realidad nunca se ejecutará porque WordPress no tiene forma de saber cómo ejecutarla. Afortunadamente, WordPress tiene una función llamada cron, que programa las funciones para que se ejecuten a intervalos específicos (diario, semanal, etc.); esto es perfecto para nosotros, ya que deseamos optimizar con frecuencia nuestra base de datos. Para usar Cron, vamos a crear una nueva función (simple_optimization_cron_on) y llenarla con otra función llamada a wp_schedule_event(). Para funcionar, wp_schedule_event necesita tres cosas: un tiempo para ejecutar, un intervalo entre cada ejecución y una función para llamar; así que le pasaremos los parámetros: 'time ()' (supondremos que cada vez que se crea el evento cron es un buen momento para llamar a la función), 'daily', 'optimize_database' en ese orden.

Genial, ahora tenemos nuestra función optimize_database añadida a la lista cron de WP, o lo haríamos si tuviéramos que llamar a la función simple_optimization_cron_on. Es realmente inseguro y es una mala práctica llamar a sus propias funciones de adición de eventos, porque a través de un sistema arbitrario de eventos, podría causar que la función sea llamada varias veces. WordPress tiene un conjunto de ganchos específicos para complementos para resolver este problema: register_activation_hook y register_deactivation_hook. Estas funciones se invocan cuando un complemento está activado (activado) y apagado (desactivado). De esta forma, nuestra función cron solo se puede agregar una vez. Ahora, tenemos la capacidad de eliminar el evento cron si el complemento deja de usarse. Para trabajar, estas funciones necesitan dos elementos de información: la url del archivo que tiene las funciones de activación y desactivación (el 99% de las veces "__FILE__" funcionará perfectamente aquí), y el nombre de la función de activación y desactivación. También crearemos una nueva función (simple_optimization_cron_off) y la completaremos con una llamada a otra función (wp_clear_scheduled_hook('optimize_database')) para eliminar nuestro evento cron.


Paso 6: Completar el archivo Léame

Lo último que tenemos que hacer para nuestro nuevo complemento es completar el archivo readme.txt. El archivo de WordPress Plugin utiliza el archivo readme.txt para mostrar toda la información que le proporciona sobre su complemento. La mejor manera de aprender cómo escribir un archivo efectivo readme.txt es descargar el valor predeterminado de WP, y modificarlo en consecuencia para adaptarse a su complemento. Como la nuestra era tan simplista, esto es con lo que terminé personalmente:


¡Eso es!

Acaba de escribir con éxito su primer plugin de WordPress, que está funcionando y listo para el Directorio de complementos de WP. En el camino, aprendió sobre filtros y acciones, utilizando objetos globales de WP, mucho sobre la nomenclatura de WordPress, cómo interactuar con la base de datos, eventos cron y ganchos de activación / desactivación. Si tiene alguna pregunta, por favor deje un comentario y responderé tan pronto como pueda.

El código final:

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.