Como hacer un plugin para wordpress: Instalación y desisnstalación

PHP, Tutoriales, Wordpress

Tenía pensado hacer un plugin para una web que consiste en poder dar de alta una serie de frases celebres, para luego mostrarlas en un plugin o quizas luego conectarlo con Facebook así que he decidido a escribirlo aquí a medida que lo voy haciendo a ver que sale.

Lo primero que vamos a hacer será crear una nueva carpeta en /wp-contents/plugins/ con el nombre de nuestro plugin en mi caso mdua-frases, para evitar que pueda haber otro plugin con el mismo nombre o funciones suelo anteponer las siglas de la web. Dentro de la carpeta crearemos también un archivo PHP con el mismo nombre que la carpeta en este caso mdua-frases.php.

Dentro del archivo añadimos la información que se mostrará en el panel de control.

Datos del plugin

Y si pulsamos ya tendríamos nuestro plugin funcionando.. aunque sin hacer nada :D

Instalación y desinstalación del plugin

Pensemos que vamos a hacer…. para almacenar las frases vamos a necesitar una tabla donde guardarlas por lo que usaremos la función register_activation_hook para ejecutar una función que cree la tabla cuando activemos el plugin y ya depaso creamos otra función que elimine la tabla si desactivamos el plugin y la cargaremos con la función register_deactivation_hook pero esta función la dejaré comentada pues si añadimos muchas frases no nos interesa que un dia desactivemos sin querer y perdemos todo.

Podemos ver como las dos últimas lineas sirven para decirle a wordpress que funciones debe ejecutar al activar y desactivar el plugin.

Con global $wpdb; podemos usar la clase global de wordpress donde manejar y realizar consultas de la base de datos.

10 Responses to “Como hacer un plugin para wordpress: Instalación y desisnstalación”

  1. Juan

    podrias poner el codigo php con algun plugin para que se vea bien?, o el archivo del plugin terminado para poder descargarlo?

    gracias!

    Responder
  2. Aprendiz

    Es cierto, disculpa es que tuve problemas con el plugin de colorear código y claro al cambiarlo pues todo lo anterior ya no funciona, ahora lo intento solucionar :)

    Responder
  3. Miguel

    Hola…

    no puedo agregar las frases, me muestra el siguiente mensaje: “Base de datos no encontrada ” cuando presiono el botón añadir…

    Como podría solucionarlo?

    Responder
    • Aprendiz

      Buah, así sin ver el código complicado… decirte el porqué, cuando usas $wpdb con antes global $wpdb; ya estás cogiendo la propia base de datos de wordpress.

      En estos casos para depurar el código si no usas en local un debug sería que pusieras entre tus funciones un print_r o un var_dump con las variables que quieras ver su contenido, por ejemplo podrías ver que contiene wpdb ….

    • Aprendiz

      Estaba revisando el código … y a ver, ese error te da cuando no encuntra la tabla. Así que realmente no es que no encuentra la base de datos sino que no encuentra la tabla, por lo tanto comprueba que has puesto siempre el mismo nombre a la tabla y que has puesto el prefijo antes

  4. Luis garcia

    Hola te felicito por tu post, quisiera saber si puedes ayudarme, me he estado guiando con tu post y no se si puedes revisar cual es mi error porque no crea la base de datos
    function baseDiarioAlimeto_install() {
    global $wpdb;

    $table_name = $wpdb->prefix . “diarioAlimento”;

    $sql_meta = “CREATE TABLE ” . $table_name .” (
    ID_registro bigint (20) NOT NULL AUTO_INCREMET,
    id_usuario bigint (20) NOT NULL,
    fecha datetime DEFAULT ‘0000-00-00 0000:00:00′ NOT NULL,
    desayuno VARCHAR(100) DEFAULT ” NOT NULL,
    snack1 VARCHAR(100) DEFAULT ” NOT NULL,
    almuerzo VARCHAR(100) DEFAULT ” NOT NULL,
    snack2 VARCHAR(100) DEFAULT ” NOT NULL,
    cena VARCHAR(100) DEFAULT ” NOT NULL,
    PRIMARY KEY (ID_registro)
    );”;

    require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
    dbDelta($sql_meta);
    }
    register_activation_hook( __FILE__, ‘baseDiarioAlimeto_install’);

    Responder
  5. Aprendiz

    Pff y te da algún error? es que así a pelo sin debugear… a demás hace tiempo que no hago plugins :S No me da a vida pa to :S

    Yo lo que hago es con xdebug ir linea por linea para ver donde me puede salir el error. Y sino paso por paso crear la tabla solo con un campo y ver si lo hace bien, si lo hace entonces el fallo debería estar en alguna configuración de la base de datos.

    De todas formas veo que tu usas dbDelta que en i caso no lo usé así que tampoco se si hace falta nada especial. Mirate la documentación si no… http://codex.wordpress.org/Creating_Tables_with_Plugins

    Responder
  6. Abel

    Hola amigo, tienes un error en el SQL, pusiste como PRIMARY KEY idCita y esa columna no la creaste, imagino que quisiste decir idFrase como pusiste al principio. Si alguien está siguiendo este tutorial y no le crea la tabla esa es la razón.

    Responder

Deja un comentario

  • (will not be published)


4 + 8 =