Tema Recetas Reloaded para WordPress

Después de algunos ajustes, sobre todo en lo que tiene que ver con widgets y SEO, el tema de Recetas de Argentina está listo para su presentación en público.

Es un tema con un esquema de colores bastante llamativo y un layout inusual. Está pensado para albergar un skyscraper ancho de 160×600 en la primera columna de la izquierda sin que sea demasiado intrusivo. Esta disposición es muy efectiva aún cuando el aviso queda claramente separado del contenido.

Las páginas de archivo, categorías y autores tienen una organización que no es la estándar de WordPress, las entradas se presentan con el título en una lista por orden alfabético. Esto ayuda a limitar el contenido repetido dentro del sitio y lo “destemporaliza” un poco, algo que sirve para darle visibilidad a entradas antiguas, que en el formato original quedan bastante relegadas.

Screenshot

Los títulos y etiquetas meta están optimizados para buscadores de fábrica.

Si te interesa el tema podés ver una instalación de demostración, descarga y soporte.

apuntes & links

  • Video móvil en vivo.

    En Techcrunch: Justin.TV y Qik se asocian para ofrecer streaming de video en vivo desde el celular.

    [ Permalink | ]

  • Formulario de registro personalizado en WordPress.

    En Binary Moon: procedimiento para personalizar el aspecto del formulario de login en WP y lo mismo pero mediante un plugin.

    [ Permalink | ]

El problema de las imágenes grandes en WordPress

El manejo de imágenes es un tema a mejorar en WordPress. Los problemas aparecen sobre todo cuando se trata de imágenes grandes. El asunto es el siguiente, cuando la imagen sobrepasa los 3 megapixels WP no crea un thumbnail. La razón del límite es que la reducción de tamaño de la imagen usa la función imagecreatetruecolor, que usa mucha memoria, por lo que la manipulación de imágenes grandes haría colapsar a la mayoría de las instalaciones estandard de PHP.

El asunto es que esas imágenes son inusables dentro del panel de administración de WP y, en equipos no muy potentes, también hacen inusable el navegador de imágenes, además de ocupar innecesariamente espacio en el servidor. La solución obvia es no subir imágenes grandes, pero la cosa se complica cuando se trata de blogs multiautor, donde previsiblemente la mayoría de los autores, si no todos, tienen poca competencia en este asunto de los megapíxeles y demás.

Una solución más seria es limitar el tamaño de los archivos desde el mismo WP. Se puede hacer de una manera muy simple insertando en /wp-admin/upload-functions.php después de la línea 110, al comienzo del formulario para subir archivos, una única línea de código:

<input type="hidden" name="MAX_FILE_SIZE" value="120000" />

El valor 120000 es en bytes y admite, más o menos, hasta un jpg de 800×600 en buena calidad. Por supuesto, se puede probar con valores mayores o menores de acuerdo a la disponibilidad de memoria en el servidor y el uso que se le vaya a dar a las imágenes en el sitio. Lo que hace esta directiva es simplemente devolver un mensaje de error cuando el archivo sobrepasa el tamaño especificado.

Si nos ponemos exquisitos, queda el asunto de quela información en el mensaje de error es a la vez demasiado técnica e insuficiente:

El archivo a subir sobrepasa la directiva MAX_FILE_SIZE (tamaño máximo de archivo) especificada en el formulario HTML.

Lo mejor sería reescribirlo especificando el tamaño máximo del archivo, mostrando el camino a seguir y ofreciendo asistencia en el caso en que el usuario no pueda solucionar el problema por sus propios medios. Hay dos modos de arreglar el mensaje de error:

1. abrir /wp-admin/admin-functions.php y comentar la línea 1915:

__( "The uploaded file exceeds the MAX_FILE_SIZE directive that was especified in the HTML form." ),

Se la puede reemplazar por algo como lo que sigue:

__( "El archivo que intenta subir excede el m&aacute;ximo de 100kb admitido por el servidor. Int&eacute;ntelo nuevamente reduciendo el tama&ntilde;o del archivo o consulte al administrador del sitio (admin@misitio.com).");

2. la segunda manera implica editar el archivo de idioma de la traducción al español (es_ES.po) modificando la cadena en cuestión. (Ver http://codex.wordpress.org/Localizing_WordPress y http://wordpress-es.sourceforge.net/).

Registro de usuarios en WordPress MU

El problema

En un desarrollo basado en WordPress MU necesito que los usuarios:

  1. no puedan crear nuevos blogs;
  2. puedan registrarse en los blogs ya existentes;
  3. queden registrados como autores, con capacidad para publicar entradas, gestionar sus entradas y moderar los comentarios a sus entradas;
  4. estando logueados en un blog, puedan registrarse en otros blogs del sistema de la manera más sencilla posible (evitando, por ejemplo, nuevas verificaciones de la dirección de e-mail, etc.).

Lo que hay

En la instalación estándar de WPMU los nuevos usuarios tienen la alternativa de crear un nuevo blog en el sistema o de registrarse simplemente como usuarios. En el caso en que elijan registrarse sin abrir un blog, se los asigna como subscriptores al blog principal. No hay manera de que los usuarios se registren como otra cosa que subscriptores en un blog que no sea el blog principal del sistema. Esta lógica, diferente a la de la versión monoblog de WP, es señalada como un problema en diferentes hilos del foro de WPMU.

Una solución

Acá se puede ver una solución al problema del registro de usuarios en WordPress MU que va en la dirección de mis necesidades, pero, como es de esperar, no las satisface completamente.

Sigo el procedimiento de miteshashar adaptándolo cuando es necesario. Hay que modificar tres archivos en la instalación de WPMU:

- wp-includes/wpmu-functions.php
- wp-signup.php
- wp-activate.php

En wp-signup.php:

1. Comentar las siguientes funciones:

- show_blog_form
- validate_blog_form
- signup_another_blog
- validate_another_blog signup
- confirm_another_blog_signup
- signup_blog
- validate_blog_signup
- confirm_blog_signup

2. Reemplazar, a partir de la línea 245, el siguiente código:


<tr>
<th scope="row" valign="top">&nbsp;</th>
<td>
<p>
<?php if( $active_signup == 'blog' ) { ?>
<input id="signupblog" type="hidden" name="signup_for" value="blog" />
<?php } elseif( $active_signup == 'user' ) { ?>
<input id="signupblog" type="hidden" name="signup_for" value="user" />
<?php } else { ?>
<input id="signupblog" type="radio" name="signup_for" value="blog" <?php echo $signup[ 'blog' ] ?> />
<label for="signupblog"><?php _e('Gimme a blog!') ?></label>
<br />
<input id="signupuser" type="radio" name="signup_for" value="user" <?php echo $signup[ 'user' ] ?> />
<label for="signupuser"><?php _e('Just a username, please.') ?></label>
<?php } ?>
</p>
</td>
</tr>

por este otro:

<input id="signupblog" type="hidden" name="signup_for" value="user" />

Esto fuerza la registración como usuario y elimina la alternativa entre abrir un blog u obtener un nombre de usuario.

3. Esto sigue.