Nuestro Primer Plugin Plugin WordPress

Como Hacer Pluguin WordPress, WordPress

Hola :-D .

Como dice el título veremos como hacer nuestro primer plugin , pluguin : )

Lo que más conocemos, realmente como pluguin de WordPress. Es decir un pluguin dentro del directorio pluguins de wordpress ( wp-content/pluguins/ ).

Haremos exactamente lo mismo que en el anterior POST , pero dentro del directorio pluguins , para activarlo en el menu de WordPress, y con alguna diferencia para seguridad y evitar conflictos de colisión de nombres.

Como va a ser una pluguin simple , podemos hacerlo de dos formas principalmente:

  • La primera en único fichero php . Por ejemplo mi_pluguin.php , dentro del directorio ( wp-content/pluguins/ )
  • La segunda forma ( que es la que haremos ) , consiste en crear dentro del directorio plugins , otro directorio que se llame  mi_pluguin ( wp-content/pluguins/huw_pluguin/ ) . Esto nos servirá para :
    • Que dentro de ese directorio, podamos poner todo lo que queramos en función de lo complicado que sea ese pluguin de WordPress. Es decir dentro de ese diirectorio podríamos pones los típicos directorios que hay en toda web como:
      • wp-content/pluguins/huw_pluguin/css/    : Directorio para guardar el estilo del pluguin
      • wp-content/pluguins/huw_pluguin/js/       : Directorio para guardar el javascript del pluguin
      • wp-content/pluguins/huw_pluguin/img/   : Directorio para guardar las imagenes del pluguin
      • wp-content/pluguins/huw_pluguin/etc/
    • Además nos será más fácil,  eliminarlo después, si queremos.
    • Tendremos una estructura más ordenada para evitar conflictos, de nombres.

Al pluguin además de la “programación normal” se debe añadir el título y otros detalles como cabecera.

A continuació se pone el pluguin completo y se explicará algún detalle.

/*
Plugin Name: huw_pluguin
Plugin URI: http://www.hazmeunaweb.com/
Version: v1.00
Author: <a href="http://www.hazmeunaweb.com/">HazmeUnaWeb.com</a>
Description: Un ejemplo de plugin para WordPress , con varias estructuras juntas

Copyright 2009  HazmeUnaWeb.com  (email : frelance@hazmeunaweb.com

 El tipo de licencia que se quiera poner
 por ejemplo :

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

*/

 // Función simple definida dentro del fichero huw_pluguin.php
 function hola_huw() {
    return "Hola  , ";
 }

 // Comprobamos que la clase no existe antes de crearla para evitar problemas
 if (!class_exists("HazmeUnaWeb_pluguin_compatible")) {
    class HazmeUnaWeb_pluguin_compatible {
       // declaración y definición de variable ( compatibilidad PHP4 )
       var $texto = "Bienvenido";

       function HazmeUnaWeb_pluguin_compatible() { //constructor con compatibilidad PHP4, PHP5
           $this->texto = $this->texto." a ";
       }

    }    // final de la defición de la clase
 }

 // nos aseguramos de que existe ante de instanciarla y llamar a su constructor
 if (class_exists("HazmeUnaWeb_pluguin_compatible")) {
     $nueva_instancia_compatible = new HazmeUnaWeb_pluguin_compatible();
 }

 // Comprobamos que la clase no existe antes de crearla para evitar problemas
 if (!class_exists("HazmeUnaWeb_pluguin_php5")) {
    class HazmeUnaWeb_pluguin_php5 {
        // declaración y definición de variable
        public $texto_php5 = "Hazme";

        function __construct() { //constructor SOLO  PHP5
           $this->texto_php5 = $this->texto_php5."UnaWeb.com";
        }
    }    // final de la defición de la clase
 }

 // nos aseguramos de que eiste ante de instanciarla y llamar a su constructor
 if (class_exists("HazmeUnaWeb_pluguin_php5")) {
     $nueva_instancia_php5 = new HazmeUnaWeb_pluguin_php5();
 }

Las únicas diferencias con respecto , al previo pluguin hecho con el fichero functions.php son:

  • Una cabecera donde se explican los detalles del pluguin y se pone un copyright si se quiere
  • la comprobación de la existencia de la clase antes de instanciarla
  • Para que funcione el pluguin,  el usuario debe activarlo en la sección pluguins

Después de crear el directorio y el fichro del pluguin , al usuario le aparecerá esta imagen:

ejemplo como se verá la imagen en el admin WordPress

Solo se debe pulsar en ACTIVAR para que se pueda utlizar el pluguin y listo :)

Para que se vea su efecto, hemos puesto lo siguiente en single.php


// Ejemplo de pluguin con el fichero huw_pluguin.php
 $titulo_post = the_title('','',FALSE);
 // Si es el post donde queremos poner el pluguin
 if ( $titulo_post == 'Nuestro Primer Plugin Plugin WordPress' )
 {
echo "<p style='color:#ff0000;'>";
echo     "<strong>";
echo         hola_huw();                            // llamada a funcion simple
echo         $nueva_instancia_compatible->texto;    // llamada a clase compatible
echo         $nueva_instancia_php5->texto_php5;    // llamada a clase php5
echo     "</strong>";
echo "</p>";

 }

Que es lo mismo que habia en el anterior POST, pero cambiando los nombres de las clases para evitar conflictos de nombres.

Hola , Bienvenido a HazmeUnaWeb.com

¿Por qué no dejas un comentario :) ?

Diseño: HazmeUnaWeb.com