Ago 08 2008

Category2Post en el directorio de plugins de Wordpress.org {

Tag: Category2Post

Así es, la semana pasada hice una solicitud para incluir Category2Post en el repositorio oficial de plugins de Wordpress y la solicitud fue aceptada, así que desde ahora el plugin figura en el directorio y tiene su repositorio SVN correspondiente.

Página en el directorio de plugins: http://wordpress.org/extend/plugins/category2post/

Repositorio SVN: http://svn.wp-plugins.org/category2post/

}


Jul 28 2008

Como hacer un plugin para Wordpress {

Tag: PHP, 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&amp;category=$c2p_IDCategory"); 
			break; 
		} 
		if(sizeof($c2p_posts)) { 
			foreach($c2p_posts as $c2p_post) { 
			$c2p_result .= "<h3><a href="\">guid."\" id=\"".$c2p_post-&gt;ID."\"&gt;".$c2p_post-&gt;post_title."</a></h3>\n";
			if($c2p_ShowAllContent == '0') { 
				$c2p_result .= $c2p_post-&gt;post_excerpt."\n"; 
			} else { 
				$c2p_result .= $c2p_post-&gt;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.

}


Jul 26 2008

Plugin para Wordpress - Category2Post - v0.1 {

Después de mucho tiempo diciendo “algún día voy a hacer un plugin para Wordpress”, finalmente llegó el día, desde hoy se encuentra funcionando en Nuevos Programadores el plugin Category2Post que se encarga de recopilar las entradas publicadas bajo la categoría Mini Tips y mostrarlos en la página del mismo nombre.

El plugin está totalmente escrito en php y utiliza funciones de la muy documentada API de Wordpress para seleccionar los posts y mostrarlos. Si hay algún curioso que desee ver como funcionan los plugins de Wordpress, éste es bastante simple, lo suficiente como para entender la lógica para escribir un plugin e incluir una página para la configuración de opciones.

En un próximo post voy a explicar lo básico de la experiencia que fue escribir mi primer plugin para wordpress, mientras tanto si alguien lo prueba y encuentra algún bug o se le ocurre que se podría agregar una nueva funcionalidad, puede dejar un comentario o comunicarse conmigo a través del formulario de contacto del blog.

Descargar Category2Post

}


Página 1 de 11