Ulzurrun de Asanza i Sàez

Tag: WordPress 2.7

Modifica la pestaña de ayuda de WordPress

Ayuda contextual modificada
Ayuda contextual modificada

En WordPress 2.7 se añadió un nuevo elemento al Panel de Administración: la pestaña de ayuda / ayuda contextual. Esta pestaña ofrece algo de información en las páginas de edición de artículos o en el escritorio, pero no sirve de mucho en las páginas de los plugins. Esto se debe a que para poder dar ayuda sobre nuestro plugin debemos recurrir a los filtros, sin embargo el filtro que afecta a la ayuda contextual no aparece en la documentación.

No obstante, una vez conocemos el nombre del filtro, que por cierto es contextual_help, es realmente fácil modificar el contenido, aunque debemos tener cuidado y prestar atención a las ocasiones en las que añadimos nuestra función al filtro, ya que nos descuidamos podemos hacer que la ayuda de nuestro plugin aparezca en todas las páginas, y esto no es lo que queremos.

Para añadir nuestra función sólo cuando se accede a la página de nuestro plugin debemos recurrir a una acción, llamada load-X, donde X es la página de nuestro plugin (en realidad puede ser cualquier página del Panel de Administración). El valor de X debe ser el que devuelve la función add_submenu_page (o add_N_page) para que se aplique correctamente la función.

Dicha la teoría, pasemos a la práctica:

[php]
// Añadimos un enlace al menú
$pagina = add_submenu_page(‘wp-carousel’, ‘Carousel Z’, ‘Carousel Z’, ‘administrator’, ‘edit-carousel’, ‘wp_carousel_carousel_options_page’);

// Modificamos la pestaña de ayuda
add_action(‘load-‘.$pagina, ‘wp_carousel_custom_help_tab’);

// Esta función añade la segunda función al filtro
function wp_carousel_custom_help_tab() {
// Añadimos al filtro
add_filter(‘contextual_help’, ‘wp_carousel_custom_help_tab_filter’);
}

// Esta función cambia el contenido que se muestra
function wp_carousel_custom_help_tab_filter($help) {
echo "<h5>".__(‘WP Carousel’s Quick Help’, ‘wp_carousel’)."</h5>"; // Nuevo contenido
echo "<p>".__(‘You can find help here, here and here’, ‘wp_carousel’).".</p>"; // Nuevo contenido
printf ("<p>".__(‘Please, fill up <a href="%s">this survey</a> in order to improve WP Carousel’, ‘wp_carousel’).".</p>", WP_CAROUSEL_SURVEY); // Nuevo contenido
echo $help; // Imprimos también el contenido que hay por defecto
}

[/php]

Como podéis ver, el funcionamiento es bastante sencillo.

PD: Sí, este código es parte de WP Carousel 0.5. Hacer uso de la pestaña de ayuda contextual es una de las novedades de la próxima versión, aunque es una de las novedades menos interesantes…


Otra solución al Administrador Fantasma de WordPress

Vía AyudaWordPress descubro una solución alternativa al plugin que propuse ayer y probablemente más eficaz. Se trata de otro plugin creado por _ck_ que cierra la conexión a las páginas con URLs que contengan eval o base64 siempre que tengan más de 255 caracteres.

Para instalarlo basta con poner el siguiente código en un archivo .php, subirlo a la carpeta plugins (dentro de wp-content) y activarlo desde el Panel de Administración de WordPress.

[php]
<?php
/*
Plugin Name: Block Bad Queries
*/

if (strlen($_SERVER[‘REQUEST_URI’])>255 ||
strpos($_SERVER[‘REQUEST_URI’],"eval(") ||
strpos($_SERVER[‘REQUEST_URI’],"base64")) {
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
}
?>
[/php]

Esta solución no estra en conflicto con el plugin que publiqué ayer, por lo que si usando sólo uno de los dos no os sentís del todo seguros, podéis activar ambos.

PD: Parece que al contrario de lo que pensaba, WordPress 2.8.4 no se ve afectado por este error, por lo que si tenéis WordPress actualizado no hace falta que os calentéis la cabeza con el tema de los Administradores Fantasmas. De todos modos, ambos plugins deberían funcionar sin problemas en WordPress 2.8.4, por lo que si aún así no os sentís seguros, dejadlos activados.


Solución temporal al problema del Administrador Fantasma de WordPress

Vía AyudaWordpress descubro un error que afecta a todas las versiones de WordPress (incluída la actual) que permite a un usuario con malas intenciones crear una cuenta de administrador mediante una inyección SQL a la Base de Datos de WordPress, lo que se traduce en que un hacker puede hacerse con el control del blog.

Mientras se arregla este problema, yo he creado una solución algo radical y temporal en formato de plugin. Bien, mi solución es la siguiente: Se le dice al plugin el número de administradores que debería haber. El plugin analiza la tabla de usuarios, y si detecta más usuarios administradores (ojo, sólo administradores) de los que debería haber, te muestra una lista con las IDs y los nombres de usuario de probables Administradores Fantasmas (las últimas cuentas de usuarios administradores).

Un ejemplo práctico: Tenemos 10 usuarios, con ID 1, 2, 3, 4, 5, 6, 7, 8, 9 y 10. Los usuarios con ID 1 y 3 son administradores, mientras que el usuario con ID 9 es un Administrador Fantasma. El plugin te propondrá borrar al usuario con ID 9. Bien, si en lugar de ser el usuario con ID 9 el Administrador Fantasma fuese el usuario con ID 2, te propondría borrar al usuario con ID 3. Como veis no es perfecto, pero un método sencillo para eliminar probables fantasmas.

Si se ha detectado algún probable Administrador Fantasma, se mostrará la opción de eliminarlo de la Base de Datos. Otra opción que permite es que elimine automáticamente a los Administradores Fantasmas cada vez que se carga una página del blog (se añade la función de borrado a wp_head). Este método es bueno si sólo hay un administrador y no queremos tener que comprobar manualmente los probables fantasmas.

Para un análisis más fiable, os recomiendo seguir los siguientes pasos:

  1. Haced una copia de seguridad de la Base de Datos de WordPress y exportad los artículos, las páginas y los comentarios del blog.
  2. Cambiad los permisos de todos los adminsitradores normales de vuestro blog a suscriptores excepto al primer administrador de la Base de Datos. El primer administrador de la Base de Datos suele tener la ID 1, ése es el administrador al que no deberéis modificar los permisos, a los demás administradores reales cambiadles los permisos a suscriptor. Así evitaréis falsos positivos y el plugin no detectará a vuestros administradores reales como fantasmas.
  3. Instalad el plugin e introducid 1 en el campo de administradores del blog de la página de opciones del plugin (que está dentro de la página de usuarios). A continuación recargad la página y fijáos en el resultado del análisis que podéis ver en la parte inferior de la página.
  4. Si veis que hay algún probable Adminsitrador Fantasma, comprobad realmente que no es ninguno de los administradores reales de vuestro blog y si realmente es un Administrador Fantasma, haced clic en el enlace que veréis al final de la página para borrar todos los usuarios que aparecen en la lista.
  5. Si el análisis os indica que no hay probables Adminstradores Fantasmas, felicidades, vuestro blog es seguro.

La opción de borrado automático de los usuarios tiene un par de problemas, para comenzar, eliminará todos los probables Administradores Fantasmas, por lo que un falso positivo puede ser irreversible. Por otro lado, este sistema borra sólo los datos de la tabla wp_users, y WordPress también almacena datos en la tabla wp_usermeta, por lo tanto quedará información. Lo más recomendable es volver a la página de opciones del plugin y borrar los Administradores Fantasmas desde el enlace que hay al final de la página.

La solución es temporal y no soluciona el problema, tan sólo lo evita. Es por esto que lo más recomendable es actualizar a la versión 2.8.5 de WordPress cuando sea liberado, ya que esta versión sí que tiene el problema solucionado.

Por último, podéis descargar el plugin desde aquí.

Edito: Parece que al contrario de lo que pensaba, WordPress 2.8.4 no se ve afectado por este error, por lo que si tenéis WordPress actualizado no hace falta que os calentéis la cabeza con el tema de los Administradores Fantasmas. De todos modos, ambos plugins deberían funcionar sin problemas en WordPress 2.8.4, por lo que si aún así no os sentís seguros, dejadlos activados.


Prepara tu WordPress para funcionar en móviles

Vía Anieto2k descubro una serie de plugins para adaptar WordPress a dispositivos móviles sin mucho esfuerzo.

De hecho, ya he añadido el plugin MobilePress al blog para tener una versión optimizada para móviles y es muy fácil de instalar y usar.

Basta descargar el plugin y subirlo a la carpeta wp-content de nuestro blog o instalarlo mediante el instalador automático que incluye WordPress 2.7 (así lo he instalado yo). Una vez activado el plugin, tendremos disponible una versión del blog adaptada para estos dispositivos.

WordPress 2.7.1 listo para descagar

WordPress 2.7.1 ya está disponible para descargar.

Esta versión soluciona 68 tickets.

Puedes ver el anuncio oficial o descargarlo, aunque puedes actualizar automáticamente desde Herramientas -> Actualizar (Tools -> Upgrade).


Estilos CSS para los comentarios de WordPress 2.7

Vía anieto2k descubro los estilos CSS básicos para diseñar los comentarios en WordPress 2.7.

ol.commentlist {}
ol.commentlist li {}
ol.commentlist li.alt {}
ol.commentlist li.bypostauthor {}
ol.commentlist li.byuser {}
ol.commentlist li.comment-author-admin {}
ol.commentlist li.comment {}
ol.commentlist li.comment div.comment-author {}
ol.commentlist li.comment div.vcard {}
ol.commentlist li.comment div.vcard cite.fn {}
ol.commentlist li.comment div.vcard cite.fn a.url {}
ol.commentlist li.comment div.vcard img.avatar {}
ol.commentlist li.comment div.vcard img.avatar-32 {}
ol.commentlist li.comment div.vcard img.photo {}
ol.commentlist li.comment div.vcard span.says {}
ol.commentlist li.comment div.commentmetadata {}
ol.commentlist li.comment div.comment-meta {}
ol.commentlist li.comment div.comment-meta a {}
ol.commentlist li.comment * {} - (p, em, strong, blockquote, ul, ol, etc.)
ol.commentlist li.comment div.reply {}
ol.commentlist li.comment div.reply a {}
ol.commentlist li.comment ul.children {}
ol.commentlist li.comment ul.children li {}
ol.commentlist li.comment ul.children li.alt {}
ol.commentlist li.comment ul.children li.bypostauthor {}
ol.commentlist li.comment ul.children li.byuser {}
ol.commentlist li.comment ul.children li.comment {}
ol.commentlist li.comment ul.children li.comment-author-admin {}
ol.commentlist li.comment ul.children li.depth-2 {}
ol.commentlist li.comment ul.children li.depth-3 {}
ol.commentlist li.comment ul.children li.depth-4 {}
ol.commentlist li.comment ul.children li.depth-5 {}
ol.commentlist li.comment ul.children li.odd {}
ol.commentlist li.even {}
ol.commentlist li.odd {}
ol.commentlist li.parent {}
ol.commentlist li.pingback {}
ol.commentlist li.pingback div.comment-author {}
ol.commentlist li.pingback div.vcard {}
ol.commentlist li.pingback div.vcard cite.fn {}
ol.commentlist li.pingback div.vcard cite.fn a.url {}
ol.commentlist li.pingback div.vcard span.says {}
ol.commentlist li.pingback div.commentmetadata {}
ol.commentlist li.pingback div.comment-meta {}
ol.commentlist li.pingback div.comment-meta a {}
ol.commentlist li.pingback * {} - (p, em, strong, blockquote, ul, ol, etc.)
ol.commentlist li.pingback div.reply {}
ol.commentlist li.pingback div.reply a {}
ol.commentlist li.pingback ul.children {}
ol.commentlist li.pingback ul.children li {}
ol.commentlist li.pingback ul.children li.alt {}
ol.commentlist li.pingback ul.children li.bypostauthor {}
ol.commentlist li.pingback ul.children li.byuser {}
ol.commentlist li.pingback ul.children li.comment {}
ol.commentlist li.pingback ul.children li.comment-author-admin {}
ol.commentlist li.pingback ul.children li.depth-2 {}
ol.commentlist li.pingback ul.children li.depth-3 {}
ol.commentlist li.pingback ul.children li.depth-4 {}
ol.commentlist li.pingback ul.children li.depth-5 {}
ol.commentlist li.pingback ul.children li.odd {}
ol.commentlist li.thread-alt {}
ol.commentlist li.thread-even {}
ol.commentlist li.thread-odd {}

Aunque el CSS está vacío, nos puede servir de base para diseñar los comentarios y así evitar tener que crear nuestra propia función personalizada.

Nota mental: A ver cuándo me pongo a arreglar los comentarios del blog… siempre se me acaba olvidando.


Personaliza al máximo la plantilla de comentarios de WordPress 2.7

Ayer, en anieto2k, publicaron un tutorial para adaptar los comentarios a WordPress 2.7 y personalizar la función de mostrar los comentarios, permitiéndonos crear estructuras personalizadas y dar un toque especial a los comentarios del blog.

Nota mental: A ver cuándo arreglo los comentarios del blog… no me gusta nada el diseño que tienen ahora, me gustaba más el anterior :-S .

Personaliza la estructura de los comentarios en WordPress 2.7

Una de las cosas que menos me gustaban de las betas y versiones candidatas de WordPress 2.7 era la poca personalización que había en los comentarios.

Sin embargo, desde la aparición de la versión final, y vía Anieto2k he descubierto un método para crear una función nueva para mostrar los comentarios, adaptable a las necesidades de cada momento y además teniendo que modificar sólo el theme, dejando el núcleo de WordPress “tranquilo”.

Podéis leer el tutorial de Andrés aquí.

WordPress 2.7 liberado

Ya está disponible WordPress 2.7 versión final, tan solo un día después de la RC2 del mismo.

Es muy recomendable actualizar a esta versión, que entre otras cosas incluye:

Podéis actualizar desde el Panel de Administración o descargar la versión 2.7 de WordPress desde aquí.

Por último os dejo un vídeo sobre esta versión:


WordPress 2.7 RC2

WordPress

WordPress 2.7 RC2 ya está disponible, aunque algo de retraso para evitar errores gordos y hacer un mejor WordPress.

Podéis leer el anuncio oficial y / o descargaros la versión candidata 2 de WordPress 2.7.