Como crear un plugin de WordPress que modifique el contenido de la página web



Ahora veremos como crear un plugin de WordPress que cambie el contenido de una página web antes de mostrarla al usuario.

Para poder modificar el código HTML generado por WordPress debemos usar un filtro.

Si nunca antes has creado un plugin de WordPress entonces debes leer este articulo antes de continuar: Como crear un plugin de WordPress.

Para este ejemplo vamos a crear un plugin que cambie la etiqueta generator, esa en donde informa que la página web fue generada con WordPress y que además incluye la versión de WordPress que utilizas.

Para hacerlo crea una carpeta en el directorio de plugins de WordPress y en el archivo del plugin agrega este código:

<?php
/*
Plugin Name: Modifica etiqueta generator
Plugin URI: https://www.codigonaranja.com
Description: Modifica etiqueta generator
Version: 1.0
Author: Luis Cruz
Author URI: https://www.codigonaranja.com
License: GPLv2
*/
add_filter( 'the_generator', 'remove_generator', 10, 1 );
function remove_generator ( $html  ) {
  return  preg_replace( '|content=("WordPress.*?")|',
                        'content="Codigo Naranja"', $html );
}

Ahora activa el plugin y si miras el código fuente del sitio web, podrás ver que la etiqueta generator ha sido modificada.

En el artículo anterior vimos el uso de la función add_action, pero ahora usamos la función add_filter para agregar un filtro que modifique el código HTML generado por WordPress y otros plugins antes de ser enviado al visitante.

Básicamente la función add_filter necesita el nombre del filtro que deseamos aplicar y el nombre de la función que procesará el filtro. En este caso la función que aplica el filtro se llama remove_generator y recibe como parámetro el código HTML generado por WordPress (el filtro se encarga de mandar el parámetro adecuado).

Una vez la función tiene el código HTML hace uso de la función preg_replace de PHP la cual reemplaza un texto haciendo uso de Expresiones Regulares, si tienes dudas sobre como funcionan las Expresiones Regulares, puedes leer este otro articulo.

El tercer parámetro de add_filter es la prioridad con que se debe ejecutar nuestra función, el valor predeterminado es 10, y entre menor valor, mayor es la prioridad. Esto puede serte útil por que también hay otros plugins que podrían estar inyectando código en el Hook que tú elijas, y quizá tú necesites que tu función se ejecute al inicio o al final de la cola.

El último parámetro de add_filter es para indicar la cantidad de parámetros que la función puede aceptar.

Puedes encontrar una lista de filtros útiles en esta página web.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *