Contenido

10 útiles plugins para mejorar los comentarios de tu WordPress

21 may

+ 1

Si te resistes a usar herramientas como Facebook Connect, Disqus, OpenID o similares para gestionar los comentarios de tu WordPress siempre puedes ayudarte de plugins que mejoran la experiencia del usuario a un bajo costó de implantación.

  1. Comment Notifier: Añade la posibilidad de que el usuario reciba notificaciones de posteriores contestaciones a sus comentarios, este plugin me parece imprescindible en todo WordPress.
  2. Comment Emailer: Igual que el anterior pero más personalizable.
  3. Top Commentators Widget: Widget con un listado del top de usuarios que más comentan en tu WordPress, para los más competitivos! :D
  4. Simple Facebook Connect: Añade un login rápido y práctico con Facebook en tu formulario de comentarios. Útil, pero para aprovecharlo con más herramientas sociales con Facebook.
  5. Moojax Comment Posting: Ajax en tus comentarios con una básica verificación visual para que el usuario no tenga que recargar toda la página.
  6. Suscribe to Comments: Similar al primero, nos permite que el usuario se suscriba a los cambios producidos en un post concreto.
  7. CommentLuv WordPress: Interesante herramienta que permite devolver el favor de aportar un comentario a tu wordpress añadiendo información del usuario que lo ha hecho.
  8. Comment Sorter: Como su nombre indica, permite cambiar el orden de visualización de los comentarios de tu WordPress.
  9. Custom Smilies: Las caritas molan, pero en el Whatsapp. Si eres de los que te gustan estas caritas o tu blog es tan informal como para usarlas este plugin es para ti :D
  10. Get Recent Comments: Últimos comentarios en formato Widget para añadir a tu Sidebar, interesante para que tus visitas vean que hay gente comentando por otras entradas.

Si necesitas algo más concreto, o diferente tienes más de 1000 plugins para mejorar los comentarios de tu WordPress en el repositorio oficial.

Via

Mejorando las búsquedas en WordPress con SearchEverything

22 nov

+ 7

Seamos francos, el motor de búsqueda no es el punto fuerte de WordPress, por defecto está limitado a búsquedas en el contenido de los artículos cuando nos puede interesar buscar en comentarios, tags o categorías, por ello plugins como Search Everything nos hacen la vida más fácil.

search_everything_wordpress
(Ver Imagen)

SearchEveryThing, es un plugin que sobrecarga el motor de búsqueda de WordPress permitiendo realizar búsqueda más avanzadas en diferentes contextos que podremos configurar:

  • Buscar en cada página.
  • Buscar es cada etiqueta (tag).
  • Buscar en cada categoría.
  • Restringir la búsqueda a sólo páginas que no estén protegidas por contraseñas.
  • Buscar en cada comentario.
  • Buscar en sólo los comentarios aprobados.
  • Buscar en cada borrador.
  • Buscar en lo resúmenes (excerpt).
  • Buscar en cada adjunto.
  • Buscar en los campos personalizados (metadata).
  • Excluir post de las búsqueda.
  • Excluir categorías de las búsquedas.
  • Resaltar el resultado de búsqueda en nuestros artículos (mediante color o CSS personalizado)

Disponible en múltiples idiomas y compatible con versiones superiores a WordPress 2.1. Descargar

Shortcode para crear contenido que expira

3 nov

+ 11

Expiring Content Shortcode es un plugin que nos permite disponer de un shortcode para hacer que parte del contenido de nuestros artículos desaparezca al llegar a una fecha indicada previamente. Esto es ideal para campañas o concursos que realizamos en nuestros blogs.

Screen-shot-2010-11-02-at-2.04.26-PM
(Ver Imagen)

Modo de uso

Al igual que todos los shortcodes, simplemente tendremos que llamarlo desde el contenido de nuestros artículos, para ello usaremos la siguiente construcción:

[expires on="FECHA"]Contenido a expirar[/expires]

¿Sencillo verdad? Pues además, como ya vimos como usar shortcodes en nuestro theme, nos permite realizar cosas interesantes no solo a nivel de contenido. Las limitaciones las pones tu :D

Via

WpMooSnow, ponle nieve a tu WordPress con MooTools

4 dic

+ 8

Sampedro de RutaRelativa desarrolla un plugin para WordPress que nos permite incluir nieve cayendo en nuestro blog. Algo muy interesante para las fechas que se acercan.[Demo][Descargar]

Truco del campo oculto antispam para WordPress más fácil todavía

4 dic

+ 13

Este artículo hace ya más de un año que comencé a escribirlo y hoy que he tenido unos minutos para repasarlo y modificar un poco el código lo termino.

Hace ya mucho tiempo, Jose Ramón (Manz) publicó en Emezeta un sistema bastante ingenioso para capear el problema del SPAM en nuestros blogs.

El sistema

antispam3
(Ver Imagen)

El sistema, se basa en pensar de forma dual a la hora de implementar el formulario de comentarios de tu blog (que apartir de este momento, va a ser WordPress), y barajar la idea de que un robot pueda rellenar los campos automáticamente haciendo que sus comentarios entraran como un comentario normal. Akismet, y demás plugins antispam, tienen una gran lista de URL’s, agentes de usuarios, emails e IP’s que comprueban para comprobar que un robot es malicioso o no, pero estos sistemas, como ya bien sabemos, no son del todo eficaces. Por eso, hemos de engañar al robot :D

¿Como lo engañamos?

La propuesta de Manz, es la de añadir un campo oculto (mediante CSS) con el nombre del elemento destinado para el nombre del usuario, en el caso de WordPress usaremos author, con un valor X predefinido.

<input type="text" name="author" value="X" class="oculto" />
// CSS
input.oculto {display:none;}

Este campo, será el señuelo que los robots editarán automáticamente al procesar la página, principalmente por que es un <input /> y además se llama author, lo que hace complicado saber si esa página lo tiene implementado o es una trampa.

Para los usuarios, incluiremos un nuevo elemento <input /> con un nombre a nuestra elección.

<input name="nombrebueno" type="text" class="author" />

El usuario, verá este campo y será en el que introducirá su nombre de usuario. A simple vista podemos ver el problema que nos encontramos al realizar este cambio, el nombre del usuario siempre será X, ya que WordPress está preparado para leer author como nombre de usuario, y evidentemente no conoce el campo nombrebueno que hemos creado nosotros.

Por este motivo hemos de modificar el código de WordPress para añadir unas pocas líneas (voy a explicar como lo tenía yo antes de implementar la funcionalidad que veremos abajo):

wp-config.php
define("SPAM_CONTROL", "kaminitos"); // No sé por que puse eso...
wp-comment-post.php
$comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;
$comment_author_email = ( isset($_POST['email']) )   ? trim($_POST['email']) : null;
$comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;
$comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;

// Añadimos el control del campo nuevo
if ($_POST["author"] != SPAM_CONTROL) die("SPAM");
$comment_author       = ( isset($_POST['secure']) )  ? trim(strip_tags($_POST['secure'])) : null;

Se puede hacer más sencillo, editando únicamente el fichero wp-comment-post.php, pero de esta forma tengo control sobre lo que aparece en el campo oculto.

Evidentemente, este sistema, me obliga a añadir esas dos líneas de código cada vez que actualizo WordPress, lo que se convierte en algo, que aunque no es laborioso, es muy pesado. Para evitar tener que modificar el código de WordPress en cada actualización, yo propongo este código.

Sistema antispam de campo oculto más cómodo :D

// Mensaje que mostramos a los SPAM
define('MESSAGE', 'SPAM!!!');
// Nombre del campo que usaremos para alojar el verdadero nombre del usuario
define('NOMBRE_CAMPO', 'secure');
// Clave única que será modificada por el bot
define('WP_ANTI_SPAM', 'kko');

add_filter('pre_comment_author_name', '_pre_comment_author_name');
function _pre_comment_author_name($comment_author_name = ''){
 // Devolvemos el nombre del autor sinó estamos pasando los campos necesarios
 if (!isset($_POST['author'], $_POST[NOMBRE_CAMPO])) return $comment_author_name;

 // Matamos el proceso
 if (isset($_POST['author']) && $_POST['author'] != WP_ANTI_SPAM) die(MESSAGE);

 // Cambiamos el nombre del author
 global $wpdb;
 return $wpdb->escape(trim(strip_tags($_POST[NOMBRE_CAMPO])));
}

function get_anti_spam_input($comment_author){
 return '<input type="hidden" name="'.NOMBRE_CAMPO.'" value="'.esc_attr($comment_author).'" />';
}

function anti_spam_input($comment_author){
 echo get_anti_spam_input($comment_author);
}

function get_author_input($comment_author){
 return '<input type="hidden" name="author" value="'.WP_ANTI_SPAM.'" />';
}

