• RSS
  • Mapa del sitio
  • Proyecto Fotolog
  • Ideas de Bombero
  • Las Noticias de SRA
Sin Razón Aparente » Page 'Qué aprendí con Las Noticias de SRA II'

Qué aprendí con Las Noticias de SRA II

Sigo con la serie Qué aprendí con Las Noticias de SRA, en este post me voy a centrar en la presentación de las noticias, en el tema de wordpress vaya.

Ya había hecho mis pinitos tocando cositas del tema que utilizo en Sin Razon Aparente: la caja de los miniposts de arriba, la presentación de la categoría de IdB y alguna cosilla suelta más.

Pero ha sido con el tema de Las Noticias dónde me he enamorado de Wordpress, de su versatilidad, de su facilidad de manejo y sobre todo de su comunidad. Cuando empiezas a tocar cosas es cuando aprecias de verdad la importancia del codigo libre y valoras que un proyecto tenga una comunidad activa que lo respalde.

Porque al fin y al cabo, eso es de lo que va todo esto de lo que he estado hablando últimamente: la liberación del conocimiento y el desarrollo en comunidad fomentan la creatividad y la productividad.

En realidad toda la idea es muy simple, separar la información por categorías y subcategorías y presentarla en distintas capas. De más general a menos.

Como de momento no me siento con fuerzas como para empezar un tema de la nada, partí del tema que uso en el blog, aunque como siga tocándolo al final no lo va a conocer ni la madre que lo parió.

Para conseguir separar los posts según la categoría los chicos de Wordpress nos dan la herramienta de wp_query(), que lo que te permite es hacer tantos Loops como quieras con las características que necesites para cada uno de ellos. Es decir, si tienes bien ordenadita tu base de datos, clasificando los posts con un sistema que tenga sentido, el cielo es el límite. Por eso daba tanta importancia en el post anterior a que la información que traia Feedwordpress entrase de manera ordenada en la base de datos.

Lo que haríamos sería algo así:

<?php

$cat = new WP_Query('category_name=NombreCategoria&showposts=nºposts');
    while ($cat->have_posts()) : $cat->the_post();
?> 
    //aquí pondríamos lo que queremos mostrar para cada post.      

<?php endwhile; ?>

Lo que estamos haciendo es crear el objeto WP_Query, en este caso lo restringimos a posts de la categoria que le digamos en category_name, y el número de posts que queramos. En el agregador podeis ver que tengo puesto 5 para cada categoría.

Con el bucle while vamos mostrando el numero de posts que hayamos puesto de la categoría que elijamos.

La página de inicio consiste en cuatro bucles de estos, uno para cada categoría principal. De momento está hecho de forma manual, pero me gustaría programarlo para que fuese haciéndolo de forma dinámica, para no tener que tocarlo cada vez que añada una categoría. ¿Algún programador en la sala?¿alguien que me oriente como hacerlo?

Despues de estos bucles dejaremos al tema que haga lo que hacía normalmente.

<?php if(have_posts()){ ; ?>
    <?php if(is_home()){ ; ?>

//ponemos todo el rollo de los bucles de las noticias

    <?php }else{ ?>

//el resto de cosas que hace el tema

<?php }else{ ?>

//aquí pondrías lo que quieres que salga si no ha encontrado nada en la base de datos

<?php } ?>

Lo que estamos haciendo aqui arriba es lo siguiente: primero le preguntamos si hay posts que mostrar, si no hay, dará el mensaje que le pongamos y si hay pasamos a la siguiente pregunta: ¿estamos en la página principal? Si estamos mostrará las noticias con los bucles de los que hablamos antes, y sino pues hará lo que hacia el tema antes de que empezásemos a tocarlo.

Mientras que en la primera capa de información muestro los cinco primeros posts de cada categoría principal, en la segunda capa muestro los diez primeros posts de cada subcategoría, dependiente de las principales.

Es decir, en la página principal vemos las noticias agrupadas en lusomundo, hispamundo, anglomundo y asia. Si nos vamos a cualquiera de estas categorias veremos los posts de las subcategorias que lo componen. Por ejemplo, si nos vamos a lusomundo veremos las diez últimas noticias de Portugal, Brasil, Angola...

Para hacer esto podemos echarle, una vez más, un vistazo a lo que nos dice la gente de Wordpress . Lo que tenemos que hacer es un fichero por cada categoría que pondremos en la carpeta del servidor dónde tengamos el resto de ficheros del tema y que llamaremos category-nºdecategoría.php

En este fichero replicaremos lo que hicimos en el principal, pero con las subcategorías correspondientes. Es laborioso porque tienes que crear un archivo para cada categoría, pero en realidad tan sólo es copiar y pegar cambiando muy pocas cosas.

En la última capa de información veremos todos los posts de cada subcategorias, en mi caso los paises. Para esto no tenemos que hacer nada, pues en realidad Wordpress nos da la posibilidad de ver los posts que pertenecen a una categoría en concreto. Lo conseguimos usando la función get_category_link() en un enlace en el título de las subcategorias.

<h2> <a href="<?php echo get_category_link(11); ?>">Portugal</a></h2>

Así si pinchamos en el título Portugal, vamos a ver todas las noticias de esa subcategoría.

La verdad es que la parte de programar todo lo del tema de Noticias ha sido lo que más he disfrutado. Por la libertad que tienes al manejar el código de Wordpress, por que hay muchísima documentación que hace fácil encontrar lo que buscas, y porque como dice esta gente:

Code is Poetry

Ahora estoy currándome un poco todo lo que es la parte visual, para facilitar la lectura y hacerlo más usable. Ya os contaré.

Publicado en General
Etiquetas: ,

Leave a comment