Contenido

Vamos a crear un plugin

15 Feb

+ 28

En este post voy a intentar hacer de una forma amena y divertida, una especie de manual de como crear un plugin sencillo con una utilidad algo tonta 😀 Ya que la idea de crear un plugin es mucho más complicado que el hecho de hacerlo, puesto que para explicar el como tener una idea para ello necesitaría primero tenerla 😀 y últimanente ando falto de ellas (se admiten ideas).

¿Que queremos hacer? 

 Vamos a implementar un plugin para WordPress que modifique el texto de nuestros posts y que mediante el uso de una terminología a posta nos reemplaze nuestros enlaces por otros un poco cabroncetes con los usuario. Añadiremos la opcion onclick=»location.href=…» para hacer creer a los usuario que van a una página y al final las mandemos a otra 😀 No se si esto funcionará en todos los casos, o no funcionará nunca, pero como ejemplo es igual de válido que cualquier otro.

¿Que necesitamos?

  1. Un ordenador.
  2. Un editor de texto.
  3. Un poco de tiempo libre.
  4. Enlace a la página de WordPress Codex
  5. Enlace a la página de php.net

¿Que pasos seguimos?

El primer paso sin duda es encender el ordenador, y abrir el editor de texto. Una vez hecho esto vamos a copiar el siguiente contenido:

  <?php
/*
Plugin Name: NOMBRE
Plugin URI: URL
Description: DESCRIPCION
Author: AUTOR
Version: VERSION
Author URI: URL
*/


?>

  

Con esto ya tenemos la cabecera del plugin, con él podremos hacer que nuestro wordpress detecte nuestro futuro plugin, solamente hemos de cambiar los valores en mayusculas por los que se acerquen más a tus necesidades y propositos.

Despues hemos de ir declarando las funciones que vamos usar en nuestro plugin, en nuestro caso necesitaremos una simple función.

function reemplaza ($content = '') {
	return preg_replace('/<a(.*?)href="(.*?)"(.*?)href2="(.*?)"(.*?) \/>/i', '<a$1href="$2" onclick="location.href=$4;" $5 />', $content);
}
  

Teniendo la función solo nos queda decidir donde vamos a hacer que se lanze, en nuestro caso vamos a hacer cuando muestre el texto del post, para ello es conveniente conocer los diferentes tipos de metodos de los que disponemos para realizar nuestra tarea.

WordPress, dispone de 2 métodos para añadir funcionalidades a nuestros blogs, uno de ellos son las acciones y se definen como los procesos principales que se realizan sin tratar información, como por ejemplo el init, que se refiere al inicio de carga del blog, o al publish_post, que como su nombre indica se aplicará al publicar un post.

El otro método es más extenso y se refiere a los que si procesan información y que se realizan en cada llamada a la página, son los filtros, con ellos puedes realizar cambios sobre la información que vas a mostrar por pantalla, de esa forma permite añadir etiquetas mediante el the_content o cambiar la URL de un troll a nuestra web con  comment_url.

De esta forma wordpress, permite una personalización bastante amplia, aunque me he quedado sin recursos al intentar hacer algún plugin.

Nosotros para nuestro caso vamos usar el metodo de filtro para nuestro content, usaremos el filtro the_content y la llamada se realiza de la siguiente forma:

add_filter('the_content', 'reemplaza');
  

De esta forma le estamos diciendo a WordPress que cuando vaya a realizar el filtro the_content, haga una llamada a reemplaza.

El resultado final del fichero sería parecido a este.

<?php
/*
Plugin Name: NOMBRE
Plugin URI: URL
Description: DESCRIPCION
Author: AUTOR
Version: VERSION
Author URI: URL
*/
function reemplaza ($content = '') {
return preg_replace('/<a(.*?)href="(.*?)"(.*?)href2="(.*?)"(.*?) \/>/i', '<a$1href="$2" onclick="location.href=$4;" $5 />', $content);
}
add_action('the_content', 'reemplaza');
?>
  

Si tienes tiempo y ganas siempre es recomendable añadir comentarios y explicaciones de lo que hace cada función, te facilitará el trabajo de mantenimiento una burrada.

Para más información, como manipular las Bases de Datos desde nuestros plugins, o añadir opciones a nuestro menu administrador y tener en cuenta algo realmente importante, ser originales con el nombre de las funciones que luego tenemos problemas al usar dos plugins distintos.

Espero que te haya servido esta iniciación a los plugins de WordPress, intentaré hacer algún post explicando un poco más profundo el tema, ahora cualquiera puede hacer un plugin para WordPress, no hay excusas.

  • me gusta que estes publicando estes publicando manuales HOWTO,

    gracias por compartir.

  • Gracias, de eso se trata 😀

    Compartir es la clave para llegar al nirvana. 😉

    Además me sirve como recetario donde ir guardando las recetas para un futuro 😀

  • Que tal, veo que le mueves a crear cosas para el wordpress, yo he creado un sencillo calendario para el control de algunos eventos, el problema que tengo, es que quiero que el acceso al panel de control de mi calendario sea controlado por el usuario y password que se encuntran en mi BD de wordpress, estuve leyendo la BD y no es md5 lei que tenia algo de una doble encriptacion , no se si me pudieras orientar o darme una linea de investigacion pues estoy perdido. Saludos Muy bueno tu blog. Si gustas puedes agregarme al MSN y charlamos.

  • Hola andres,

    Estaba buscando entre tus plugins, (que por cierto y sin peloteo, son estupendos), despues de usar fisgon y varios mas, gracias a REHE que me dio a conocer tu site, he llegado hasta aqui, y he decidido hacer algo que llevaba un tiempo pensando, aunque seguramente necesite ayuda:

    Se trata de hacer un plug-in que cuente el numero de veces que se visita una entrada, y que deberia de aparecer al leer la entrada extendida. Como lo de poner un contador de visitas de esos gratuitos para cada entrada es algo muy engorroso, he pensado en crear uno, aunque no se por donde empezar…

    Supongo que necitare crear una tabla, donde se vayan sumando las visitas, y que despues se vayan mostrando al lado del titulo de la entrada, (con imagen estilo Digg o no), pero ya que segun leo estas falto de ideas, quizas esta sea una buena, y facil de hacer.

    Mientras tanto, yo voy a entretenerme haber que saco, pero como te decia, no se por donde empezar,

    Un saludo,

  • y la estrutura de imagen y css

  • #15 La puedes añadir al theme en cualquier lugar, haciendo referencia a get_option('home'); para tener la ruta del blog.

    despues como en cualquier página.

  • Una preguntota, ¡y en los plugins como se agrega la restriccion de que tipo de usuarios pueden manipularlo; por ejemplo Solo Administradores o Colaboradores; muchas gracias

  • muy didactico la explicación pero podrías poner un ejemplo para mejor visualización.

  • yo me quero se un msn y no se en que pagina entrar

  • grande Andres!!!

    Tu blog es sin duda el mejor a nivel hispano para aquellos que buscamos hacer «cosas» con wordpress

  • hola me interesa crae un plugin para enlazar blogs de una red con una pequeña imagen, no se si podrias brindarme alguna asesoria.

    gracias

  • Gente, necesito un plugin para dar servicio de fotolog con un pequeño comentario en mi pagina, me podrían dar una mano, desde ya muchas gracias.-

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.