Posted by planetawordpress on diciembre 27, 2007
Dilectio es un tema de 3 columnas con un diseño muy profesional y organizado, con una zona amplia para entradas, una columna para buscador, información y publicidad, y luego una columna menor para categorías, enlaces, … Ver Demo.
iLeopard es un tema para wordpress basado en el estilo del nuevo Mac OS X Leopard a 3 columnas.
Leer más en Carrero.es
Posted by planetawordpress on diciembre 27, 2007
Hace algún tiempo publiqué una versión alpha de un plugin que elimina todos los caracteres especiales de los permalinks (Ejm: ¿, !, etc). Si bien es cierto que este plugin hacía relativamente bien su trabajo, existía un bug en el para las entradas anteriores que contenían ese tipo de caracteres, devolvía una página de error (no encontrado).
Aprovechando el tiempo libre de estas fiestas de fin de año he corregido este bug, de modo que ahora el plugin sólo se ejecuta antes de guardar las entradas:
<?php
/*
Plugin Name: Permalink Fix
Plugin URI: http://www.buayacorp.com/
Description: Elimina algunos caracteres especiales de las URLs de las entradas (Ejm: ¿, !, etc).
Author: Alexander Concha
Version: 0.1.2
Author URI: http://www.buayacorp.com/
*/
if (!defined('ABSPATH')) die;
// Based on sanitize_title_with_dashes method (wp-includes/formatting.php)
function custom_sanitize_title_with_dashes($title) {
$title = strip_tags($title);
// Preserve escaped octets.
$title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title);
// Remove percent signs that are not part of an octet.
$title = str_replace('%', '', $title);
// Restore octets.
$title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title);
$title = remove_accents($title);
if (function_exists('mb_strtolower') && seems_utf8($title)) {
$title = mb_strtolower($title, 'UTF-8');
} else {
$title = strtolower($title);
}
$title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
$title = preg_replace('/[\s-]+/', '-', $title);
$title = trim($title, '-');
return $title;
}
function __enable_fix($post_name) {
remove_filter('sanitize_title', 'sanitize_title_with_dashes');
add_filter('sanitize_title', 'custom_sanitize_title_with_dashes');
return $post_name;
}
add_filter('pre_post_name', '__enable_fix');
?>
Si por azares del destino alguien está usando este plugin
, es recomendable que actualicen para evitar este molesto error. Pueden descargar la actualización desde este blog o desde mi repositorio temporal de código.
Posted by planetawordpress on diciembre 26, 2007
Muchas veces he querido habilitar la suscripción de usuarios en este blog por diferentes motivos: problemas con el spam, evitar que se muestre publicidad a lectores habituales, etc; pero todas esas veces tuve que desistir porque de un modo u otro he ido descubriendo que esta opción puede “costarme caro” si es que algún usuario malintencionado tiene algo en contra mía.
Entre los problemas que recuerdo haber reportado y que requerían del registro de usuarios activado tenemos los siguientes:
Volviendo al tema central, este problema de seguridad del que había comentado meses atrás en el blog de David, permite que un usuario registrado obtenga la lista completa de usuarios, roles y correos electrónicos del blog o sitio afectado. El proceso para recuperar esta lista es bastante sencilla y sólo basta invocar al método wp.getAuthors a través de la interface XMLRPC:
<?php
include './class-IXR.php';
$client = new IXR_Client('http://dominio.com/xmlrpc.php');
$client->query('wp.getAuthors', 1, 'alex', '1234');
$response = $client->getResponse();
print_r($response);
?>
Luego de reportar este problema leve en wordpress.com (y por consiguiente cualquier otro sitio basado en WordPress MU), ya existe un ticket con parche incluido que pone fin a esta situación y es recomendable que actualicen aquellos sitios que tengan la suscripción de usuarios habilitada.
Posted by planetawordpress on diciembre 26, 2007
Desde Feevy, y en forma de regalo navideño, nos llega el Feevy Ping Plugin. Este plugin, realizado por Alex Girard, envía una notificación de actualización a Feevy para reducir drásticamente el lapso entre que se postea y la aparición del nuevo post en los feevies de nuestros amigos.
Descarga del plugin –> Feevy Ping
Posted by planetawordpress on diciembre 25, 2007
Y quién dice en Firefox dice también en Internet Explorer.
En agosto hice una página con motores de búsqueda que con un click se añadían a los buscadores de Mozilla Firefox.
Este sistema depende de que el lector llegue a la web donde le permitimos añadirlo y haga click para ello ¿por qué no hacerlo más fácil?. Concretamente una entrada en el menú de buscadores que aparezca al visitar el sitio, cómo se puede apreciar en la imagen que acompaña la entrada.
Las ventajas son claras: no requiere javascript, fácil de implementar, se puede poner en cualquier plantilla por defecto, el código en portada es una línea, es compatible no sólo con Firefox si no también con Internet Explorer y el campo “Añadir buscador” sólo aparece en tu blog por lo que no saturas la lista del usuario.
Por último cabe mencionar que es una “implementación” adaptada de una entrada del blog de menéame donde al verlo me animé a ponerlo en práctica (no llegue a mirarlo antes pero pensé en su momento que sería un rollo de implementar).
Manos a la obra
Lo único que hace falta es un fichero XML y una línea de código, crearemos en nuestra plantilla el fichero opensearch.php con el siguiente contenido:
<?php header('Content-Type: text/xml; charset=utf-8'); ?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName><?php bloginfo('name'); ?></ShortName>
<Description>Buscador de <?php bloginfo('name'); ?></Description>
<InputEncoding>UTF-8</InputEncoding>
<Image height="16" width="16"><?php bloginfo('url'); ?>/favicon.ico</Image>
<Url type="text/html" method="GET" template="<?php bloginfo('url'); ?>/">
<Param name="s" value="{searchTerms}"/>
</Url>
<SearchForm><?php bloginfo('url'); ?></SearchForm>
</OpenSearchDescription>
Lo que hacemos es crear el fichero PHP que será enviado como XML, los campos son autodescriptivos pero por completar:
- ShortName: nombre que tendrá el buscador (ej: SigT).
- Description: la descripción, sale después de “Añadir” (ej: Buscador de SigT.net).
- InputEncoding: por defecto UTF-8, normalmente no hay que tocarlo.
- Image: imagen del favicon.
- Url: el método de hacer la búsqueda, en WordPress siempre se usa GET.
- Param name: el parámetro que se añadirá después de la URL, en este caso
/?s= seguido de los términos de búsqueda.
- SearchForm: la url donde está el formulario de búsqueda.
Por último sólo tenemos que añadir una línea en el fichero header.php:
<link rel="search" type="application/opensearchdescription+xml" title="Buscador de <?php bloginfo('url'); ?>"
href="<?php bloginfo('template_url') ?>/opensearch.php" />
Y ya está.
Aparte de que podemos extenderlo a cualquier formato así nos ahorramos un plugin e incluso podemos ahorrarnos toda la parte de PHP (salvo el header()) poniendo el nombre del blog, las URL’s y la descripción a mano sin usar funciones. En realidad así lo tengo yo pero lo he puesto con funciones para quien no quiera tocar código.
desarrollo web, wordpress
Posted by planetawordpress on diciembre 25, 2007
Hoy Hector comentaba la forma de integrar OpenSearch en tu blog de una forma fácil y asequible para cualquiera. Y me he marcado un reto, hacer aún más fácil. ¿Y como conseguirlo? Pues con un plugin
¿Que es OpenSearch?
OpenSearch es un estandard basado en XML que nos ayuda a publicar resultados de busqueda. Con OpenSearch ayudas al usuario a que realice busquedas por tu sitio directamente desde el navegador, en caso de Firefox, integrandoló como motor de busqueda en el panel superior derecho.
De esa forma, el usuario únicamente tiene que seleccionar el sitio en el que quiere buscar, introducir la palabra, o palabras, a buscar y pulsar intro directamente desde su navegador. Mostrando los resultados directamente en una pestaña. Esto en mi caso es realmente útil ya que la mayoría de cosas que uso en mi día cotidiano las he comentado en el blog y buscar en él me ayuda una infinidad.
WP-OpenSearch
WP-OpenSearch, es un plugin que te facilita la fácil tarea de integrarlo en tu WordPress, únicamente con estos 2 pasos podemos tener ya integrado OpenSearch en nuestro WordPress.
- Descargamos el plugin
- Descomprimimos y subimos a nuestro directorio de plugins (wp-content/plugins/)
- Activamos desde el panel de administrador
Quizas debamos vaciar la caché generada por WP-Cache, 1BlogCacher o SuperCaché, para ver los resultados. Pero una vez activado, ya tendremos disponible para todos los usuarios la siguiente opción:
[Descargar]
Artículos relacionados

