Micaela 2 de Febrero de 2010 a las 08.00
   Imprimir artículo
elWebmaster.com

Tutorial para crear tu propio plugin de Wordpress

wordpress_finalEl Codex de WordPress explica el funcionamiento de los plugins desde una perspectiva de referencia, pero la mejor manera de aprender a desarrollarlos es ver ejemplos de c贸digo real.

Este tutorial es una introducci贸n al desarrollo de un plugin b谩sico que utiliza PHP para guardar y recuperar datos de la base de datos de WordPress para mostrarlos en el sitio.

Crea un archivo PHP

Primero, crea un archivo PHP en una carpeta con un nombre 煤nico, esta carpeta residir谩 en la misma carpeta que los otros plugins, por lo que no puede tener un nombre que se repita. ;)

Este ser谩 el archivo d贸nde se guardar谩 todo nuestro scripting para el plugin.

Funciones para usuarios y administradores

En el archivo PHP, comencemos creando dos funciones:

  1. function miwidget_public($args = false) {
  2. }
  3. function miwidget_admin() {
  4. }

Nuestro widget, a modo de ejemplo, se llama "Mi Widget", que se referenciar谩 como "miwidget_" en el c贸digo.

Estas dos funciones son el esqueleto para el c贸digo PHP que se ejecutar谩 cuando el usuario visita la parte p煤blica de tu sitio WordPress - en cualquier p谩gina que pongas el widget (vamos a llegar a eso en breve), as铆 como la parte de administraci贸n cuando un usuario admin arrastra el widget a un panel lateral (bajo la secci贸n Apariencia » Widgets):

1421

Si茅ntete libre de incluir cualquier c贸digo PHP en ambas funciones - lo que sea que desees ejecutar.

En la funci贸n de administrador, b谩sicamente estar谩s programando la creaci贸n de un formulario HTML para que los usuarios puedan controlar los ajustes relacionados con el widget:

1422

En la imagen de arriba, se les pide a los usuarios informaci贸n pertinente para hacer una llamada API (puedes poner cualquier cosa aqu铆- esto es s贸lo un ejemplo).

Por lo que, para los principiantes, la funci贸n administradora podr铆a lucir as铆:

  1. function miwidget_admin() {
  2.  
  3.   $options_site = get_option("widget_miwidget_site");
  4.  
  5.   ?>
  6.  
  7.         <p>
  8.             Your Software URL:
  9.             <input type="text" name="p_link" id="p_link" value="<?php echo $options_site["p_link"]; ?>" style="width:99%;" />
  10.         </p>
  11.  
  12.         <p>
  13.             Your Software Username:
  14.             <input type="text" name="username" id="username" value="<?php echo $options_site["username"]; ?>" style="width:99%;" />
  15.         </p>
  16.  
  17.         <p>
  18.             Your Software Password:
  19.             <input type="password" name="password" id="password" value="<?php echo $options_site["password"]; ?>" style="width:99%;" />
  20.         </p>
  21.  
  22.   <?php
  23.  
  24. }

Nota, de forma espec铆fica, los atributos value para cada elemento <input>.

Referenciamos la variable $options_site, que se declara antes de que el HTML tenga salida. $options_site llama a una funci贸n WordPress, get_option(), que devuelve valores desde la base de datos.

Si te est谩s preguntando c贸mo los valores llegan a la base de datos en primer lugar, lo hacen llamando a otra funci贸n de WordPress: update_option().

Hech茅mosle un vistazo a la sintaxis que guarda los valores de la base de datos:

  1. update_option("widget_miwidget_site", $options_site);

La funci贸n update_option() acepta dos par谩metros. El primero es el nombre 煤nico que utilizar谩s para referenciar estos valores de base de datos en tus scripts. El segundo es la variable que est谩s guardando en la base de datos. Puedes pasar un array aqu铆 tambi茅n, lo que es 煤til para colecciones de valores relacionados.

Tus valores se guardan en la tabla de base de datos wp_options. Los valores enviados como arrays ser谩n serializados.

1423

Puedes crear tantas opciones distintas como desees, y todas se pueden guardar en la base de datos.

Continuando con la funci贸n administradora, cuando alguien complete los detalles y haga clic en "Guardar", deber铆as llamar a la funci贸n update_option y pasar los valores a esta.

As铆 que, para modificar un poco la funci贸n admin:

  1. function miwidget_admin() {
  2.  
  3.   $options_site = get_option("widget_miwidget_site");
  4.  
  5.   if ($_SERVER["REQUEST_METHOD"] == "POST") {
  6.  
  7.       $options_site = array(
  8.  
  9.           "p_link" => $_POST["p_link"],
  10.           "username" => $_POST["username"],
  11.           "password" => $_POST["password"],
  12.  
  13.       );
  14.  
  15.       update_option("widget_miwidget_site", $options_site);
  16.  
  17.   }
  18.   else {
  19.  
  20.       ?>
  21.  
  22.             <p>
  23.                 Your Software URL:
  24.                 <input type="text" name="p_link" id="p_link" value="<?php echo $options_site["p_link"]; ?>" style="width:99%;" />
  25.             </p>
  26.  
  27.             <p>
  28.                 Your Software Username:
  29.                 <input type="text" name="username" id="username" value="<?php echo $options_site["username"]; ?>" style="width:99%;" />
  30.             </p>
  31.  
  32.             <p>
  33.                 Your Software Password:
  34.                 <input type="password" name="password" id="password" value="<?php echo $options_site["password"]; ?>" style="width:99%;" />
  35.             </p>
  36.  
  37.       <?php
  38.  
  39.   }
  40.  
  41. }

Aqu铆 nos fijamos si el bot贸n "Guardar" fue presionado (if ($_SERVER["REQUEST_METHOD"] == "POST")), 聽y de ser as铆, creamos un array para los valores del formulario y actualizamos la base de datos.

En tu funci贸n public, puedes devolver los valores de la base de datos para que se muestren en el sitio:

  1. function miwidget_public($args = false) {
  2.  
  3.   $options_site = get_option("widget_miwidget_site");
  4.  
  5.   echo $options_site["html"];
  6.  
  7. }

Es as铆 de simple.

Dado que hay un array "html" en $options_site, esto mostrar谩 el contenido "html" en la sidebar en la parte p煤blica de tu sitio WordPress.

Llama al c贸digo necesario para registrar el plugin en WordPress

Hay algunas cosas m谩s que necesitamos hacer antes de que el widget sea reconocido y funcione en el sistema de WordPress.

Al final de tu archivo PHP, incluye el siguiente c贸digo:

  1. function widget_miwidget_init() {
  2.     register_sidebar_widget("Mi Widget", "widget_miwidget_public");
  3.     register_widget_control("Mi Widget", 'widget_miwidget_admin');
  4. }
  5.  
  6. add_action("plugins_loaded", "widget_miwidget_init");

Esto cargar谩 el plugin en la p谩gina de administraci贸n, para que los usuarios puedan activarlo.

隆Y eso son los pasos b谩sicos!

Lean la documentaci贸n oficial de WordPress sobre plugins para m谩s detalles.

Fuente: Pain in the Tech


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (4)

  1. Jorge V谩sconez dice:

    Esta s煤per interesante el post.

    Con esta informaci贸n de soporte, solo queda creatividad de parte nuestra para desarrollar plugins que valgan la pena.

    Ser铆a muy bueno que fuera public谩ndose m谩s informaci贸n de este tipo acerca de Wordpress.

    Saludos.

  2. fabricio dice:

    muy bueno http://www.comunidad.tuspost.com para desarrollar una base para un plugin esta exelente

  3. Nacho martin dice:

    Gracias por la informacion, tenia grandes dudas sobre el manejo de mi pagina web con wordpress.
    OK

  4. angel matias orozco dice:

    Muy interesante ejemplo justo pq ahora estoy por migrar mi sitio a wordpress

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Iniciar sesi贸n