Estructura del pluguin SOLO con funciones

Como Hacer Pluguin WordPress, WordPress

Hola :-)

en este post pondremos el ejemplo de una estructura de pluguin hecho solo con funciones.

Esta estructura poseerá las siguientes características :

  • Hecha solo con funciones ( sin clases  class  mi _clase{} etc  )
  • Incluye función instalación en WordPress.
  • Incluye función desinstalación en WordPress
  • Incluye opciones de administración.
  • Incluye Shortcode ( codigo corto para ejecutar función principal )
  • Incluye opción de Widget para ejecutar como widget

En este caso por primera vez , se empiezan a utilizar funciones  ( hooks ) propias de WordPress, que se deben conocer antes que son:

  • add_options_page :  Añade el menu de opciones a WordPress de nuestro Pluguin/Widget
  • add_action(‘admin_menu’, ‘inserta_menu_huw’) :  Accción que se ejecuta al acceder a las opciones de wordpress.
  • add_action(‘activate_TU-DIRECTORIO/TU-FICHERO.php’,'instala_huw’) : Añade la función que se ejecutará cuando se active el pluguin/widget ( inicialización ). Puede servir por ejemplo para crear una tabla en la base de datos de wordpress.
  • add_action(‘deactivate_TU-DIRECTORIO/TU-FICHERO.php’, ‘desinstala_huw’) . Añade la función que se ejecutará cuando se desactive el pluguin/widget .
  • register_sidebar_widget(“Widget HazmeUnaWeb”, “principal_widget_huw”) :  Registramos la función a ejecutar como widget.
  • add_action(“plugins_loaded”, “iniciar_widget_huw”):  Solo cuando el pluguin sea leido , activamos el widget !!!
  • add_shortcode(‘hazmeunaweb’, ’shortcode_huw’) :  Añadimos la función a ejecutar cuando se escriba el shortcode en los post . En los post se escribirá :     y se ejecutará esa función.

A continuación viene el código que se explica por si solo. En principio todo esta incluido dentro de un directorio, con un único fichero (wp-content/pluguins/huw_estructura_funciones/huw_estructura_funciones.php )


<?php
 /*
 Plugin Name: huw_estructura_funciones
 Plugin URI: http://www.hazmeunaweb.com
 Description: Pluguin de ejemplo que consta de :    Estructura solo con funciones - Incluye widget - Incluye SortCode - Incluye funci&oacute;n de instalaci&oacute;n - Incluye funcion de desinstalaci&oacute;n - Incluye opciones en el Admin de WordPress
 Version: 0.1
 Author: Manuel Mart&iacute;nez
 Author URI: http://www.hazmeunaweb.com
 */

 /* Función que se ejecutará en wordpress , cuando se haya puesto denro del codigo <?php principal_huw(); ?> */
 function principal_huw(){
 // Tu codigo
 }

 /* Función que se ejecutará en wordpress COMO UN WIDGET  */
 function principal_widget_huw(){
 // Tu codigo PUEDE SER EL MISMO QUE principal_huw()  o  no
 }

 // Funcion que SOLO !!!  se ejecuta al activar por primera vez el pluguin ( hace la instalación inicial )
 function instala_huw(){
 // Tu codigo
 }

 // Función que SOLO !!! se ejecuta al desisnstalar el pluguin ( hace la desinstalación final )
 function desinstala_huw(){
 // Tu codigo
 }

 // Función para poner nuestro saludo personalizado , configurandolo en 'nuestro' panel personalizado del admin de wordpress
 function admin_huw()
 {
 // Tu codigo
 echo utf8_encode( "Aquí esta la zona de administración del Widget HazmeUnaWeb");

 }

 // shortcode del plugin para usar en los post
 // se usa poniendo  en los post
 function shortcode_huw($atts) {
 // el valor devuelto por return se inserta en el post en lugar
 // del shortcode. No se debe usar echo sino return  !!!!!
 return principal_huw();
 }

 /////////////////////////////////////////////////////////////////
 // COMIENZO DE FUNCIONES Y HOOKS PARA QUE WORDPRESS LO INSTALE //
 /////////////////////////////////////////////////////////////////

 // Función para insertar nuestro panel de conficguración del pluguin en wordpress
 function inserta_menu_huw()
 {
 if (function_exists('add_options_page'))
 {
 //add_menu_page
 add_options_page('Estructura HazmeUnaWeb', 'HazmeUnaWeb', 8, basename(__FILE__), 'admin_huw');
 }
 }

 // Condicional para asegurarnos que existe la función
 if (function_exists('add_action'))
 {
 add_action('admin_menu', 'inserta_menu_huw');
 }

 // Le decimos a wordpresss cual es la función  a ejecutar al ACTIVAR el pluguin ( función instalación del pluguin )
 add_action('activate_TU-DIRECTORIO/TU-FICHERO.php','instala_huw');

 // Le decimos a wordpress cual es la función  que debe ejecutar al DESACTIVAR el pluguin ( función desinstalación del pluguin )
 add_action('deactivate_TU-DIRECTORIO/TU-FICHERO.php', 'desinstala_huw');

 // Función para instalar el widget
 function iniciar_widget_huw(){
 register_sidebar_widget("Widget HazmeUnaWeb", "principal_widget_huw");
 }

 // Cuando los pluguins se han leido , entonces instalamos el widget
 // Por esto la activación del widget se hace dentro de la función !!!
 add_action("plugins_loaded", "iniciar_widget_huw");

 // Ponemos el shortcode
 // se usa poniendo  en los post
 add_shortcode('hazmeunaweb', 'shortcode_huw');

?>

¿Por qué no dejas un comentario :) ?

Diseño: HazmeUnaWeb.com