12

Cómo implementar asides en un blog con WP

Los asides son esas anotacione breves, generalmente con enlaces interesantes, que intercalamos entre los posts normales de blogpocket. A petición de algunos de mis lectores y como también los implementaremos en el nuevo eCuaderno, les explico aquí cómo se hace. Resumiendo:

  1. Crear una categoría llamada “asides”. Apuntar el ID.
  2. Modificar el index.php de la plantilla.
  3. Publicar el aside como si fuera un post cualquiera, simplemente asignándole la categoría “asides”.

Lo primero es crear una categoría denominada, por ejemplo, “asides”. Yo la llamo “blogpocket links”, pero para gustos están los colores. Anótese el número identificativo con el que WP la crea (el llamado ID).

El truco consiste en modificar el script index.php de la plantilla activa para que cuando WP vaya a mostrar un post, asociado a la categoría “asides”, lo muestre de una forma distinta a como lo hace si la categoría es cualquier otra. Si ustedes no quieren que aparezca “asides” en la lista de categorías, se puede eliminar fácilmente pues la función de WP que lo lleva a cabo contempla el parámetro para no visualizar ciertas categorías.

Hay que encontrar la siguiente línea en index.php y comentarla:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Comentarla de la siguiente forma:
<?php //if (have_posts()) : while (have_posts()) : the_post(); ?>

Aunque también la pueden encontrar de la siguiente forma (les muestro las líneas ya anuladas):

<?php //if (have_posts()) : ?>
<?php //while (have_posts()) : the_post(); ?>

Y, justo debajo, añadir lo siguiente:

<?php
if ($posts)
{
function stupid_hack($str)
{
return preg_replace(’|</ul>\s*</ul class=”linklog”>|’, ”, $str);
}
ob_start(’stupid_hack’);
foreach($posts as $post)
{
start_wp();
?>

La siguiente línea debería ser la instrucción que muestra la fecha del post. Es decir, ésta:

<h2 class=”date-header”><?php the_time(’j-n-Y’) ?></h2>

Pues justo encima de ella, hay que incluir lo que viene a continuación:

<?php if ( in_category(67) && !is_single() ) : ?>

    < li id=”p< ?php the_ID(); ?>”>< ?php echo wptexturize($post->post_content); ?>  
    <small>< ?php comments_popup_link(’Sin comentarios »’, ‘1 comentario »’, ‘% comentarios »’); ?></small>  < a href=”< ?php the_permalink(); ?>”
    title=”Enlace permanente: < ?php echo wptexturize(strip_tags(stripslashes($post->post_title), ”)); ?>”
    rel=”bookmark”>#< /a>< /li>

< ?php else: // If it’s a regular post or a permalink page ?>

El anterior bloque de sentencias escribe el aside, por lo que pueden personalizarlo como quieran. Supongan que “67″ es el ID asignado por WP al crear la categoría de los asides. El bloque anterior es el que tengo yo en blogpocket.

Finalmente, al final de index.php hay que sustituir:

<?php endwhile; else: ?>
<p><?php _e(’Sorry, no posts matched your criteria.’); ?>
<?php endif; ?>

Por lo siguiente:

<?php endif; // end if in category ?>
<?php
}
}
else
{
echo ‘<p>Sorry no posts found.</p>’;
}
?>

En blogpocket lo tenemos de la siguiente forma:

<?php endif; // end if in category ?>
< ?php
} ?>
< div class=”navigation”>
< div class=”alignleft”>< ?php posts_nav_link(”,”,’« Posts anteriores’) ?>< /div>
<div class=”alignright”>< ?php posts_nav_link(”,’Posts siguientes »’,”) ?>< /div>
< /div>
< < ?
}
else
{ ?>
< h2 class=”center”>No encontrado< /h2>
< <p class=”center”>< ?php _e(”Lo siento, pero busca algo que no tenemos.”); ?>< /p>
< ?php include (TEMPLATEPATH . “/searchform.php”); ?>
< ? } ?>
</p>

Y eso es todo. ¡A disfrutar de sus asides!.

También puedes leer:

Si te ha gustado el post, no olvides suscribirte a nuestro feed RSS





12 Comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

  1. Antonio, eres un maestro. Gracias por responder a mi consulta de la mejor manera.
    Un abrazo desde Argentina!

    Comentario por Egg McMuffin — September 23, 2005 #

  2. ¿Y estas cositas funcionarían también en Drupal? O:)

    Comentario por tintachina — September 23, 2005 #

  3. No conozco Drupal, pero al ser PHP supongo que se podrá tocar igual.

    Comentario por blogpocket — September 23, 2005 #

  4. Qué bueno, pero qué bueno. A ver cuando puedo dedicar un rato a esto !!!

    Comentario por mg ; ) — November 3, 2005 #

  5. Ojala lo pueda implementar en blogsome.com y wordpress. De todos modos gracias nuevamente

    Comentario por Gilberto — November 5, 2005 #

  6. Ojo con las comillas y los espacios en el código :P

    Comentario por felipe.lavin — August 6, 2006 #

  7. [...] Como implementar asides en tu blog [...]

    Pingback por Montando Mini Posts en nuestro Blog | aNieto2K — July 10, 2008 #

  8. En la versión 2.6 de Wordpress no te muestra el id de la categoría, como puedo averiguarla?

    Comentario por Cristo — July 25, 2008 #

  9. Si la muerta Cristo: anda a administrar>categorias>(aqui la categoria que quieras ver) y dale clic al link y ahi en el ulr sale el numero de categoria.

    Ahora una pregunta Antonio a que se refieren con “Hay que encontrar la siguiente línea en index.php y comentarla:” Comentar = reemplazar o que? disculpen que no entienda mucho de esto.

    Comentario por Maxi — July 28, 2008 #

  10. Maxi, “comentarla” significa anularla. Es decir, poner delante las dos barras inclinadas (”//”).

    Comentario por Antonio Cambronero — July 28, 2008 #

  11. no maxi comentar es como lo hiciste con anterioridad
    picar el botn que dice comentar, jejejeje claro que si

    Comentario por victor — August 4, 2008 #

  12. Hola

    Solo un par de dudas, en mi theme no aparece esto

    Lo que mas se le parece es esto

    Lo reemplazo?

    Comentario por Jose Perez — September 10, 2008 #

Dejar un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tanto el autor de este blog, Antonio Cambronero, como sus cobloguers, hacen devolución expresa del contenido de sus posts al Dominio Público
CMS: WordPress - Tema basado en GimpStyle diseñado por Horacio Bella - Hosting: Ferca Network
Recibir las actualizaciones por correo-e
Feeds de Entradas y Comentarios
Política de privacidad