Entradas etiquetadas como ‘WordPress’

Escrito por Iván Alonso el Lunes 21 de Diciembre de 2009

Hace ya unos meses que había comenzado a rediseñar esta página, pero me había quedado parado tras terminar la cabecera y un par de detalles más. He hecho un par de cosas nuevas y lo he traducido todo a un theme de WordPress, para poder ponerlo en pruebas en la página y así poder ir trabajando sobre algo visible.

Está en permanente construcción, como todo en Internet…  

Captura de pantalla 2009-12-21 a las 17.51.54.png

Escrito por Iván Alonso el Viernes 27 de Noviembre de 2009

Esto ha costado por el modo en que se manejan los strings, pero al final se ha conseguido.

Este post de WPRecipes explica cómo conseguirlo, pero el problema viene cuando en tu estado de Twitter se incluye algún enlace. En ese caso el enlace reconstruido no se verá correctamente ya que las comillas dobles aparecerán dos veces (“”), y se añadirá al inicio del enlace el nombre de tu propio dominio para intentar solucionarlo, por lo que tus enlaces siempre serán algo del tipo:

http://www.tudominio.com/"enlace/de/twitter"

Y eso, lógicamente, no funciona. Gracias a un comentario de Nick Heer en este otro post de Smashing Magazine, al respecto de este tema, conseguí llegar a un trozo de código escrito por él… pero que tampoco funciona correctamente.

Al final, la solución ha sido (y por el amor del espagueti volador, con comillas simples, que parece que la gente no sepa cómo funciona PHP):

function nb_parse_feed($feed)
{
    $stepOne = explode('<content type="html">', $feed);
    $stepTwo = explode('</content>', $stepOne[1]);
    $tweet = $stepTwo[0];
 
    $tweet = str_replace('&lt;', '<', $tweet);
    $tweet = str_replace('&gt;', '>', $tweet);
    $tweet = str_replace('&quot;', '"', $tweet);
    $tweet = str_replace('&amp;', '&', $tweet);
    $tweet = str_replace('&lt;a href', '<a href', $tweet);
    $tweet = str_replace('"&gt;', '">', $tweet);
    $tweet = str_replace('&lt;/a&gt;', '</a>', $tweet);
 
    return $tweet;
}
 
function nb_twitter_status()
{
    // Tu usuario de Twitter
    $username = 'neverbot';
    $feed = 'http://search.twitter.com/search.atom?q=from:' . $username . '&rpp=1';
    $twitterFeed = file_get_contents($feed);
    return nb_parse_feed($twitterFeed);
}

Y, donde lo necesites:

<?php echo nb_twitter_status(); ?>

Lógicamente, puedes cambiar los nombres de las funciones, yo he utilizado el prefijo nb porque las he incluido en un archivo de funciones comunes que tengo para los themes de WordPress, que incluyo con:

include_once('nb_funcs.php');
Escrito por Iván Alonso el Jueves 30 de Julio de 2009

Editando el archivo wp-config.php (generalmente en el directorio raíz de nuestra instalación) y añadiendo la siguiente línea:

define('WP_POST_REVISIONS', false);

Aunque no acabo de entender cómo es que esta opción no se incluye en el panel de administración.

Escrito por Iván Alonso el Martes 24 de Febrero de 2009
Múltiples gravatars con coauthors

Múltiples gravatars con coauthors

Un plugin muy interesante para utilizar en WordPress es coauthors, que extiende la funcionalidad del entorno para facilitar el incluir contenidos (posts, páginas, etc) en WordPress firmados por varios autores distintos. La funcionalidad para mostrar los nombres de los autores es muy sencilla:

<?php coauthors(); ?>

Y mostrará una lista de nombres separados por comas (y un separador de texto entre los dos últimos: and, y, etc). Si lo que necesitamos es algo un poco más complejo, como mostrar distintos tipos de enlaces, gravatars o cualquier otro dato que vayamos a extraer de cada autor por separado, podemos utilizar un iterador dentro del bucle the_loop del siguiente modo:

<?php
$i = new CoAuthorsIterator();
while($i->iterate()){
    echo get_avatar( get_the_author_email(), 46 );
}
?>

Obviamente, con el iterador podemos recorrer la lista para obtener el dato que queramos, en este caso yo lo he utilizado para extraer los diferentes avatares de cada usuario. El resultado final puede quedar como veis en la captura (uno de los autores no tiene gravatar seleccionado, tendré que obligarle a que se asigne uno). Actualizado: le he obligado a ponerse el avatar y ahora se ve mejor el efecto que buscaba:

Múltiples gravatars con coauthors (2)

Múltiples gravatars (2)

Escrito por Iván Alonso el Lunes 23 de Febrero de 2009

Apunte rápido sobre cómo mostrar las fechas en tu idioma utilizando php:

<?php setlocale(LC_ALL, 'es_ES.ISO-8859-15@euro'); 
echo strftime('%A %d de %B de %Y', strtotime(get_the_time('m/d/Y'))); ?>

Primero establecemos que nuestro idioma será es_ES (sólo con ese identificador ya sería suficiente, aunque aquí lo hemos especificado algo más), y después parseamos la fecha que nos devuelve get_the_time.

