Insertar Reproductor en Categorías y sus respectivas entradas

En un primer tema en mi página, como insertar un reproductor de goear con reproducción automática; luego fui un poco más allá y expliqué cómo insertar un reproductor diferente en páginas de categorías específicas en WordPress, lo último me dejó se puede decir que me quedé con cierto aire de insatisfacción, ya que podía escuchar el reproductor correspondiente cuando me encontraba en la página de la categoría a la que le había asignado, sin embargo, esto no ocurría cuando visualizaba una entrada de una de esas categorías y sólo se escuchaba el reproductor general.

Investigando un poco más sobre el tema encontré en el codex de WordPress una función que me permitió realizar lo que deseaba, se trata de la función in_category.

...podemos utilizar esta función para realizar cosas diferentes, como por ejemplo insertar un header, footer o inclusive un diseño diferente por categoría o página (creo que todo esto se resumiría utilizando una función parecida pero para mostrar una hoja de estilos diferente según la página donde nos encontremos)...

La inclusión es sencilla, utilizamos is_home para insertar un código o función que se mostrará en la página principal; in_category('categoria-x') para insertar un código o función que se mostrará en la categoría especificada incluyendo sus entradas; por lo tanto, la función anterior que teníamos de la siguiente forma:

PHP:
  1. if(is_home())
  2. {
  3. include('radio.html');
  4. }
  5. elseif (is_category('naruto-sennin-shippuden'))
  6. {</p>
  7. include('naruto.html');
  8. }
  9. elseif (is_category('death-note'))
  10. {
  11. include('death-note.html');
  12. }
  13. elseif (is_category('mas-sabe-el-diablo'))
  14. {
  15. include('mas-sabe-el-diablo.html');
  16. }
  17. else
  18. {
  19. include('radio.html');
  20. } ?>

A esta función la modificamos, cambiando is_category por in_category, para quedar de esta forma:

PHP:
  1. if(is_home()) { include('radio.html'); } elseif (in_category('naruto-sennin-shippuden')) { include('naruto.html'); } elseif (in_category('death-note')) { include('death-note.html'); } elseif (in_category('mas-sabe-el-diablo')) { include('mas-sabe-el-diablo.html'); } else  { include('radio.html'); }

Este código nos permitirá mostrar un reproductor diferente por cada categoría especificada y en las entradas que le corresponden; para muestra pueden probar ingresando a las categorías: death-note, naruto-shippuden y, mas-sabe-el-diablo y a sus correspondientes entradas.

Espero que este tutorial les haya sido de ayuda, así que con un ejemplo específico podemos utilizar esta función para realizar cosas diferentes, como por ejemplo insertar un header, footer o inclusive un diseño diferente por categoría o página (creo que todo esto se resumiría utilizando una función parecida pero para mostrar una hoja de estilos diferente según la página donde nos encontremos), página e incluso en las entradas según la categoría a la que pertenece, sólo falta utilizar un poco la imaginación y ha echar a andar nuestros proyectos...

Comandos SQL para dominar comentarios y referencias en WordPress

Si quieres, por el motivo que sea, aplicar el tercer grado a los comentarios y los pingbacks/tracbacks en todas tus entradas publicadas, en vez de ir una a una, puedes hacerlo mediante comandos SQL desde phpMyAdmin.

Aquí tienes una serie de comandos a ejecutar:

Borrar todos los comentarios spam de golpe:

SQL:
  1. DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

Abrir los comentarios en todas las entradas:

SQL:
  1. UPDATE wp_posts SET comment_status = 'open';

Cerrar los comentarios en todas las entradas:

SQL:
  1. UPDATE wp_posts SET comment_status = 'closed';

Abrir los comentarios en todas las entradas, solo para usuarios registrados:

SQL:
  1. UPDATE wp_posts SET comment_status = 'registered_only';

Abrir/cerrar comentarios antes de una fecha concreta:

SQL:
  1. UPDATE wp_posts SET comment_status = 'closed' WHERE post_date <'2009-01-01' AND post_status = 'publish';

Esta query puedes personalizarla (de hecho debes hacerlo) para cambiar el comment_status como open, closed, o registered_only, dependiendo de si los quieres abrir, cerrar o abrirlos solo para los usuarios registrados. También, por supuesto, cambiar la fecha.

Activar/desactivar pingbacks y trackbacks:

Para activarlos:

SQL:
  1. UPDATE wp_posts SET ping_status = 'open';

Para desactivarlos:

SQL:
  1. UPDATE wp_posts SET ping_status = 'closed';

Activar/desactivar antes de una fecha concreta:

SQL:
  1. UPDATE wp_posts SET ping_status = 'closed' WHERE post_date <'2009-01-01' AND post_status = 'publish';

Igual que en el caso de los comentarios, puedes cambiar el comment_status y la fecha.

Activar/desactivar comentarios, pingbacks y trackbacks:

Si lo tienes claro, puedes incluso cerrar (o abrir) comentarios, pingbacks y trackbacks todo a la vez. Para ello usarías esta query:

SQL:
  1. UPDATE wp_posts SET comment_status = 'open', ping_status = 'open' WHERE comment_status = 'closed' AND post_status = 'publish';

De nuevo, debes jugar con los comment_status y ping_status. Y si, de nuevo, queremos jugar con fechas y definir antes de que fecha activar o desactivar todos los comentarios, pingbacks y trackbacks, podemos hacer un cambio en la query para conseguirlo:

SQL:
  1. UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE post_date <'2009-01-01' AND post_status = 'publish';


Jugando, de nuevo, con los "status" y la fecha.

¡Hala, apúntalo en favoritos, compártelo en Twitter, Facebook o donde más te guste!, estas cosas son para guardarlas y usarlas cuando se necesiten ¿no crees?

Se agradecen los parches

Westi anunció hace unos días un nuevo sitio desarrollado para que todo aquel que tenga una idea, un parche, que aportar para mejorar el “core” de WordPress lo pueda hacer de manera sencilla e inmediata: Patches Welcome.

La idea es facilitar el modo de colaborar con el desarrollo de WordPress mediante la aportación de lo que cada uno sienta que puede ofrecer.

Acorta los títulos

Si usas un tema abigarrado, de esos que están tan de moda últimamente, los de estilo revista (o magazine) seguramente te hayas dado de bruces más de una vez con el problema de la limitación de los títulos, pues tienes que controlarte o se descuadrará tu tema, no se verán bien los títulos y cualquier otro desastre estético.

Afortunadamente todo tiene solución en WordPress, y más con un poquito de código. Vamos a ver como hacerlo en solo 2 pasos … 

1. Añadiendo la función

Para empezar abrimos el fichero functions.php de tu tema y añadimos uno de los siguientes códigos:

Acortar títulos por palabras

PHP:
  1. //Acortando títulos por palabras
  2. function titulo_corto($after = '', $length) {
  3.     $mytitle = explode(' ', get_the_title(), $length);
  4.     if (count($mytitle)>=$length) {
  5.         array_pop($mytitle);
  6.         $mytitle = implode(" ",$mytitle). $after;
  7.     } else {
  8.         $mytitle = implode(" ",$mytitle);
  9.     }
  10.     return $mytitle;
  11. }

Acortar títulos por caracteres

PHP:
  1. //Acortando títulos por caracteres
  2. function titulo_corto($after = null, $length) {
  3.     $mytitle = get_the_title();
  4.     $size = strlen($mytitle);
  5.     if($size>$length) {
  6.         $mytitle = substr($mytitle, 0, $length);
  7.         $mytitle = explode(' ',$mytitle);
  8.         array_pop($mytitle);
  9.         $mytitle = implode(" ",$mytitle).$after;
  10.     }
  11.     return $mytitle;
  12. }

Guardas los cambios en el fichero.

2. Modificando el loop

Una vez elegido el tipo de acortamiento, con uno de los códigos anteriores, solo nos queda sustituir el código de impresión de los títulos en - normalmente - index.php. Buscamos algo similar a este código …

PHP:
  1. <h2 class="title"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">?php echo titulo_corto('...', 12); ?></a></h2>

y lo sustituimos por este otro:

PHP:
  1. <h2 class="title"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">?php echo titulo_corto('...', 12); ?></a></h2>

Dependiendo del código elegido te mostrará, en este ejemplo, 12 palabras o 12 caracteres, completando el resto con los socorridos puntos suspensivos '…'. Además, al colocar el cursor sobre el mismo nos mostrará el nombre completo (the_title()), para que no nos perdamos.

Cambiar el tema por defecto en tus sitios sin plugin

Si quieres cambiar el tema por defecto, ya sea para una instalación sencilla o para una instalación multisitio de WordPress 3.0, puedes hacerlo gracias a un código poco documentado pero que funciona a la perfección.

Solo tienes que añadir la siguiente línea al fichero wp-config.php del sitio o sitios en los que quieras definir un tema por defecto:

PHP:
  1. define('WP_DEFAULT_THEME', 'classic');

Lo único que tienes que elegir es el nombre de la carpeta del tema que quieres cargar por defecto, en el ejemplo la carpeta del tema Classic, algo genial para instalaciones nuevas personalizadas.

Contenido exclusivo para suscriptores al Feed

¡Gracias por seguirnos a diario!. Premiamos tu fidelidad ofreciéndote habitualmente contenidos exclusivos. Hoy puedes descargar:

Clic aquí para iniciar la descarga Guía para Administrar Wordpress

Multisitio en WordPress 3.0 a un clic

  1. Instalas y activas este plugin
  2. Vas a Ajustes -> Activar multisitio
  3. Rellenas la información que te pide
  4. Haces clic en el botón "Install"
  5. Vuelves a acceder a tu panel de WordPress

:)

Tutorial: crear una barra con los datos del autor

Si nuestro blog es unipersonal, es probable que no nos interese el siguiente tutorial. Pero si tenemos un en blog multipersonal, ya sea con una cantidad determinada de colaboradores  o abierto todo aquel que quiera colaborar (como éste), puede ser una buena idea mostrar de forma dinámica los datos del autor de la entrada actualizados al día.

Seguramente existe más de un plugin para realizar esto o algo por el estilo, pero como soy un fanático del hágalo usted mismo les voy a mostrar cómo hacerlo por código utilizando las mismas funciones de Wordpress.

Cabe aclarar que más allá del código php y html, seguramente cada uno necesitará adaptar un poco los estilos css a su theme. De todas formas sobre utilizar el theme por defecto de wordpress 2.9.2. La idea por supuesto es que tengan alguna idea de html, php y css, pero sino copiar y pegar el código final también vale. Comencemos entonces con el código:

Creemos primero el div que va a contener todo:

HTML:
  1. <!--div contenedor -->
  2. <div id="author-data">
  3. </div>

Vamos a comenzar mostrando el gravatar del autor. Para eso vamos a utilizar la función "get_avatar()" que recibe el id del usuario y el ancho en pixeles del avatar, y retorna el código html listo para insertar. A su vez para obtener el id del autor usaremos la función "get_the_author_meta()" que nos servirá para obtener casi cualquier información acerca del mismo, recibe como parámetro el dato a recuperar. Una vez obtenido el código lo imprimimos:

PHP:
  1. echo get_avatar(get_the_author_meta('ID'),80);

Ahora lo segundo seria agregar un título con un enlace al sitio web del autor, para eso utilizaremos la función "the_author_link()" que imprime el nombre publico del autor como link a su sitio.

HTML:
  1. <h4>Acerca de <?php the_author_link(); ?>:</h4>

Si pensamos en el SEO y preferimos que el enlace sea nofollow (o sea que los bots como el de Google no lo considere). Podriamos hacer lo siguiente:

PHP:
  1. <h4>Acerca de <a rel="nofollow" title="web del autor" href="<?php the_author_meta('user_url'); ?>;" <?php the_author(); ?></a>/h4>

Como verán usamos la función "the_author()" que imprime el nombre publico del author y la función "the_author_meta()" para obtener el link de su web.

Ahora utilicemos nuevamente la función "the_author_meta()" pero para obtener su descripción:

PHP:
  1. <p><?php the_author_meta('user_description'); ?>
  2. </p>

Si por cuestiones de diseño quisiéramos recortarla a no mas de una x cantidad de caracteres podemos usar la función "substr()" de php. Recibe la cadena a recortar, el punto de inicio y la cantidad de caracteres. Para recuperar la descripción usamos "get_the_author_meta()", como ya habrán deducido, cuando lo usamos con get_ adelante recuperamos el valor y cuando lo usamos sin el, directamente lo imprimimos. Por ejemplo si quisiéramos recortar la descripción a 140 caracteres:

PHP:
  1. <p>
  2. <?php
  3. //Con esto imprimimos los primeros 140 caracteres (a lo twitter) de la descripción
  4. echo substr( get_the_author_meta('user_description') , 0 , 140 );
  5. ?>
  6. </p>

Ahora la idea va a ser mostrar la cantidad de post del autor (una pavada que hacemos con la función "the_author_posts()") pero que a su vez funcione como un link a la pagina con los post del author. Esta página en un blog con permalinks "bonitos" tendría la siguiente forma tu-dominio.com/author/el-autor/. Pero como dependiendo de la configuración, esto puede cambiar, vamos a obtener primero el link a la página con los posts del autor.

Para nuestra tarea vamos a hacer uso de la función "get_author_posts_url()" que recibe el id del autor y devuelve el link que mostramos. Para obtener el id, volvemos a usar la función "get_the_author_meta()":

PHP:
  1. get_author_posts_url(get_the_author_meta('ID'));

Ya el link armado para mostrar todo lo que queríamos queda así:

PHP:
  1. <p>
  2. Ha publicado <a title="otros posts del autor" href="<?php echo get_author_posts_url(get_the_author_meta('ID')); ?>" <<?php the_author_posts() ?> posts </a>
  3. </p>

Para finalizar los datos a mostrar nos queda un detalle mas, los comentarios realizados por el autor. Dado que no existe (o más bien, yo no conozco) una función para obtener directamente la cantidad de comentarios de un autor, vamos a crear una, basándonos en el sql que Fernando me facilito tan amablemente hace un tiempo,que a su vez esta basado en el del plugin wordpress-plugin-nofollow-free:

PHP:
  1. //La idea es que esta función reciba el id del autor y devuelva la cantidad de comentarios que realizó.
  2. function get_the_author_comments($author_id){
  3.  
  4. /*Obtenemos algunos datos del autor que vamos a necesitar*/
  5. $nick = get_the_author_meta( 'nickname' , $author_id);
  6. $username = get_the_author_meta( 'user_login' , $author_id);
  7. $displayname = get_the_author_meta( 'display_name' , $author_id);
  8. $email = get_the_author_meta( 'user_email' , $author_id);
  9.  
  10. /*Usamos el objeto global $wpdb (algo así como una interfaz de wp para acceder a la base de datos)*/
  11. global $wpdb;
  12.  
  13. /*
  14. Armamos un sql para que cuente la cantidad de registros (o sea comentarios) cuando
  15. el id de usuario sea igual que el del autor, o cuando su email coincida con el campo comment_author_email o cuando su nombre de usuario o su nombre publico o su nickname coincidan con el campo comment_author.
  16. */
  17. $sql = "SELECT COUNT(*) AS contador FROM " . $wpdb-&gt;comments . " WHERE " .
  18. " user_id = $author_id " .
  19. " or comment_author_email = '$email' " .
  20. " or comment_author IN ('" . $displayname . "','" . $username . "','" . $nick . "')";
  21.  
  22. //retornamos el resultado
  23. return  $wpdb-&gt;get_var($sql);
  24.  
  25. }

Debido al hecho de que si los comentarios del blog son abiertos al que quiera comentar, nos vamos a encontrar con un mismo usuario que comenta con 2 email y nombres distintos o 2 usuarios que comentan con el mismo nombre; el resultado de la función no siempre va a ser exacto. Pero dentro de todo funciona bastante bien.

Ahora vamos a insertarla en el archivo functions.php de nuestro theme para poder utilizarla. En nuestro código vamos a utilizarla así (insertándola en el mismo párrafo que la de los posts del autor):

PHP:
  1. <p>
  2. Ha publicado <a title="otros posts del autor" href="<?php echo get_author_posts_url(get_the_author_meta('ID')); ?>"&gt; &lt;?php the_author_posts() ?&gt; posts &lt;/a&gt; | Ha realizado <?php echo get_the_author_comments(get_the_author_meta('ID')); ?> comentarios
  3. </p>

Todo nuestro código insertado dentro del div contenedor y puesto en forma de función por una cuestión de practicidad queda así:

PHP:
  1. <!--div contenedor -->
  2. <div><?php
  3. //le pongo show_author_data por ponerle un nombre
  4. function show_author_data(){ ?>
  5. <!--div contenedor -->
  6. <div>
  7. <?php echo get_avatar(get_the_author_meta('ID'),80); ?>
  8. <h4>Acerca de <a rel="nofollow" title="web del autor" href="<?php the_author_meta('user_url'); ?>"><?php the_author(); ?></a></h4>
  9. <p>
  10. <?php
  11. //Con esto imprimimos los primeros 140 caracteres (a lo twitter) de la descripción
  12. echo substr( get_the_author_meta('user_description') , 0 , 140 );
  13. ?>
  14. </p>
  15. <p>
  16. Ha publicado <a title="otros posts del autor" href="<?php echo get_author_posts_url(get_the_author_meta('ID')); ?>"> <?php the_author_posts() ?> posts </a> | Ha realizado <?php echo get_the_author_comments(get_the_author_meta('ID')); ?> comentarios
  17. </p>
  18. </div>
  19. <?php } ?>
  20. </div>

Si al colocar ambas funciones en su archivo functions.php empiezan a saltarles errores diciendo que las cabeceras no se han podido enviar, lo mas probable es que hayan dejado saltos de línea o espacios por fuera de las etiquetas de php.

Por último vamos a agregar a la hoja de estilos de nuestro theme algunos retoques para embellecer nuestra barrita (por lo menos para que en Kubrick se vea bien):

CSS:
  1. #author-data {
  2. color: #000000; /* o sea negro */
  3. font-size: 14px;
  4. background: #cccccc;
  5. width: 100%;
  6. margin: 10px 0px;
  7. padding: 3px;
  8. float: left;
  9.  
  10. /*si ponen lo siguiente su css no va a validar */
  11. border-radius: 5px; /*para opera*/
  12. moz-border-radius: 5px; /*para firefox */
  13. webkit-border-radius: 5px; /*para safari y chrome*/
  14. khtml-border-radius: 5px; /* para konkeror */
  15. box-shadow: 2px 2px 5px #000000; /*para opera*/
  16. -moz-box-shadow: 2px 2px 5px #000000;/*para firefox*/
  17. -webkit-box-shadow: 2px 2px 5px #000000;/*para safari y chrome*/
  18. -khtml-box-shadow: 2px 2px 5px #000000;/*para konkeror*/
  19. }
  20.  
  21. #author-data .avatar {
  22. margin: 4px;
  23. float: left;
  24. }
  25.  
  26. #author-data h4 {
  27. font-size: 17px;
  28. margin: 3px;
  29. }
  30.  
  31. #author-data p {
  32. margin: 0px;
  33. padding: 4px;
  34. }

En lo personal inserte la barrita arriba del título (llamando a la función show_author_data), pero cada uno colóquela donde quiera (siempre y cuando sea adentro del bucle).

Mi barrita en Kubrick se ve así (no se ve el gravatar porque al momento de tomar la captura me encuentro offline):

Para que funcione en Twenty Ten (el tema por defecto en wp 3.0) hay que armar una estructura un poco más compleja en cuanto a divs y css:

PHP:
  1. function show_author_data(){ ?>
  2. <!--div contenedor -->
  3. <div>
  4. <div><?php echo get_avatar(get_the_author_meta('ID'),80); ?></div>
  5. <div>
  6. <h4>Acerca de <a rel="nofollow" title="web del autor" href="<?php the_author_meta('user_url'); ?>"><?php the_author(); ?></a></h4>
  7. <p>
  8. <?php
  9. //Con esto imprimimos los primeros 140 caracteres (a lo twitter) de la descripción
  10. echo substr( get_the_author_meta('user_description') , 0 , 140 );
  11. ?>
  12. </p>
  13. <p>
  14. Ha publicado <a title="otros posts del autor" href="<?php echo get_author_posts_url(get_the_author_meta('ID')); ?>"> <?php the_author_posts() ?> posts </a> | Ha realizado <?php echo get_the_author_comments(get_the_author_meta('ID')); ?> comentarios
  15. </p>
  16. </div>
  17. </div>
  18. <?php } ?>

Y los css:

CODE:
  1. #author-data {
  2. color: #000000; /* o sea negro */
  3. font-size: 14px;
  4. background: #cccccc;
  5. margin: 10px 0;
  6. padding: 3px;
  7. float: left;
  8. clear: both;
  9. width: 100%;
  10.  
  11. /*si ponen lo siguiente su css no va a validar */
  12. border-radius: 5px; /*para opera*/
  13. moz-border-radius: 5px; /*para firefox */
  14. webkit-border-radius: 5px; /*para safari y chrome*/
  15. khtml-border-radius: 5px; /* para konkeror */
  16. box-shadow: 2px 2px 5px #000000; /*para opera*/
  17. -moz-box-shadow: 2px 2px 5px #000000;/*para firefox*/
  18. -webkit-box-shadow: 2px 2px 5px #000000;/*para safari y chrome*/
  19. -khtml-box-shadow: 2px 2px 5px #000000;/*para konkeror*/
  20. }
  21.  
  22. #author-data #author-gravatar {
  23. margin: 4px;
  24. float: left;
  25. margin: 4px -104px 4px 4px;
  26. }
  27.  
  28. #author-data #author-info {
  29. float: left;
  30. margin: 0 0 0 104px;
  31. }
  32.  
  33. #author-info h4 {
  34. font-size: 17px;
  35. margin: 2px;
  36. padding: 0;
  37. }
  38.  
  39. #author-info p {
  40. margin: 2px;
  41. padding: 4px;
  42. }

El resultado es el siguiente:

Palabras Finales

Espero que algún valiente haya llegado hasta acá. La idea del tutorial no era tanto hacer la barrita en si, sino colaborar a que de a poco muchos empiecen a perderle el miedo al código y no sean tan plugin dependientes.

Además tenía tiempo queriendo colaborar con algún post para esta bodega de conocimiento que es AyudaWordpress. Espero les sea útil.

PD: para el que no entendió un pomo pero igual quiere la barrita acá la tiene en forma de plugin(eso si, en versión súper minimalista, no esperen panel de control, opciones, ni nada por el estilo).

Como añadir imágenes de cabecera a TwentyTen

El nuevo tema por defecto de WordPress desde la versión 3.0 se llama TwentyTen o 2010, y una de sus características es que te permite cambiar la imagen de cabecera eligiendo entre una lista de imágenes predeterminadas o bien subiendo una imagen adicional, pero si quieres, por ejemplo, ofrecer para una instalación nueva una lista de imágenes distintas entre las que puedan elegir los usuarios, o quieres que la lista de imágenes de cabecera muestre unas de tu propia factura para cambiarlas de vez en cuando o en ocasiones (navidad, festividades, etc) también puedes hacerlo.

En realidad el proceso es muy sencillo, vamos a verlo … 

Primero abre el fichero functions.php del tema TwentyTen y localiza donde empieza esta sección:

PHP:
  1. // Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI.

A partir de ahí verás las "llamadas" a las imágenes por defecto, con su descripción:

PHP:
  1. register_default_headers( array(
  2. ‘berries’ => array(
  3. ‘url’ => ‘%s/images/headers/berries.jpg’,
  4. ‘thumbnail_url’ => ‘%s/images/headers/berries-thumbnail.jpg’,
  5. /* translators: header image description */
  6. ‘description’ => __( ‘Berries’, ‘twentyten’ )
  7. ),
  8. ‘cherryblossom’ => array(
  9. ‘url’ => ‘%s/images/headers/cherryblossoms.jpg’,
  10. ‘thumbnail_url’ => ‘%s/images/headers/cherryblossoms-thumbnail.jpg’,
  11. /* translators: header image description */
  12. ‘description’ => __( ‘Cherry Blossoms’, ‘twentyten’ )
  13. ),
  14. ‘concave’ => array(
  15. ‘url’ => ‘%s/images/headers/concave.jpg’,
  16. ‘thumbnail_url’ => ‘%s/images/headers/concave-thumbnail.jpg’,
  17. /* translators: header image description */
  18. ‘description’ => __( ‘Concave’, ‘twentyten’ )
  19. ),
  20. ‘fern’ => array(
  21. ‘url’ => ‘%s/images/headers/fern.jpg’,
  22. ‘thumbnail_url’ => ‘%s/images/headers/fern-thumbnail.jpg’,
  23. /* translators: header image description */
  24. ‘description’ => __( ‘Fern’, ‘twentyten’ )
  25. ),
  26. ‘forestfloor’ => array(
  27. ‘url’ => ‘%s/images/headers/forestfloor.jpg’,
  28. ‘thumbnail_url’ => ‘%s/images/headers/forestfloor-thumbnail.jpg’,
  29. /* translators: header image description */
  30. ‘description’ => __( ‘Forest Floor’, ‘twentyten’ )
  31. ),
  32. ‘inkwell’ => array(
  33. ‘url’ => ‘%s/images/headers/inkwell.jpg’,
  34. ‘thumbnail_url’ => ‘%s/images/headers/inkwell-thumbnail.jpg’,
  35. /* translators: header image description */
  36. ‘description’ => __( ‘Inkwell’, ‘twentyten’ )
  37. ),
  38. ‘path’ => array(
  39. ‘url’ => ‘%s/images/headers/path.jpg’,
  40. ‘thumbnail_url’ => ‘%s/images/headers/path-thumbnail.jpg’,
  41. /* translators: header image description */
  42. ‘description’ => __( ‘Path’, ‘twentyten’ )
  43. ),
  44. ‘sunset’ => array(
  45. ‘url’ => ‘%s/images/headers/sunset.jpg’,
  46. ‘thumbnail_url’ => ‘%s/images/headers/sunset-thumbnail.jpg’,
  47. /* translators: header image description */
  48. ‘description’ => __( ‘Sunset’, ‘twentyten’ )
  49. ),
  50. ‘waterfall’ => array(
  51. ‘url’ => ‘%s/images/headers/waterfall.jpg’,
  52. ‘thumbnail_url’ => ‘%s/images/headers/waterfall-thumbnail.jpg’,
  53. /* translators: header image description */
  54. ‘description’ => __( ‘Waterfall’, ‘twentyten’ )
  55. ),
  56. ‘mountain’ => array(
  57. ‘url’ => ‘%s/images/headers/mountain.jpg’,
  58. ‘thumbnail_url’ => ‘%s/images/headers/mountain-thumbnail.jpg’,
  59. /* translators: header image description */
  60. ‘description’ => __( ‘Mountain’, ‘twentyten’ )
  61. )
  62. ) );

Para que entiendas cada sección esto es lo que significan:

register_default_headers: La función que crea y muestra las cabeceras por defecto. Acepta varios parámetros.

name: Establece el valor del nombre de la cabecera. También aquí podemos definir valores y claves adicionales.

url: Ruta relativa a la imagen de cabecera. Date cuenta que la ruta por defecto es /images/headers/nombre_de_imagen.jpg

thumbnail_url: Ruta relativa a la miniatura de la imagen de cabecera, que verás en la página de administración del tema. La ruta por defecto es /images/headers/miniatura_de_imagen.jpg

description: Una descripción para la imagen que se muestra al pasar el cursor sobre la imagen de miniatura en el panel de opciones de cabecera del tema.

Más cosas que debes tener en cuenta:

  • Las imágenes de cabecera deben ser de un tamaño de 940×198 pixels, si son más grandes se redimensionan y si son más pequeñas se ajustarán también para rellenar esas dimensiones.
  • Las imágenes de miniatura pueden ser de cualquier tamaño pero el tamaño por defecto es de 230×48 pixels.
  • Las imágenes solo pueden estar en formato .jpg o se ignorarán y no se mostrarán.

Ahora bien, ¿como añado imágenes o cambio las existentes?, pues si has llegado hasta aquí ya habrás imaginado que sustituir las imágenes por defecto por las tuyas es tan sencillo como subir tus imágenes de cabecera a la carpeta adecuada y cambiar nombre, descripción y nombre del fichero.

Pero si quieres añadir más el proceso sería este:

Copias un bloque de imagen (para no tener que teclear mucho) del estándar del fichero functions.php, por ejemplo este:

PHP:
  1. ‘berries’ => array(
  2. ‘url’ => ‘%s/images/headers/berries.jpg’,
  3. ‘thumbnail_url’ => ‘%s/images/headers/berries-thumbnail.jpg’,
  4. /* translators: header image description */
  5. ‘description’ => __( ‘Berries’, ‘twentyten’ )
  6. ),

A continuación pegas el bloque copiado al final de la sección y sustituyes los parámetros para que se adapten a la nueva imagen y miniatura que hayas subido a las carpetas por defecto (o la que tu quieras), por ejemplo:

PHP:
  1. ‘fuego’ => array(
  2. ‘url’ => ‘%s/images/cabeceras/fuego.jpg’,
  3. ‘thumbnail_url’ => ‘%s/images/cabeceras/miniatura-fuego.jpg’,
  4. /* translators: header image description */
  5. ‘description’ => __( ‘Fuego, una imagen caliente para los días de frío’, ‘twentyten’ )
  6. ),

Guardas los cambios y ya tendrás una imagen nueva que cambiar fácilmente a golpe de clic.

Si te gusta ver las cosas más que leerlas en WPbegginer han creado un video que explica este mismo proceso, este:

Modifica (o elimina) “/author/” de la URL

Por defecto, WordPress nos crea una URL a cada autor, siguiendo esta estructura: http://tublog.com/author/usuario.

Habrá quienes deseen modificar esa sección, ya que es fea y, si hablamos de blogs hispanos, no encaja del todo bien. También habrá quienes deseen derechamente eliminar esa parte y dejar las URLs como http.//tublog.com/usuario. ¿La solución para ambos? Muy sencilla:

Tan solo añadimos esta linea a nuestro functions.php:

PHP:
  1. add_filter('init', create_function('$a', 'global $wp_rewrite; $wp_rewrite->author_base = "REEMPLAZA_AQUI"; $wp_rewrite->flush_rules();'));

Esta demás decirte que parte debes modificar del código, pero por si las moscas, reemplaza donde dice REEMPLAZA_AQUI por la base que desees: "perfil", "autor", "usuario", la que quieres. Solo recuerda no borrar las comillas del código y no insertar espacios ni caracteres especiales.

Ahora, si lo que deseas es eliminar completamente esa parte de la URL, simplemente borra el REEMPLAZA_AQUI y no pongas nada (ni siquiera espacios) de modo que quede así:

PHP:
  1. add_filter('init', create_function('$a', 'global $wp_rewrite; $wp_rewrite->author_base = ""; $wp_rewrite->flush_rules();'));

Obviamente, guarda todo y verás como las URLs de tus autores son ahora http://tublog.com/loquesea/usuario.

Contenido exclusivo para suscriptores al Feed

¡Gracias por seguirnos a diario!. Premiamos tu fidelidad ofreciéndote habitualmente contenidos exclusivos. Hoy puedes descargar:

Clic aquí para iniciar la descarga Guía para Administrar Wordpress

¿Te gustó este post? ¡Compártelo! Bitacoras.com TwitThis Facebook Meneame Google Bookmarks del.icio.us Live Technorati Ping.fm Wikio Turn this article into a PDF! E-mail this story to a friend! Print this article!

Acelera la carga de WordPress con zlib

Con 2 líneas de código en el header.php se puede comprimir la salida de WordPress hasta en un 75%. Mediante el uso de la tecnología de compresión zlib. Aprovechando esta característica de PHP se peude reducir notablemente el la velocidad de carga. Lo he probado con 6 sitios diferentes  y es notable el cambio.

Primero que nada debes verificar que tu servidor tenga la librería "zlib" activada, ya que sin ella no funciona el truco. Algunos Cpanel tienen la opción para activarla.

Luego, coloca el siguiente código en el header.php (antes del DOCTYPE)

PHP:
  1. <?php
  2. ini_set('zlib.output_compression', 'On');
  3. ini_set('zlib.output_compression_level', '1');
  4. ?>

¡Ya está!

En la página Port80Software.com puedes comprobar tu sitio para asegurarte de que está comprimiendo la salida.

Fuente: WpRecipes!

¿Te gustó este post? ¡Compártelo! Bitacoras.com TwitThis Facebook Meneame Google Bookmarks del.icio.us Live Technorati Ping.fm Wikio Turn this article into a PDF! E-mail this story to a friend! Print this article!

Get Adobe Flash playerPlugin by wpburn.com wordpress themes