Jul 28
Como hacer un plugin para Wordpress
Luego de escribir mi primer plugin, voy a explicar a grandes rasgos lo que se necesita para escribir un plugin, éste está compuesto de 2 archivos, uno con la funcionalidad del plugin y otro con la página de opciones para el panel de administración de wordpress.
Lo primero que haremos será escribir el encabezado para el plugin, ésto es lo que permitirá que Wordpress reconozca el plugin.
/* Plugin Name: Category 2 Post Plugin URI: http://nuevosprogramadores.com/category2post/ Description: Allows to include posts from one selected category 2 your post or page body. Version: 0.1 Author: Pablo Rodríguez Author URI: http://nuevosprogramadores.com */ /* Copyright 2008 Pablo Rodríguez (email : prodriguez@nuevosprogramadores.com) 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
Como se puede apreciar, el encabezado está compuesto de 2 comentarios, sólo el primero es obligatorio, el segundo especifica que el plugin es publicado bajo licencia GPL.
Luego escribiremos la funcionalidad del plugin, en nuestro caso es una función que recorre los posts de una determinada categoría, arma un html con el contenido y por último reemplaza el comentario <!--category2post--> por el html con los posts que encontró anteriormente.
function category2post($c2p_content) { $c2p_IDCategory = stripslashes(get_option('c2p_IDCategory')); $c2p_NumberOfPosts = stripslashes(get_option('c2p_NumberOfPosts')); $c2p_ShowAllContent = stripslashes(get_option('c2p_ShowAllContent')); $c2p_result = ""; $c2p_posts = array(); switch($c2p_NumberOfPosts) { case 0: c2p_posts = get_posts("category=$c2p_IDCategory"); break; default: $c2p_posts = get_posts("numberposts=$c2p_NumberOfPosts&category=$c2p_IDCategory"); break; } if(sizeof($c2p_posts)) { foreach($c2p_posts as $c2p_post) { $c2p_result .= "<h3><a href="\">guid."\" id=\"".$c2p_post->ID."\">".$c2p_post->post_title."</a></h3>\n"; if($c2p_ShowAllContent == '0') { $c2p_result .= $c2p_post->post_excerpt."\n"; } else { $c2p_result .= $c2p_post->post_content."\n"; } } } return preg_replace('<!-- category2post -->|', $c2p_result, $c2p_content); }
Es muy importante buscar que los nombres de las funciones para no tener problemas con otros plugins y si las hubiese, hay que aplicar el mismo criterio con las variables. En mi caso utilicé el mismo prefijo para todo.
Como este plugin requiere de configuración, escribiremos también una función que agregue la página al panel de Wordpress.
function c2p_add_option_page() { add_options_page('Opciones', 'Category2Post', 'manage_options', 'category2post/options-c2p.php'); }
Y por último haremos que todo esto funcione:
add_action('admin_head', 'c2p_add_option_page'); add_filter('the_content', 'category2post');
La primera línea asigna nuestra función c2p_add_option_page a la acción admin_head de Wordpress, mientras que la segunda indica que nuestra función category2post se debe ejecutar con el filtro the_content.
Por suerte Wordpress cuenta con una buena Referencia de Funciones, que nos sirve como guía para nuestras creaciones, además contamos con otros plugins que podemos utilizar como referencia para ver el código.
Hasta aquí las funciones que utilizamos son: get_option que nos permite obtener el valor de una opción desde la base de datos, get_posts para obtener los posts que cumplan con cierto criterio, en nuestro caso buscamos los que pertenezcan a una categoría y de ser necesario, que sólo devuelva x cantidad de posts, add_options_page para agregar nuestra página de opciones al panel de administración de Wordpress y por último add_action y add_filter.

Julio 28, 2008 21:37hs
Muy bueno el aporte, te la las herramientas básicas y te ahorra tiempo de investigación.
habrá que escribir uno …
saludos
Julio 28, 2008 21:53hs
Gracias gabinox.. es cuestión de ponerse.. por suerte la documentación ayuda mucho.
Julio 29, 2008 13:15hs
[...] Como hacer un plugin para Wordpressnuevosprogramadores.com/2008/07/como-hacer-un-plugin-para-wo… por retocando hace pocos segundos [...]