Actualizado: Acabo de darme cuenta de que esta forma únicamente es válida cuando estamos dentro de the_loop, y que get_the_time siempre nos devolverá la fecha del post en el que nos encontramos en ese momento. Para obtener la hora del servidor podemos utilizar funciones de php independientes de WordPress:

echo strftime('%A %d de %B de %Y', time());

La razón de ser de que esto funcione es que strftime sí respeta la localización especificada en setlocale.

Actualizado (II): Si con este mecanismo vuestras fechas se muestran traducidas pero en ocasiones muestran símbolos extraños (por ejemplo, la e acentuada de Miércoles), el problema puede estar debido a que estáis intentando escribir un código ISO-8859-15 dentro de una página cuya codificación es otra, por ejemplo UTF8. Solución: utilizad la misma codificación que la página.

<?php setlocale(LC_ALL, 'es_ES.UTF8'); 
echo strftime('%A %d de %B de %Y', strtotime(get_the_time('m/d/Y'))); ?>
Escrito por Iván Alonso el Viernes 20 de Febrero de 2009

He cambiado el widget por defecto para las nubes de tags incluido en WordPress por el plugin Configurable Tag Cloud (CTC), que me parece que queda algo mejor y tiene muchos más parámetros configurables, que siempre viene bien. Además de, como es obvio, un cambio (más) de theme… escogí uno cualquiera que fuera simple y lo he ido descomponiendo hasta dejarlo en lo más minimalista posible, como podéis ver. Aún tengo cosas por hacer, pero éste ya va a ser el definitivo.

Escrito por Iván Alonso el Miércoles 14 de Enero de 2009

Aunque el theme que utilicéis/desarrolléis para WordPress esté en el idioma de Cervantes, aún hay unas cuantas cosas que os seguirán apareciendo en inglés, como las fechas, los enlaces de metainformación (como Log in), y un largo etcétera. Y, por supuesto, todo lo que aparezca en el panel de control a la hora de editar, escribir posts, administrar usuarios y cualquier cosa que hagáis como administradores.

La solución es muy fácil: una opción es instalar WordPress directamente en el idioma que os interese, algo que podéis hacer descargándolo directamente de aquí, donde está la traducción oficial. Cada vez que aparece una nueva versión de WordPress aparecen rápidamente traducciones no oficiales que se pueden utilizar y son plenamente funcionales, aunque yo siempre he preferido esperar a que aparezca la de WordPress.org y usar esa.

La otra opción: en la misma página viene la guía de lo que hay que hacer si lo único que necesitáis es traducir una instalación ya existente de WordPress en inglés, que es tan fácil como:

  • Descargar el paquete de WordPress en tu idioma [enlace a la versión 2.7 en castellano] y descomprimirlo en alguna carpeta.
  • Copiar los archivos que hay en wp-content/languages a la misma carpeta de tu instalación en inglés de WordPress.
  • Editar tu archivo wp-config.php (que si no has cambiado nada estará en el directorio raíz de tu instalación de WordPress) y cambiar la línea:
    define('WPLANG', '');

    por

    define('WPLANG', 'es_ES');

Y con esto ya está funcionando. Extra-sencillo, extra-rápido.

Escrito por Iván Alonso el Lunes 15 de Diciembre de 2008

He vuelto a cambiar (otra vez) el tema del blog, pasando del antiguo yoghourt a Foliage (además una versión modificada). La verdad es que no acabo de encontrarme a gusto con ningún tema que no haya podido hacer desde cero, así que está claro que este será modificado intensamente hasta ir acercándose más a lo que tengo en mente.

Por supuesto, cualquier idea o comentario al respecto es más que bienvenida.

Escrito por Iván Alonso el Viernes 24 de Octubre de 2008

Actualizado el blog a WordPress 2.6.3, utilizando el sistema de actualizaciones automáticas de Dreamhost. Aprovecharé para comprobar si (todavía) sigue el mismo bug que están arrastrando versión tras versión y que sólo parece afectarnos a cuatro personajillos…

Actualizado: Sigue sin funcionar correctamente. Esta vez ya me he dado de alta en el trac de WordPress para anotar un comentario y ver si puedo echar una mano.

Actualizado un año después (cuando ya utilizamos WordPress 2.8.6): Seis meses después de que incluyera mis comentarios en el trac, alguien se puso a trabajar en ellos. Ahora hace ya siete meses que está solucionado, pero lo cierto es que tardaron mucho en arreglar algo que era bastante básico, desde cierto punto de vista…

Escrito por Iván Alonso el Martes 2 de Septiembre de 2008

La forma de añadir un enlace a la página de comentarios es mediante la función comments_popup_link, capaz de generar el enlace a la página que se mostrará mediante un pop-up (comments-popup.php) o la general de comentarios (comments.php).

La forma de que lo haga mediante las ventanas emergentes es incluyendo una llamada (en cualquier parte de la página, aunque suele hacerse en el head) a comments_popup_script. Los parámetros que recibe serán la altura y anchura de la ventana de comentarios, pero también dejará constancia de que ha sido llamada y de que los enlaces deben ser de una forma determinada.

Por tanto, si nuestro theme (por ejemplo, como lo tenía en www.neverbot.com) tiene activados los comentarios en ventana emergente, sólo debemos buscar dicha llamada a comments_popup_script y eliminarla para quedarnos con el comportamiento que deseamos.