function author_input($comment_author){
 echo get_author_input($comment_author);
}

Este código, lo incluimos en el fichero functions.php de nuestro theme. Como vemos en la parte superior, tenemos 3 define() que nos permiten declarar 3 variablesconstantes que nos hará nuestro sistema más personalizable. Después, vemos una función que se aplica al filtro pre_comment_author_name en la que comprobamos que el campo oculto no ha sido modificado. En caso de detectar el cambio, matamos el proceso en ese mismo momento, mostrando el mensaje que hayamos definido previamente.

En caso de que el campo oculto no haya sido modificado, entonces reemplazaremos el nombre de usuario por el del campo visible para el usuario. Este sistema nos permite intercalar este proceso y hacer que en caso comentario válido, continúe sin ningún problema.

Modificar el theme

Después para facilitar el trabajo de modificación del theme, he añadido unos métodos para pintar (o devolver como cadena) los elementos <input /> que intervienen en este sistema. Usaremos, como siempre, el theme default de WordPress, y usaremos únicamente el fichero comment.php del mismo.

Básicamente, el único cambio que tendremos que realizar es el cambio de esta línea:

<input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />

Por estas dos

<?php
 author_input($comment_author);
 anti_spam_input($comment_author);
?>

Estos dos funciones se encargarán de pintar los elementos <input /> que vamos a necesitar. Evidentemente, si tu theme tiene estilos o clases aplicados a estos elemento tendrás que modificarlos en las funciones get_anti_spam_input() get_author_input() del fichero functions.php que hemos incluido antes.

Sencillo, ¿verdad? :D

Resultado

El resultado, os puedo garántizar que es 100% satisfactorio y que junto a Akismet el SPAM (por el momento) deja de ser un problema.

La funcionalidad “post-image” de WordPress 2.9

17 nov

+ 13

Una de las nuevas funcionalidades que nos encontraremos en WordPress 2.9 es el llamado post-image, que como ya hemos explicado previamente se trata de un sistema que nos permite asociar a un post una imagen y poder usarla en un theme.

Justin Tadlock muestra un completo artículo mostrando como hacer uso de esta funcionalidad.

1) Permitir la funcionalidad

Como vimos en el post de las nuevas funcionalidades de WordPress 2.9, el theme iba a coger algo de relevancia permitiendo activar/desactivar funcionalidades de WordPress desde el fichero functions.php.

Esta capacidad nos permitirá activar esta funcionalidad añadiendo un simple línea a nuestro theme:

add_theme_support( 'post-thumbnails' );

Esta línea, nos activará la funcionalidad de post-image en nuestro WordPress, permitiendo que podamos ver un box más en nuestra página de “Nueva Entrada”.

wordpress-2.9-post-image
(Ver Imagen)

Allí podremos seleccionar una imagen que será asociada al post.

2) Usar la funcionalidad

Una vez asociada la imagen, ya solo nos queda hacer que nuestro theme muestre la imagen donde queramos. Para ello tenemos una serie de funciones que debemos conocer:

the_post_image($size)

Esta función nos permite mostrar la imagen en el punto en el que la llamamos, requiere estar incluida dentro del Loop para funcionar.

<?php while( have_posts() ) : the_post(); ?>
 <div>
 <h1><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h1>
 <?php the_post_image() ?>
 <?php the_content() ?>
</div>
<?php endif; ?>

Podemos usarla con un parámetro para especificar el tamaño de la imagen que queremos mostrar:

  • thumbnail
  • medium
  • full

Todas hacen referencia a la configuración de imagenes del apartado Opciones > Media de nuestro panel de control.

has_post_image()

Para comprobar si un post tiene asociada una imagen deberemos usar has_post_image() que nos devolverá true o false.

<?php
	if ( has_post_image() )
		the_post_image( 'thumbnail' );
	else
		echo '<img src="default-image.png" alt="Example Image" title="Example" />';
?>

get_post_image_id()

Si necesitamos obtener el ID de la imagen podremos hacer uso de esta función que nos devolverá el ID.

$image_id = get_post_image_id();

get_the_post_image( $id, $size )

Si necesitamos obtener la imagen de un post fuera del Loop podemos acceder directamente a ella indicándole el ID del post y el tamaño de la imagen que necesitamos.

$image = get_the_post_image( $post->ID, 'thumbnail' );

3) Filtros y actions

Además de las funciones que nos permiten trabajar cómodamente con la imágen asociada, tenemos una serie de filtros que nos permiten personalizar más aún la funcionalidad y obtener resultados de lo más dispares.