Posted by planetawordpress on diciembre 23, 2007
La gente de Weblog Tools Collection ha creado un TimeLine de WordPress en el 2007. Está muy interesante y aquí lo comparto con ustedes.
5 de Enero, 2007 – WordPress 2.0.6 es liberado al público. Esta versión incluye arreglos de seguridad.
15 de Enero, 2007 – WordPress 2.0.7 es liberada al público. Esta versión incluye arreglos de seguridad.
22 de Enero, 2007 – WordPress 2.1 es liberada al público. Esta versión incluye una enorme cantidad de novedades juntos a 550 errores reparados.
21 de Febrero, 2007 – WordPress 2.1.1 y 2.0.9 son liberadas al público.
3 de Abril, 2007 – WordPress 2.1.3 y WordPress 2.0.10 son liberadas al público.
16 de Mayo, 2007 – Llega otra versión mayor. WordPress 2.2 la cual incluye widgets dentro del código (ya no se necesita más usar el plugin).
21 de Junio, 2007 – WordPress 2.2.1 liberada.
5 de Agosto, 2007 – WordPress 2.2.2 y 2.0.11 son liberadas
28 de Agosto, 2007 – Primera beta de WordPress 2.3.
8 de Septiembre 2007 – WordPress 2.2.3 es liberada para arreglar dos vulnerabilidades críticas de seguridad.
25 de Septiembre, 2007 – WordPress 2.3. Una versión mayor de WordPress. Incluye soporte de etiquetas, seo urls, notificación de plugins y mucho más.
26 de Octubre, 2007 – WordPress 2.3.1 es liberada.
Y este 24 de Enero, WordPress 2.4 nos dejará con los ojos muy abiertos. Nuevo diseño del panel de administración, widgets en el dashboard y mucho más
Posted by planetawordpress on diciembre 23, 2007
Desde la aparición de WordPress 2.1, este CMS dispone de un sistema de programación de tareas, similar a Cron para Linux. Este sistema llamado wp_scheduler, lo vimos hace unos meses, y nos permitía definir eventos que serían lanzados al cumplirse la marca de tiempo definida para ellos. De esta forma, podríamos mediante plugins o hacks automatizar ciertas tareas que generalmente hacemos manualmente.
WordPress Popup Scheduler, es una de estas herramientas que nos permite definir una fecha y una apariencia a un popup que mostraremos a los usuarios al entrar en nuestra página.
Entre los datos solicitados podemos encontrarnos:
- Cuando mostrar el popup (siempre, solo a los nuevos visitantes, a la 3era, 4ta o 5ta visita o a una fecha determinada)
- En que lugar (en la Home, en la página a la que acceda el usuario, o una específica)
- Además, nos permite definir el aspecto de nuestro popup (tamaño, color de fondo, cabecera, mensaje, animación,..)
[Descargar][Demo]
Artículos relacionados

Posted by planetawordpress on diciembre 22, 2007
Ayer lanzaron la primera beta (y ya hoy han sacado la segunda beta para corregir un problema con la primera) de lo que será la próxima versión estable de WordPress, la 2.3.2. Ya se pueden ir viendo las principales novedades, casi todas entorno a la seguridad y la base de datos.
-
El ticket 5473 hace que no sean mostrados los errores de la base de datos cuando existe algún problema salvo que se defina en el fichero wp-config.php de la siguiente forma:
define('WP_DEBUG',true);
Lo cual es lógico ya que aunque no suelo ser amante de la seguridad basada en la oscuridad (no revelar información) un entorno en producción no tiene porque mostrar los errores que se producen.
-
El 5487 y el 5495 son dos fallos de seguridad catalogados como de importancia alta, el primero crea una situación en que las entradas futuras y los borradores pueden ser vistos y el segundo es una falta de comprobación: se puede apuntar a una base de datos inexistente y iniciar la instalación, la cual sigue su curso hasta que llega a un bucle sin fin.
-
El 5500 permite ahora crear una página de error de conexión a base de datos personalizada, sólo hay que crearla en wp-content/db-error.php. Con esto ya no habrá que tocar código
Por último toca hacer especial mención al ticket 5325, reportado hace tiempo y que finalmente parece que están metiendo mano. Este ticket comenta que todas las funciones habitualmente llamadas “para la plantilla” (the_title(), the_permalink()) van canalizadas a través de get_post() el cual hace cache del contenido.
El problema viene en que hace la cache antes de filtrar el contenido (”sanitizar”) y no después, éste filtrado lo hace con sanitize_post y sanitize_post_field. Dado que la cache se produce antes, estas funciones tienen que ejecutarse cada vez.
Según el autor del reporte, esas dos funciones para filtrar el contenido se llevan entre el 8% y el 15% (9.5% de media) del tiempo consumido en generar la página. Con la cache generada después del filtrado esos valores cambian a 0.1% – 0.2%. Lo cual es un cambio para nada despreciable.
Por último se ha cambiado en la rama de desarrollo la forma de autentificar usuarios y de generación de cookies, de ésto último dá más detalles Alex en una entrada de Buayacorp.
desarrollo web, seguridad, wordpress
Posted by planetawordpress on diciembre 22, 2007
Desde hace algunas horas ya se puede apreciar parte del nuevo diseño (cabecera y pie de página) prometido para WordPress 2.4:
