08 junio 2010

Mejorando WordPress con YSlow!

Gracias a Vladimir Prelovac que publicó en su blog un artículo muy interesante, descubrí otra manera más de mejorar la performance de los sitios que usan WordPress como plataforma. El tema está como siempre en reducir el tiempo de carga de los sitios para mejorar el SEO y la satisfacción de los visitantes.
Este es un truco muy sencillo y que no lleva más de cinco minutos. Manos a la obra:
  1. Primero que nada hacer una copia de seguridad del archivo .htaccess ubicado en la raíz del WordPress.
  2. Añadir las siguientes líneas al archivo.
    <FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf)$">
      <IfModule mod_expires.c>
        ExpiresActive on
          ExpiresDefault "access plus 30 days"
            </IfModule>
              Header unset ETag
                FileETag None
                  </FilesMatch>
                    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript application/x-httpd-php application/rss+xml application/atom_xml text/javascript

                    La explicación de como funciona todo esto es sencilla. Lo primero que hace es agregar los "expire headers" que Yahoo! recomienda en su "reglas" sobre performance, remueve los ETags y comprime el contenido de los archivos de texto que se le envían al browser. Y con eso tendría que alcanzar para subir un par de puntos en la puntuación del Yslow!

                    Hasta la próxima.-

                    PD: Más información pueden encontrar acá, y también en la documentación oficial de Apache.

                    02 junio 2010

                    Novedades en WordPress 3.0

                    Dos posts interesantes que salieron en los últimos días fueron "Lucky Seven" referido al último cumpleaños del software; y el anuncio del WordPress 3.0 Release Candidate. Por un lado que Wordpress cumpla 7 años ya es todo un hito, pero además comparten con nosotros otros números asombrosos. Diez millones de downloads de themes, 60 millones de downloads de plugins y más de 1.500 usuarios del su sistema Trac lo convierten en un proyecto más que exitoso.
                    Por otro lado, también están cerrando los últimos detalles para la versión definitiva de WordPress 3.0, que incluye algunas cosas como:
                    • los custom menus (más información), sin dudas una de los features más esperados junto con...
                    • los custom types! (un artículo muy bueno sobre esto)
                    • el merge del código de WordPress con el de WPMU, convirtiéndolo en multi sitio sin necesidad de instalar ningún plugin adicional.
                    • mejoras estéticas, bugs corregidos, etc. etc. etc.
                    Como siempre, la última versión se puede bajar desde acá. Y a esperar nomas que salga la Stable! Hasta la próxima.-

                    19 febrero 2010

                    Agregando widgets en WordPress a otro lugar que no sea el sidebar

                    Se pueden agregar widgets en WordPress a otro lugar que no sea la sidebar?
                    Sí que se puede. Para hacerlo, hay que modificar el archivo "functions.php" del theme que estemos usando, y donde existe un código similar a éste:
                    register_sidebar(array(
                    'name' => 'Sidebar 1',
                    'before_widget' => '<div id="%1$s" class="widget %2$s">',
                    'after_widget' => '</div>',
                    'before_title' => '<h2>',
                    'after_title' => '</h2>',
                    ));

                    Agregamos un par de líneas para que quede así:

                    register_sidebar(array(
                    'name' => 'Sidebar 1',
                    'before_widget' => '<div id="%1$s" class="widget %2$s">',
                    'after_widget' => '</div>',
                    'before_title' => '<h2>',
                    'after_title' => '</h2>',
                    ));
                    //La home también va a tener widgets ahora...
                    register_sidebar(array(
                    'name'=> 'Homepage',
                    'id' => 'homepage',
                    'before_widget' => '<div class="widget_box">',
                    'after_widget' => '</div>',
                    'before_title' => '<h3>',
                    'after_title' => '</h3>',
                    ));

                    Luego, vamos al archivo "index.php" de nuestro template y donde queramos agregar los widgets ponemos

                    <?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('Homepage') ) :
                    endif; ?>

                    y listo! Con este ejemplo agregamos una nueva zona en la Home page de nuestro blog para poner widgets. Ahora solo queda ir a las opciones de Apariencia dentro del administrador y mover los widgets que queramos a su correspondiente zona. Hasta la próxima!

                    16 febrero 2010

                    Haciendo funcionar la propiedad CSS :hover en IE

                    Bueno, después de varias horas tratando de solucionar un problemita del trabajo con un sitio en WordPress, me enteré gracias a Bernie Zimmerman que para que el Internet Exporer (versiones IE7 e IE8) le agregue un :hover por CSS a otra cosa que no sea un enlace (un tag "a"), hay que agregarle un DOCTYPE especial. Resulta que el DOCTYPE de una página indica que tipo de soporte CSS brinda el navegador. Asi que si uno quiere agregarle :hover a cualquier elemento y no solamente a los enlaces, hay que agregarle un "strict DOCTYPE" a la página. Por ejemplo:

                    !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"

                    Pero tampoco termina ahí! Porque lo que conviene es que esta línea sea la primera dentro del documento html, porque sino el IE tampoco la tiene en cuenta y sigue funcionando en el "quirks mode" en lugar del modo standard.