Desarrollo web y Marketing Digital

Artículos
Inicio

Estructura básica de un plugin de Wordpress

Definición de plugin de WordPress y funcionalidades

-Un plugin de WP consiste en una serie de elementos de código php para variar el funcionamiento original del gestor de contenidos, mediante la combinación de php,html,css y javascript. Mediante estos plugins se puede ampliar o limitar el funcionamiento tanto del backend como del frontend, obteniendo el mayor grado de personalización posible para el usuario final.

La estructura básica de un plugin se puede componer de un simple archivo css y un archivo php en el que habrá que poner la siguiente cabecera para que nuestro sistema lo detecte. Nuestro Plugin deberá situarse en la siguiente trayectoria /wp-content/plugins/
/**
* Plugin Name: Ejemplo1
* Plugin URI: http://www.url.com
* Description: Ejemplo1.
* Version: 1.0.0
* Author: Autor 1
* Author URI: http://www.url.com
*/
/*

-Con esto solamente ya tendriamos nuestro plugin sin ninguna funcionalidad. Para obtener el comportamiento deseado es necesario añadirles acciones(hooks) y filtros(filters).

HOOKS

-Los elemento que forman parte de este tipo de funciones llamadas hooks se pueden usar para nuestros temas ó plugins, con el fin de crear funciones propias, eliminar funciones previas y dictar en que momento se llaman a las acciones que haya programadas, como cambios en la base de datos, guardar una entrada entre otros muchos.

El formato del hook es el siguiente:
add_action( $hook, $function_to_add, $priority, $accepted_args )
$hook: punto de ejecución dónde ejecutar la función.
$function_to_add: Función que queremos añadir.
$priority: Número opcional que define la prioridad.
$accepted_args:Opcional total argumentos. Valor por defecto 1.

Ejemplos de hooks Acción personalizada
function accion1()
{echo "accion1";do_action("llamadaacion1");}

/*Llamamos a una accion personalizada y luego a la correspondiente función*/
add_action('llamadaacion1','accion1');
Acción predeterminada
Accion predeterminada
function funcion1()
{$valueadmininit='
Esto es el valor admin init en la administración
';} add_action('admin_init','funcion1');

Hay muchas acciones para wordpress por ejemplo en la última acción predeterminada hemos indicado que al cargarse la página se llame a la función funcion1. A continuación podemos observar en la documentación de wordpress el conjunto de hooks existentes para programar las tareas.

FILTROS

Los filtros(filters) son similares al comportamiento de los hooks con la diferencia de que reciben y devuelven un valor en la función.

add_filter($tag, $function_to_add, $priority, $accepted_args )
$tag: nombre del filtro.
$function_to_add: Función a la que llama una vez que se ejecuta el filtro.
$priority:Entero opcional para definir la prioridad. Valor por defecto 10.
$accepted_args: Entero opcional con la cantidad de argumentos de la función.
Ejemplo de funcion usando filtro
function nuevo_titulo($title) {
    if(!in_the_loop()){
        
        return $title;
    }
    // Títulos del post en el loop
    $title = "Blog Lph: ". $title;
	echo $title;echo "
"; return $title; } add_filter('the_title', 'nuevo_titulo',10,1);

Finalmente necesitariamos colocar nuestros menús de plugin con sus correspondientes páginas. Para ello hay que usar las acciones de admin menu, add_menu_page,add_submenu_page como en el ejemplo que se puede ver a continuación. La acción admin_menu se ejecuta al cargarse en el menú en el administrador de WP. Al decirle al script que se carge el menú en ese momento mediante la acción, podemos ver un nuevo componente en nuestro menú WP.

Finalmente necesitariamos colocar nuestros menús de plugin con sus correspondientes páginas. Para ello hay que usar las acciones de admin menu, add_menu_page,add_submenu_page como en el ejemplo que se puede ver a continuación. La acción admin_menu se ejecuta al cargarse en el menú en el administrador de WP. Al decirle al script que se carge el menú en ese momento mediante la acción, podemos ver un nuevo componente en nuestro menú WP.

Ejemplo

function crear_administrador_menu()
 {
 add_menu_page ('Plugin menu html', 'Plugin Menu', 'manage_options', 'valorgetmenu1', 'paginamenu', 'dashicons-megaphone' );
 
 add_submenu_page ('valorgetmenu1', 'Plugin Submenu1 HTML', 'Titulo P.Submenu1', 'manage_options', 'valorgetsubmenu1', 'funcion_submenu1');
 
 add_submenu_page ('valorgetmenu1', 'Plugin Submenu2 HTML', 'Titulo P.Submenu2', 'manage_options', 'valorgetsubmenu2', 'funcion_submenu2');
 }
 add_action( 'admin_menu', 'crear_administrador_menu');
 

A continuación dejos dos enlaces al codex de WP donde se puede ver con mayor detalle esta dos funciones.

Para finalizar el artículo voy a describir la funcionalidad de los shortcodes y dejar unos recursos para tener la base para empezar a desarrollar plugins. Son una parte de código que colocado en las páginas o las entradas de WP nos permite ver la funcionalidad realizad en la función.

Para finalizar el artículo voy a describir la funcionalidad de los shortcodes y dejar unos recursos para tener la base para empezar a desarrollar plugins. Son una parte de código que colocado en las páginas o las entradas de WP nos permite ver la funcionalidad realizad en la función. Formato [codigocorto]

/*codigo corto*/
function funcion_codigocorto()
{echo "codigo corto";
}

/*codigo corto para que al llamar a la funcion salga el contenido de la funcion */
add_shortcode("codigocorto", "funcion_codigocorto");

En el ejemplo el formato para visualizaramos el contenido de la funcion funcion_codigocorto en la página o entrada el contenido sería [codigocorto]. Doy por finalizado el artículo dejando el código base para usarlo como plantilla para desarrollar plugins, junto con par de enlaces para consultar funcionalidades.

Puedes descargar el ejemplo e instalarlo en tu Wordpress mediante el siguiente link y usarlo a modo de plantilla. A partir de aqui todo lo demás es ir insertando funcionalidades.