Está en la página 1de 8

Search WordPress.

org

Codex

Codex tools: Log in

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

es:Escribiendo un Plugin
Introduccin
Los Plugin de WordPress permiten, de una forma sencilla, la modificacin,
personalizacin y mejora de bitcoras WordPress. En vez de modificar el ncleo del
programa de WordPress, se puede aadir funcionalidad a ste por medio de los plugin
de WordPress. Esta es una definicin bsica:

Contents
1 Introduccin
1.1 Recursos
2 Creando un Plugin
2.1 Nombres, Archivos y
Ubicaciones

Plugin de WordPress: Un plugin de WordPress es un programa, o un conjunto de una o

2.1.1 Nombre del Plugin

varias funciones, escritas en el lenguaje de script PHP, que aaden un conjunto

2.1.2 Archivos del Plugin

especfico de caractersticas o servicios a una web WordPress, que pueden integrarse

2.1.3 Archivo Readme

perfectamente en la web utilizando puntos de acceso y mtodos provistos por una

2.1.4 Pgina de Inicio

Interfaz de Programacin de Aplicaciones (API) WordPress.

2.2 Cabeceras de Archivo


2.2.1 Informacin Estndar del

Desea que WordPress tenga una funcionalidad nueva o modificada? Lo primero que

Plugin

hay que hacer es buscar en los repositorios de WordPress para saber si alguien ya ha

2.2.2 Licencia

creado el plugin que se ajuste a sus necesidades. Si no es as, este artculo le guiar a
travs del proceso de creacin de su propio plugin WordPress.

2.3 Programando su Plugin


2.3.1 Ganchos de Plugin
Wordpress

Este artculo asume que usted est familiarizado con la funcionalidad bsica de WordPress

2.3.2 Etiquetas de Plantilla

y con la programacin en PHP.

2.3.3 Guardando Informacin


del Plugin en la Base de Datos

Recursos
Para comprender como funcionan los plugin WordPress y como se instalan en
bitcoras WordPress, consulte Plugins.
Hay una lista exhaustiva de artculos y recursos para desarrolladores de plugin,

2.3.4 Mecanismos de las


Opciones de WordPress
2.3.5 Paneles de
Administracin
2.4 Internacionalizando Su Plugin

incluidos artculos externos sobre la escritura de plugin WordPress y artculos en

3 Sugerencias sobre Desarrollo de

tpicos especiales en Recursos de Plugins.

Plugin

Para aprender las bases de la escritura de plugin para WordPress, se puede

4 Recursos Externos

consultar el cdigo de plugin correctamente programados, tales como Hello Dolly


distribuidos con WordPress.

Una vez haya escrito el plugin WordPress, lea Envo y Promocin de Plugin para aprender como distribuirlo y compartirlo con los
dems.

Creando un Plugin
Esta seccin del artculo le conducir a travs de los pasos que usted necesita seguir, y las cosas a considerar, en la creacin de un
plugin para WordPress bien estructurado.

Nombres, Archivos y Ubicaciones


Nombre del Plugin
La primera tarea a la hora de crear un plugin de WordPress es pensar en qu va a hacer el plugin, y crear un (ojal nico) nombre
para l. Compruebe en Plugin y en otros repositorios referidos en el enlace, que el nombre no exista ya; se puede hacer, tambin, una
bsqueda en Google. Muchos desarrolladores eligen nombres que describen, de alguna manera, lo que hace el plugin; por ejemplo,
un plugin que haga algo relacionado con el tiempo, podra llevar la palabra "tiempo" en su nombre. El nombre puede tener varias
palabras.

Archivos del Plugin


El siguiente paso es crear un archivo PHP con un nombre, derivado del nombre que usted ha elegido para el plugin. Por ejemplo, si
su plugin se llamar "funcionalidad maravillosa", usted podra nombrar al archivo PHP funcimara.php. De nuevo, intente elegir un
nombre nico. La gente que utilice su plugin, lo pondr en el directorio de WordPress, en su instalacin wp-content/plugins/, de
forma que no puede haber dos plugin distintos con el mismo nombre de archivo PHP.
Otra opcin es separar el plugin en varios archivos. Su plugin WordPress debe tener al menos un archivo PHP; adems puede
contener archivos JavaScript, archivos CSS, archivos de imagen, archivos de localizacin, etc. Si hay varios archivos, elija un nombre
nico para una carpeta de archivos y para el archivo PHP principal, tales como funcimaray funcimara.phpen este ejemplo,
coloque todos los archivos del plugin en la carpeta y diga a los usuarios que copien toda la carpeta en wp-content/plugins/.
En el resto de este artculo, nos referiremos al archivo PHP principal como "el archivo PHP del Plugin", ya est en wpcontent/plugins/o en un subdirectorio.

Archivo Readme
Si usted desea hospedar su plugin en http://wordpress.org/extend/plugins/, necesita, adems, crear un archivo readme.txten
formato estndar, e incluirlo con su plugin. Consulte http://wordpress.org/extend/plugins/about/readme.txt para obtener una
descripcin del formato de este archivo.

Pgina de Inicio
Es muy til crear una pgina que haga de pgina de inicio del plugin WordPress. Esta pgina podra describir como instalar el plugin,
qu hace, con qu versiones de WordPress es compatible, qu ha cambiado entre sus diferentes versiones, y cmo utilizar el plugin.

Cabeceras de Archivo
Ahora es tiempo ya de poner algo de informacin en el archivo PHP principal del plugin.

Informacin Estndar del Plugin


Las primeras lneas del archivo PHP principal del plugin deben contener la cabecera estndar de informacin del plugin. Esta

cabecera permite a WordPress reconocer que el plugin existe, y ponerlo en la pantalla de gestin para que pueda ser activado,
cargado y ejecutar sus funciones. Sin esta cabecera, su plugin no podr ser activado ni funcionar. Este es el formato de la cabecera:

<?php
/*
Plugin Name: Nombre del plugin
Plugin URI: http://URI_De_La_Pgina_Que_Describe_el_Plugin_y_Actualizaciones
Description: Una breve descripcin del plugin.
Version: El nmero de versin del plugin e.j.: 1.0
Author: Nombre del autor del plugin
Author URI: http://URI_del_Autor_del_Plugin
License: Un nombre de licencia "pegadizo" e.j. GPL2
*/
?>

El mnimo de informacin que WordPress necesita para reconocer su plugin es el nombre del mismo. El resto de la informacin (si
est presente) se utilizar para crear la tabla de plugin en la pantalla de gestin de plugins. El orden de las lneas no es importante.
La lnea de licencia debera ser un identificador comn, corto, para sealar bajo que licencia se distribuye el cdigo y est destinado
a ser una forma sencilla de ser explcito acerca de la licencia del mismo.

Licencia
Se acostumbra a generar la cabecera estndar, con informacin sobre la licencia del plugin. Muchos plugin usan la licencia GPL2,
utilizada por WordPress, o una licencia compatible with the GPL2. Para indicar una licencia GPL2 incluya las siguientes lneas en su
plugin:

<?php
/* Copyright AO NOMBRE_AUTOR_PLUGIN (email: EMAIL DEL AUTOR DEL PLUGIN)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
?>

Programando su Plugin
Ahora es momento de conseguir que el plugin haga algo. Esta seccin contiene ideas generales el desarrollo de plugins, y describe
como llevar a cabo las diversas tareas que su plugin necesitar hacer.

Ganchos de Plugin Wordpress


Muchos plugin de WordPress llevan a cabo sus objetivos conectndose a uno o ms "ganchos" (hooks) de plugin WordPress. La
forma en que funcionan los ganchos de plugin es que en diferentes instantes mientras WordPress est corriendo, WordPress
comprueba si algn plugin ha registrado alguna funcin para ejecutarse en ese preciso instante, y si es as, ejecuta dicha funcin.

Estas funciones modifican el comportamiento del WordPress por defecto.


Por ejemplo, antes de que WordPress aada el ttulo de un post a la salida del navegador, primero chequea si algn plugin ha
registrado una funcin para el gancho "filtro" llamado "the title". Si es as, el texto de ttulo se pasar por turnos a travs de cada
funcin registrada, y el resultado final ser lo que se escriba. As, si su plugin necesita aadir informacin al ttulo, puede registrar
una funcin de filtro "the title".
Otro ejemplo es el gancho "accin" llamado "wp_footer". Justo antes del final de la pgina HTML que WordPress est generando,
comprueba si algn plugin ha registrado funciones para el gancho de accin "wp_footer" y los ejecuta por turno.
Usted puede aprender ms sobre como registrar funciones, tanto para ganchos de filtro como para ganchos de accin, y qu
ganchos de plugin estn disponibles en WordPress, en API Plugin. Si usted encuentra un punto en el cdigo de WordPress donde
desea disponer de una accin o un filtro, pero WordPress no lo tiene, puede sugerir nuevos (las sugerencias, en general, se
atienden.); consulte Informando Errores para saber como.

Etiquetas de Plantilla
Otra forma en la que un plugin puede aadir funcionalidad al WordPress es creando Etiquetas de Plantilla personalizadas. Alguien
que quiera utilizar su plugin puede aadir estas "etiquetas" a su plantilla, en su barra lateral, seccin de contenido del post, o donde
crea adecuado. Por ejemplo, un plugin que aade etiquetas geogrficas a los post, podra definir una funcin para etiqueta de
plantilla llamada geotag_lista_estado()para la barra lateral, que lista todos los cdigos de estado, con los links a las pginas
de archivo de estados que el plugin activa.
Para definir una etiqueta de plantilla personalizada, solo hay que escribir una funcin PHP y documentarla para usuarios del plugin
en la pgina de inicio del plugin y/o en el archivo principal PHP del plugin. Es una buena idea, cuando se documenta la funcin, dar
un ejemplo de lo que hay que aadir exactamente a la plantilla para utilizar la funcin, incluyendo <?phpy ?>.

Guardando Informacin del Plugin en la Base de Datos


Muchos plugin de WordPress necesitan coger informacin de la web del propietario o los usuarios de la bitcora y salvarla entre
sesiones, para usarla en sus funciones de filtro, accin o de plantilla. Esta informacin tiene que salvarse en la base de datos de
WordPress, con el fin de ser persistente entre sesiones. Hay dos mtodos bsicos para guardar informacin en la base de datos
desde el plugin:
1. Utilice el mecanismo de WordPress "option" (descrito ms adelante). Este mtodo es apropiado para almacenar cantidades
relativamente pequeas de porciones de informacin relativamente esttica -- el tipo de informacin que usted podra esperar
que el propietario de la web introdujera en la primera configuracin del plugin, y que raramente fuera a cambiar en el futuro.
2. Post Meta (tambin conocido como Custom Fields). Apropiado para informacin asociada a posts individuales, pginas o
adjuntos. Consulte Ejemplos de la funcin post_meta, add_post_meta(), y funciones relacionadas.
3. Crear una tabla de base de datos nueva y personalizada. Este mtodo es apropiado para datos asociados con post individuales,
pginas, adjuntos o comentarios -- el tipo de datos que ir creciendo segn pasa el tiempo, y que no tiene nombres individuales.
Consultar Creando Tablas con Plugins para informacin sobre como hacer sto.

Mecanismos de las Opciones de WordPress


Consulte Creando Pginas de Opciones para informacin sobre como crear una pgina que salvar automticamente sus opciones
por usted.
WordPress dispone de un mecanismo para salvar, actualizar y recuperar de la base de datos de WordPress unas piezas individuales

de informacin llamadas ("options"). Los valores de Opcin pueden ser cadenas, matrices u objetos PHP (stos se "serializarn" sern convertidos a cadenas - antes de su almacenamiento, y de-serializarn en el momento en que se recuperen). Los nombres de
Opcin son cadenas, y deben ser nicas, de forma que no entren en conflicto con otros plugins o el mismo WordPress.
Aqu estn las principales funciones que su plugin puede utilizar para acceder a las opciones de WordPess.

add_option($name, $value, $deprecated, $autoload);

Crea una nueva opcin: no hace nada si la opcin ya existe.

$name
Requerido (string). Nombre de la opcin a aadir.

$value
Opcional (mixed), el valor por defecto es una cadena vaca. El valor de opcin a almacenar.

$deprecated
Opcional (string), no se usa ya en WordPress. Usted puede pasar una cadena vaca o null si quiere utilizar el siguiente parmetro
$autoload.

$autoload
Opcional, por defecto 'yes' (enum: 'yes' o 'no'). Si se establece como 'yes' la configuracin se recupera automticamente de la
funcin get_alloptions.

get_option($option);

Recupera un valor de opcin de la base de datos.

$option
Requerido (string). Nombre de la opcin cuyo valor usted quiere recuperar. Puede encontrar una lista de las opcines por defecto
instaladas con WordPress en Referencias de Opciones.

update_option($option_name, $newvalue);

Actualiza o crea un valor de opcin en la base de datos (tenga en cuenta que no hay que llamar a add_optionsi usted no desea
utilizar los parmetros $deprecatedo $autoload).

$option_name
Requerido (string). Nombre de la opcin a actualizar.

$newvalue
Requerido. (string|array|object) El nuevo valor de la opcin.

Paneles de Administracin
Asumiendo que su plugin tiene opciones almacenadas en la base de datos de WordPress (mirar la seccin anterior), usted,
probablemente, querr disponer de un panel de administracin que permita a los usuarios de su plugin ver y editar los valores de
dichas opciones. Los mtodos para hacer esto se encuentran detallados en Aadiendo Mens de Administracin.

Internacionalizando Su Plugin

Internacionalizando Su Plugin
Una vez usted haya realizado la tarea de programar su plugin, la siguiente consideracin es (asumiendo que usted planea
distribuirlo) la internacionalizacin. Internacionalizacin es el proceso de configurar software de forma que pueda ser localizado;
Localizacin es el proceso de traducir el texto mostrado en diferentes lenguajes. WordPress se utiliza a todo lo largo del mundo, de
forma que tiene herramientas de localizacin e internacionalizacin en su estructura, incluyendo localizacin para plugins.
Por favor, tenga en cuenta que lo archivos de lenguaje para plugins NO se cargan automticamente. Aada al cdigo del plugin, para
estar seguro de que se cargan los archivos de lenguaje:
load_plugin_textdomain('su_nombre_nico','/wp-content/plugins/plugin-name/ubicacin-de-los-archivos_mo_po/');
Para buscar una cadena solo tiene que utilizar __('nombre de la Cadena','su nombre nico'); para obtener la traduccin o _e('nombre
de la Cadena','su nombre nico'); para mostrar (echo) la traduccin.
El siguiente ejemplo busca los archivos mo y po dentro del mismo directorio del plugin:
load_plugin_textdomain('su_nombre_nico', false, dirname( plugin_basename( __FILE__ ) ) );
Est altamente recomendado que internacionalice su plugin, de forma que los usuarios de diferentes pases puedan localizarlo. Hay
una referencia exhaustiva sobre internacionalizacin, incluyendo una seccin que describe como internacionalizar su plugin en I18n
para Desarrolladores de WordPress.

Sugerencias sobre Desarrollo de Plugin


Esta ltima seccin contiene sugerencias aleatorias sobre el desarrollo de plugin.
El cdigo de un plugin WordPress debera seguir los Estndar de WordPress Coding. Por favor, tambin considere los estndar
Documentacin en Lnea.
Todas las funciones en su plugin necesitan tener nombres nicos que sean diferentes de los de funciones del ncleo de
WordPress, otros plugins y plantillas. Por esta razn, es una buena idea utilizar un prefijo de nombre de funcin en todos sus
plugins. Otra posibilidad es definir sus funciones de plufin dentro de una clase (que, a su vez, necesita tener un nombre nico).
No utilice el prefijo de bases de datos (normalmente "wp_")de WordPress directamente en sus plugins. Asegrese de que utiliza la
variable $wpdb->prefixen su lugar.
Leer la base de datos es barato, pero escribir es caro. Las bases de datos son excepcionalmente buenas recuperando datos y
ofrecindosela a usted y estas operaciones son (normalmente) veloces como el rayo. El hacer cambios en la base de datos, es un
proceso ms complejo, y ms caro desde el punto de vista computacional. Como resultado, intente minimizar la cantidad de
escritura que usted hace en la base de datos. Deje todo preparado en su cdigo primero, de forma que usted hace las operaciones
de escritura estrictamente necesarias.
SELECT solo lo que se necesita. A pesar de que las bases de dato recuperan informacin realmente rpido, usted debera intentar
de reducir la carga sobre la base de datos, seleccionando solo la informacin sobre la que quiere trabajar. Si usted necesita
nicamente contar el nmero de lneas de una tabla no haga SELECT * FROM, porque se cargarn todos los datos de cada
registro, desaprovechando memoria. As mismo, si solo necesita el post_id y el post_author en el plugin, simplemente SELECT
esos campos especficos, para minimizar la carga de la base de datos. Recuerde: cientos de procesos diferentes pueden estar
consultando la base de datos al mismo tiempo. La base de datos y el servidor tienen recursos limitados para atender dichos
procesos. Aprender como minimizar el impacto de sus plugins en la base de datos asegurar que el suyo no sea el sealado
como culpable de abuso de recursos.

Elimine errores de PHP en sus plugin. Aada define('WP_DEBUG', true);a su archivo wp-config.php, compruebe toda la
funcionabilidad del plugin, y chequee si hay errores y/o avisos. Arregle cualquier incidencia y continue en modo debug hasta que
se hayan eliminado todos los errores.
Intente no utilizar directamente las etiquetas <script> y <style> - en su lugar utilice las funciones recomendadas
wp_enqueue_style() y wp_enqueue_script(). Estas ayudan a eliminar scripts y estilos duplicados y, adems, introducen soporte de
dependencias. Consulte post de las siguientes personas para ms informacin: Ozh Richardson, Artem Russakovskii, y Vladimir
Prelovac.

Recursos Externos
Top 10 Most Common Coding Mistakes in WordPress Plugins (11SEP09)
WordPress 2.0.3: Nonces (Secure your forms with nonces) (02JUN06)
Simplified AJAX For WordPress Plugin Developers using Jquery(10APR08)
"Desenvolvendo Plugins para WordPress" by Rafael Dohms (in Brazilian Portuguese) (10MAR08)
12 part "How to Write a Wordpress Plugin" at DevLounge.net por Ronald Huereca (PDF)
How to create WordPress Plugin from a scratch (9AUG07)
Using AJAX with your WordPress Plugin, also at DevLounce.net (25MAY07)
How to Write a Simple WordPress Plugin at ATD (22FEB05)
WordPress Plugin Creation Saving Options (13APR09)
HookPress, un plugin que permite modificar Worpress con lenguajes diferentes a PHP a travs de webhooks. (26SEP09)
How To Include CSS and JavaScript Conditionally And Only When Needed By The Posts (13JAN10)
Demonstrating how to use the Settings API, WP_Http, and Pseudo-cron (01MAR10)
Categories:
Plugins
WordPress Development
Home Page
WordPress Lessons
Getting Started
Working with WordPress
Design and Layout
Advanced Topics
Troubleshooting
Developer Docs
About WordPress

Codex Resources
Community portal
Current events
Recent changes
Random page
Help

About

Support

Showcase

WordCamp

Blog

Developers

Plugins

WordPress.TV

Hosting

Get Involved

Themes

BuddyPress

Jobs

Learn

Ideas

bbPress

WordPress.com

Follow @WordPress

Matt

Me gusta

Privacy
License / GPLv2

+10K

1 milln

También podría gustarte