RSS Cachuco Flickr Cachuco Twitter Cachuco Facebook Cachuco Curriculum en LinedIn Juan José Cacho

De los minipost a los Asides en WordPress

31 de May de 2008 en Blog, Informática » Deja un comentario

Que para mi viene a ser lo mismo. Hace unas semanas empezábamos a probar el tema del RMD y los minipost distribuidos, bueno, finalmente no le e encontrado demasiada utilidad, más que nada por que la red era de dos personas, así que me he pasado a los “asides” como los llama wordpress, que es lo mismo, pero sin ser distribuidos.

El funcionamiento básico es que mediante unas pocas líneas de código en el archivo index.php se consigue diferenciar los post según sus categorías. Es decir, si un post pertenece a una categoría, este se publicará con un entorno gráfico -mediante el style.css- determinado, mientras que si no pertenece a esa categoría se publicará de forma normal.

Aquí tenéis la información necesaria desde el codex de wordpress para incluir asides, de todas formas os voy a contar un poco lo que yo he hecho, que es lo mismo, solo que con dos categorías “especiales”.

En el blog yo tengo, por un lado los minipost, que todos conocéis, que salen en la categoría RMD, los del recuadro de rayas rojo. Pero también -aunque todavía no he publicado nada- otra categoría con un formato diferente.

Lo primero que hay que hacer es saber el número que ha dado wordpress a la categoría que quieres diferenciar, simplemente te vas a Manage/Categories/ y al ponerte encima de la categoría te saldrá el enlace real -no por su nombre-, por ejemplo, a mi me sale lo siguiente:

http://www.cachuco.com/…/categories.php?action=edit&cat_ID=567

pues el 567 es el código necesario. Luego debemos editar el archivo index.php de la carpeta donde tengas guardado el tema que usas y hacemos lo siguiente:

Buscamos el siguiente bucle:

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

Lo comentamos de la siguiente manera:

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

Incluimos el siguiente código a continuación:

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

Después incluimos el código que diferenciará la categoria:

<?php if ( in_category(567) && !is_single() ) : ?>
<ul class="asides">
<li id="p<?php the_ID(); ?>">
<?php echo wptexturize($post->post_content);?>
<span>
<?php comments_popup_link('(0)', '(1)',
'(%)')?> <a href="<?php the_permalink(); ?>"
title="Permalink: <?php echo
wptexturize(strip_tags(stripslashes($post->post_title), '')); ?>"
rel="bookmark">#</a> <?php edit_post_link('(e)'); ?></span></li>
</ul>
<?php else: // If it's a regular post or a permalink page ?>

El número 567 lo tendréis que cambiar por el que corresponda con vuestra categoría.

Y finalmente buscais:

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

Y lo sustituis por esto:

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

Ya solo faltaría definir los parámetros de la clase “asides” en el style.css como os guste y así ya estaría todo correcto y funcionando. Ejemplo de css:

ul.asides li{
border:1px dashed #CC0000;
padding: 5px;
}

Yo tengo el código un poco cambiado, para incluir la fecha y la imagen del avatar, si a alguien le interesa que se ponga en contacto conmigo y le hecho una mano.

Pero si lo queréis hacer para más de una categoría, habría que ampliar el bucle if de la siguiente manera.

Después del código para la primera categoría, donde aparece el número, y antes de esta linea:

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

Hay que volver a pegarle otra vez pero sin la linea anterior, pero con algún cambio. En lugar de if, sería elseif, y cambiaríamos también el numero de categoría. Además se cambiaría el formato de la clase, ahora usamos asides_2 para darle otro “toque2″.

<?php elseif ( in_category(567) && !is_single() ) : ?>
<ul class="asides_2">
<li id="p<?php the_ID(); ?>">
<?php echo wptexturize($post->post_content); ?>
<span><?php comments_popup_link('(0)', '(1)',
'(%)')?> <a href="<?php the_permalink(); ?>"
title="Permalink: <?php echo
wptexturize(strip_tags(stripslashes($post->post_title), '')); ?>"
rel="bookmark">#</a> <?php edit_post_link('(e)'); ?></span></li>
</ul>

Espero que os haya servido de algo.

Sin comentarios

Deja tu comentario