Sofa Naranja ahora, con un 125% más de naranja

Posts con la etiqueta “WordPress

Destacando enlaces externos en WordPress

Hay pequeños detalles que hacen la vida de los visitantes de tu blog un poco más agradables. Uno de ellos es destacar de alguna manera qué enlaces son internos (es decir, conducen a otra página de tu web) y cuáles son externos (conducen a un sitio distinto).

Para Sofá Naranja quería añadir esta funcionalidad. Empecé a buscar plugins para WordPress, pero al cabo de un rato llegué a la conclusión de que ninguno me convencía demasiado, y acabé programando un hack que hace lo mismo.

El resultado que quería conseguir es este:

Enlace interno y externo

Los enlaces externos son del mismo color, pero les añado un pequeño icono a la derecha.

Para no meterme demasiado en las tripas del monstruo, y para hacer algo portable, decidí trastear un poco con JavaScript.

La idea de mi script es la siguiente:

  • Recorro todos los tags <a href...>
  • Miro si el enlace contiene la URL de mi blog.
  • Si no es así, le aplico un estilo CSS.

Aquí va la cosa:

var links = document.getElementsByTagName('a');
for(var i=0 ; i < links.length; i++){
    var link = links[i];
    if(link.href.indexOf('sofanaranja.com') == -1){
        //  es un enlace externo
        link.style.paddingRight = "10px";
        link.style.backgroundImage = "url(/images/aoutside.gif)";
        link.style.backgroundPosition = "right center";
        link.style.backgroundRepeat = "no-repeat";
    }
}

Lo que hago es asignar a la variable links todos los tags <a ...> de la página. Luego voy mirando si el href del enlace contiene la URL de mi blog con indexOf(), que devuelve -1 si no se ha encontrado la cadena.

Una vez localizado un enlace externo, sólo falta cambiar los atributos CSS. Esto se hace accediendo a los atributos con objeto.style.nombreDelAtributo

Hay que decir que los nombres de atributos en JavaScript no son exactamente iguales que en CSS. Imprescindible usar esta lista de conversión de propiedades CSS a atributos de JS.

Ahora viene la gran pregunta: ¿y cuándo se ejecuta esto?

Yo lo he puesto en el evento onload de body:

<script type="text/javascript">
    function init(){
        var links = document.getElementsByTagName('a');
        for(var i=0 ; i < links.length; i++){
            var link = links[i];
            if(link.href.indexOf('sofanaranja.com') == -1){
                //  es un enlace externo
                link.style.paddingRight = "10px";
                link.style.backgroundImage = "url(images/aoutside.gif)";
                link.style.backgroundPosition = "right center";
                link.style.backgroundRepeat = "no-repeat";
            }
        }
    }
</script>
<?php wp_head(); ?>
</head>
<body onload="init()">

Este cambio lo he puesto en el fichero header.php de mi tema de WordPress, para que funcione en todas las páginas del blog (incluyendo las que no son posts).

El icono es gentileza de web-graphics.com.


Publicado
23 November 2005 @ 11pm

Categorías
WordPress

WordPress 2.0 Beta

Pues eso… celebrando la inauguración de WordPress.com, WordPress anuncia la beta de WordPress 2.0 (lo que antes se llamaba WordPress-1.6-ALPHA, supongo)

Novedades… pues sin leer las Release Notes, aparentemente hay cambios cosméticos a tutiplén… mucho AJAX, muchos textfields con fuentes de 12 pixels y mucho botón gordo.

El nuevo sistema para escribir posts (con editor WYSIWYG que no funciona en Safari) es bastante más agradable de usar que en WP1.5 (y por fín le han puesto una opción para subir imágenes mientras escribes un post :)

La experiencia de uso es bastante más triste en Safari que en Firefox/Mozilla/Camino… es de esperar que en sucesivas revisiones se vayan corrigiendo estos fallitos.

Más cosillas nuevas… un plugin para hacer backups (por fin!) y otro para filtrar el SPAM en los comentarios… mejoras en el sistema de Permalinks, en la subida de ficheros (milagro! ahora se clasifican en carpetas!).

También se mejora la gestión de usuarios (el sistema de niveles numéricos era una auténtica pesadilla) y hay novedades en el gestor de temas (entre otras cosas, una previsualización de los temas, que se agradece bastante)

En definitiva… una versión muy interesante… habrá que someterla a sus torturas correspondientes :)


Publicado
7 July 2005 @ 11pm

Categorías
Plugins, WordPress

FlickR + WordPress

Pues nada, andaba yo felizmente por esos mundos de dios cuando se me ocurrió la brillante idea: ¿se podrá montar una galería de fotos en WordPress usando FlickR? (en realidad me hacía falta para un proyecto, pero es que contado así no tenía mucha gracia)

(more…)


Publicado
5 July 2005 @ 11pm

Categorías
Software, WordPress

Watermarking de imágenes con GD y PHP (versión WordPress)

Problema: añadir un watermark o sello a todas las imágenes de un blog de WordPress.

  • Solución 1: Abre Photoshop (o Fireworks, si eres un bicho raro como un servidor) y distráete una tarde entera poniendo marquitas.

  • Solución 2: GD + PHP. Y vete al cine o a algún bar, que hay gente muy interesante suelta por la calle.

    (more…)