Configurando múltiples asides y miniblogs
February 02, 06 by serumaxCada vez es más común encontrar en la blogosfera asides y minipost. Sirven tanto para mejorar el diseño de nuestro blog como para entregar información específica con un formato que sea visulamente reconocible y atractivo.
Su configuración suele ser muy sencilla, generalmente sólo necesitamos instalar un plugins y modificar levemente nuestra plantilla. Pero, dependiendo de lo que queramos hacer, en ciertos casos puede darnos más de un dolor de cabezas.
Intentaré explicar, paso a paso, cómo conseguir múltiples asides. Si sólo quieres uno, la guía vale igual.
Partiremos explicando que los asides generalmente son anotaciones breves intercaladas en nuestros post y que tienen un diseño diferente al normal. Técnicamente, podríamos decir que son una forma distinta de presentar ciertos post. Pero hay alguna variantes: el recuadro exclusivamente con titulares después del segundo o tercer post; el listado de post recientes en el sidebar y el miniblog.
Dicho lo anterior, vamos a la acción.
Lo primero que tenemos que preguntarnos es cuántos asides queremos implementar, para qué queremos uno y dónde lo queremos colocar. Teniendo esto claro procedemos a crear una categoría por aside. Así, por ejemplo, si queremos un miniblog, creamos la categoría “miniblog” y tomamos nota de lo número “id” asociado a ella. Para nuestro ejemplo será el id 10.
Creada la categoría procedemos a editar el archivo index.php de nuestra plantilla
set( ‘cat’, ‘-10′); // Agregamos esta línea antes del loop ?>
Lo que significa que estamos escondiendo del loop principal todos los post que escribamos en la categoría 10, que es la del miniblog. Dicho de otra forma, el loop mostrará todas las categorías menos la 10.
Si queremos más de un asides tendremos que hacer una modificación extra, puesto que WordPress por defecto nos permite quitar una sola categoría del loop. En una primera instancia, a la modificación del index.php de la plantilla quedaría de esta forma, agregando la categoría 11.
Pero para que esto funcione necesitamos editar el archivo $ROOT/wp-includes/classes.php
El trozo de código que buscamos es el siguiente:
$q['cat'] = addslashes_gpc($q['cat']);
if (stristr($q['cat'],’-')) {
// Note: if we have a negative, we ignore all the positives. It must
// always mean ‘everything /except/ this one’. We should be able to do
// multiple negatives but we don’t
$eq = ‘!=’;
$andor = ‘AND’;
$q['cat'] = explode(’-',$q['cat']);
$q['cat'] = intval($q['cat'][1]);
} else {
$eq = ‘=’;
$andor = ‘OR’;
}
$join = ” LEFT JOIN $wpdb->post2cat ON ($wpdb->posts.ID = $wpdb->post2cat.post_id) “;
$cat_array = explode(’ ‘,$q['cat']);
$whichcat .= ‘ AND (category_id ‘.$eq.’ ‘.intval($cat_array[0]);
$whichcat .= get_category_children($cat_array[0], ‘ ‘.$andor.’ category_id ‘.$eq.’ ‘);
for ($i = 1; $i < (count($cat_array)); $i = $i + 1) {
$whichcat .= ' '.$andor.' category_id '.$eq.' '.intval($cat_array[$i]);
$whichcat .= get_category_children($cat_array[$i], ' '.$andor.' category_id '.$eq.' ');
}
$whichcat .= ')';
if ($eq == '!=') {
$q['cat'] = '-'.$q['cat']; // Put back the knowledge that we are excluding a category.
}
Para reemplazarlo por el siguiente:
* Atención con las comillas simples y dobles, puede ser que al copiar y pegar no funcione y que necesite corrección manual. Haz una copia del archivo original por si te metes en líos que .
$q['cat'] = addslashes_gpc($q['cat']);
if (stristr($q['cat'],’-')) {
// Note: if we have a negative, we ignore all the positives. It must
// always mean ‘everything /except/ this one’. We should be able to do
// multiple negatives but we don’t
$eq = ‘!=’;
$andor = ‘AND’;
} else {
$eq = ‘=’;
$andor = ‘OR’;
}
$join = ” LEFT JOIN $wpdb->post2cat ON ($wpdb->posts.ID = $wpdb->post2cat.post_id) “;
$cat_array = explode(’ ‘,$q['cat']);
$whichcat .= ‘ AND (category_id ‘.$eq.’ ‘.abs(intval($cat_array[0]));
$whichcat .= get_category_children($cat_array[0], ‘ ‘.$andor.’ category_id ‘.$eq.’ ‘);
for ($i = 1; $i < (count($cat_array)); $i = $i + 1) {
$whichcat .= ' '.$andor.' category_id '.$eq.' '.abs(intval($cat_array[$i]));
$whichcat .= get_category_children($cat_array[$i], ' '.$andor.' category_id '.$eq.' ');
}
$whichcat .= ')';
Ahora donde queremos presentar nuestro aside ponemos lo siguiente:
while ($my_query->have_posts()) : $my_query->the_post();//Do the staff
endwhile;
?>
Lo que en español significa que estamos consultando a la BBDD solo por los 3 últimos post de la categoría “miniblog”. El “do the staff” será donde ponemos las tags de plantillas tales como the_permalink(); the_title(); the_author(); the_content(”); y comments_popup_link();.
Información relacionada:
WordPress asides, coldforged style
http://wordpress.org/search/the_loop
Anadir un miniblog en wordpress
http://wordpress.org/support/topic/37399
http://wordpress.org/support/topic/31304
On Asides by Photo Matt
1001 wordpression loops
Como implementar asides en un blog con wp
Technorati tags: Tutoriales, Asides, Miniblog
Tutoriales
Posts relacionados:

