Un pequeño hack para qTranslate

Para la gente que use qTranslate y tenga el problema de que el plugin se vuelve incompatible con WordPress por un par de días hasta que los desarrolladores lanzan la versión “fixeada” del plugin acá les dejo un pequeño hack que lo que hace es tratar de reactivar el plugin usando “fuerza bruta”. No siempre funciona, pero a mas de uno les puede llegar a sacar las papas del fuego.

Lo único que tienen que hacer es descargar el .zip y subir el contenido del mismo a la carpeta wp-content/plugins donde tengan instalado WordPress. No creo que libere ninguna otra versión del plugin, pero por las dudas pueden chequear las actualizaciones en mi colección de snippets.

Mostrar la última imagen subida de un post en WordPress

Antes, cuando quería mostrar la miniatura de una imagen subida en un post de WordPress usaba éste plugin, pero tuve un par de problemas en los últimos desarrollos y terminé optando por usar el siguiente snippet:

<?php
$args = array( 'post_type' => 'attachment', 'post_status' => null, 'post_parent' => get_the_ID() );
$attachments = get_posts($args);
if ($attachments):
$attachment = array_pop($attachments);
$thumb = wp_get_attachment_image_src( $attachment->ID, 'thumbnail');
?>
<a href="<?php the_permalink(); ?>"><img src="<?php echo $thumb[0]; ?>" /></a>
<?php
endif;
?>

Obviamente que debe estar adentro del loop para que funcione, ya que usa la función get_the_ID(). Espero que le sea de utilidad a alguien.

Fix al error de wp_tiny_mce_preload_dialogs en varios plugins de WordPress.


Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'wp_tiny_mce_preload_dialogs' was given

Es muy probable que al querer actualizar WordPress desde una versión anterior a la 3.2 hayan tenido un cartel de error con el mismo texto del que se detalla acá arriba. Esto es ocasionado ya que los chicos de WordPress le han cambiado el nombre al callback wp_tiny_mce_preload_dialogs por wp_preload_dialogs a secas. En caso de que estén manteniendo un plugin que utilice esta sentencia y quieran saber la solución acá les dejo la solución que yo encontré. Simplemente consiste en chequear la versión en la que se está corriendo el plugin, y dependiendo de cuál sea utilizar uno u otro callback.


if (version_compare($wp_version, '3.2' , 'ge')){
add_action( 'admin_print_footer_scripts', 'wp_preload_dialogs',30);
} else {
add_action( 'admin_print_footer_scripts', 'wp_tiny_mce_preload_dialogs',30);
}

En fin, espero que les haya servido de algo el tip, decidí escribirlo en el blog ya que no encontré la solución por ningún lado, más allá del ticket de soporte en el sitio oficial de WordPress.