//Filters
 - post_image_size
 - post_image_html
// Actions
 - begin_fetch_post_image_html
 - end_fetch_post_image_html

Veamos un ejemplo de Justin nos muestra con el que podemos cambiar el HTML de salida de la imagen que vamos a mostrar.

add_filter( 'post_image_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id );
	$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">' . $html . '</a>';
	return $html;

}

Se trata de una gran funcionalidad, que muchos desarrolladores de themes estarán deseando usar en sus creaciones.

Wp-Answers, crea una comunidad de preguntas y respuestas con WordPress

7 nov

+ 77

Hace unos meses empecé a montar este plugin que permite crear comunidades basadas en preguntas y respuestas, al estilo StackOverFlow y/o Yahoo! Answers. La idea es generar, sin modificar para nada el núcleo de WordPress, un sistema basado en votaciones de comentarios y ordenarlos por este número de votaciones.

De esta forma, podremos disponer de un sistema que nos permita lanzar preguntas y que mediante las contestaciones de los usuarios y sus votos, podamos obtener una respuesta lo más acertada posible.

Wp-Answers

El plugin se encarga de añadir un formulario a cada comentario permitiendo que los usuarios puedan votar positiva o negativamente dicho comentario. Posteriormente y dependiendo del número de comentarios de este comentario y los demás, lo ordenará de forma que el comentario con más votos quede primero, el segundo mejor votado segundo y así sucesivamente.

wp-answers
(Ver Imagen)

Nuestro theme

El plugin, está pensado para no depender de ningún theme y que pueda funcionar en cualquiera, por ello todo el estilo CSS y el Javascript (para realizar las llamadas con Ajax) se puede añadir fácilmente adaptándolo a cada WordPress.

Dándole estilos

El formulario, por defecto no tiene estilos aunque puede personalizarse como más nos guste incluyendo los estilos a nuestro style.css de nuestro theme. Os dejo un ejemplo del que he usado para las pruebas:

.wp_answers_votes {
 float:right;
 background-color:#F1F1F1;
 margin-bottom:10px;
 padding:10px
 text-align:center;
 -moz-border-radius:6px;
 -webkit-border-radius:6px;
 border-radius:6px;
}
.wp_answers_total_votes{
 font-size:2em;
}

Opciones

Disponemos de una serie de opciones, muy sencillas que nos permiten configurar el nivel de Karma que aporta o resta la votación de comentarios. Además de poder indicar si necesitamos que el usuario este registrado en el blog o no.

wp-answers-options
(Ver Imagen)

Widget

He creado un pequeño Widget que nos permitirá mostrar un top N usuarios, ordenados por karma acumulado en nuestro sidebar, simplemente tendremos que indicar las opciones del Widget y añadirlo al sidebar que deseemos.

wp-answers-widget
(Ver Imagen)

Descargar

Aquí teneis el enlace, también podeis verlo en funcionamiento con el theme P2 (de WordPress)

Actualización

Por sugerencia de Cristian Eslava añado la opción de seleccionar una categoría a la que asociar este sistema de mostrar los comentarios. De esta forma, es posible asociarlo a una parte de tu WordPress y no a todo.

WordPress 2.9 permite la actaulización de plugins a la vez

28 oct

+ 5

La nueva versión de WordPress, nos permitirá actualizar varios plugins a la vez. Al igual que ahora podemos actualizar los plugins que dispongan de una versión actual, dispondremos de la posibilidad de seleccionar N plugins y actualizarlos a la vez. Se agradece con la cantidad de actualizaciones que tenemos que tener en cuenta.

Cuidando la base de datos de nuestro WordPress

17 oct

+ 19

WordPress, es un conjunto de ficheros .php, que realizan consultas a una base de datos (generalmente MySQL) para obtener la información que nosotros, y nuestros usuarios, generamos. Aunque hay una infinidad de plugins, quizás los más olvidados y a su vez, los más importantes son aquellos que nos permiten optimizar nuestra base de datos.

La base de datos de WordPress

La BD (base de datos en adelante) se compone de 10 tablas inicialmente, y en ella nos encontramos las tablas necesarias para almacenar los datos que componen nuestro blog, artículos, comentarios, categorías,…

Todo está en la base de datos, y por ese motivo es conveniente cuidarla, ya sea mediante herramientas externas o plugins.

Herramientas externas

Muchos podemos disponer de otras herramientas para optimizar o analizar nuestras bases de datos sin necesidad de instalar un nuevo plugin en nuestro WordPress. Un ejemplo de estas herramientas es phpMyAdmin.

phpmyadmin
(Ver Imagen)

Plugins

Mediante plugins, podemos realizar prácticamente las mismas tareas que con aplicaciones externas, con la diferencia de que todo está en nuestro WordPress. Esto supone una ventaja a la hora de ofrecer una opción a un cliente de poder optimizar o analizar la base de datos de su WordPress, evitándole tener que usar otras herramientas externas al panel de administración.

WP-Optimize

Hay muchos plugins que nos permiten tener una gestión completa las tablas de WordPress, y WP-Optimize es uno de ellos.

wp-optimize
(Ver Imagen)

Entre las opciones que dispone, vemos que podemos realizar funciones de limpieza de forma sencilla:

  • Borrar todas las revisiones de nuestros artículos
  • Borrar todos los comentarios marcados como SPAM
  • Borrar todos los comentarios marcados como inapropiados

Además de mostrarnos de un vistazo el estado de nuestras tablas, informándonos de las que necesitan ser optimizadas.

wp-optimize-tables
(Ver Imagen)

Adminer

adminer
(Ver Imagen)

Adminer, es otro plugin para nuestro WordPress que nos proporciona las herramientas necesarias para cuidar nuestras base de datos. En este caso, nos ofrece un sustituto perfecto de phpMyAdmin, ideal para aquellos usuarios que no disponen de esta opción en su hosting.

adminer-gestion
(Ver Imagen)

Optimize DB

Quizás el plugin (Optimize DB) de optimización de BD que he visto, pero hace lo que tiene que hacer. En caso de que haya alguna tabla con residuo a optimizar nos aparecerá en nuestro panel de administración, en caso contrario no nos molestará, dejándonos trabajar sin ningún problema.

screenshot-1
(Ver Imagen)

WordPress Database Table Optimizer

Otro plugin que únicamente nos permite optimizar nuestras tablas y que realizar su trabajo de una forma eficiente. Ideal, para aquella gente que solo quiere optimizar cada X tiempo.

database-tabler-optimizer
(Ver Imagen)

WP DBManager

WP DBManager es un suite de opciones para nuestro WordPress en forma de plugin. Con él podremos realizar las tareas más comunes con nuestra base de datos (optimizar, analizar, reparar,..).

DBManager-optimize
(Ver Imagen)

Entre las opciones del plugin, nos encontramos con la posibilidad de hacer backups de nuestra BD, borrar o vaciar tablas o  ejecutar sentencias SQL sobre las tablas.

DBManager-backup
(Ver Imagen)

Conclusión

Después de ver estas herramientas, hemos de pensar en cuidar lo que hace posible que nuestro WordPress sea lo que és.

10 plugins de WordPress para Desarrolladores

7 oct

+ 6

Los desarrolladores debido a la cantidad de código que publicamos nos vemos obligados a usar algún que plugin o añadido para que esta tarea sea sencilla o por lo menos más cómoda.

En CatsWhoCode publican más 10 plugins que para los desarrolladores pueden suponer una mejora en la experiencia de publicar entradas con código.

  1. Preserve Code Formatting: Básicamente mantiene el formato del código que insertemos en los elementos pre, code,…
  2. WP Advanced Code Editor: Editor de código en todos los puntos donde ahora puedes editar código de tu WordPress.
  3. runPHP: El más conocido de los plugins, que nos permite ejecutar código PHP en nuestros posts/widgets/…
  4. Vim Color Improved: Muestra los editor de código como si fueran VIM.
  5. SQL Executionner: Plugin que permite ejecutar sentencias SQL sobre nuestro WordPress.
  6. Google Syntax Highlighter: Colorea el código que muestras por pantalla con este plugin basado en Javascript.
  7. WP Development Utilities: Colección de funcionalidades para ayudarnos a depurar nuestros themes y plugins.
  8. WP Developer Assistant: Ayuda integrada en tu WordPress para ayudarte con el desarollo sobre WordPress.
  9. Anti Internet Explorer6 : No hace falta explicar nada de este plugin :D
  10. Hosting Monitor: Información básica sobre el Host en el que está alojado tu WordPress.
  11. WP Debug: Plugin para ayudarnos a depurar nuestros scripts mostrando la información de la sessión.
  12. WP Console: el plugin para los amantes de la consola. Permite “administrar” el blog desde consola.