15 May

Articulos relacionados por categoria y autor en WP

Excelente este código que me permitió en un nuevo proyecto que arrancamos con mi amigo JP mostrar post relacionados según el autor y según la categoría.

Busque plugins para Wordpress que cumplieran estas necesidades y no encontré, asi que me puse a buscar código. Encontré un codigo uno que con ayuda de mi primo Lea pusimos a funcionar. Este post es digno merecedor de un espacio en Wordpress Hacks el nuevo proyecto de un blogger de la casa Neri.

Después del salto el codigo

Para empezar la hice fácil y cree un archivo related.php que aloje en la misma carpeta del theme con este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
  //Gets category and author info
  global $wp_query;
$cats = get_the_category();
  $postAuthor = $wp_query->post->post_author;
$tempQuery = $wp_query;
  $currentId = $post->ID;
 
// related category posts
  $catlist = "";
  forEach( $cats as $c ) {
  if( $catlist != "" ) { $catlist .= ","; }
  $catlist .= $c->cat_ID;
  }
  $newQuery = "posts_per_page=5&cat=" . $catlist;
  query_posts( $newQuery );
$categoryPosts = "";
  $count = 0;
if (have_posts()) {
  while (have_posts()) {
  the_post();
  if( $count<4 && $currentId!=$post->ID) {
  $count++;
  $categoryPosts .= '<li><a href="' . get_permalink() . '">' . the_title( "", "", false ) . '</a></li>';
  }
  }
  }
  // related author posts
  $newQuery = "posts_per_page=5&author=" . $postAuthor;
  query_posts( $newQuery );
$authorPosts = "";
  $count = 0;
if (have_posts()) {
  while (have_posts()) {
  $count++;
  the_post();
  if( $count<4 && $currentId!=$post->ID) {
  $count++;
  $authorPosts .= '<li><a href="' . get_permalink() . '">' . the_title( "", "", false ) . '</a></li>';
  }
  }
  }
  $wp_query = $tempQuery;
  ?>

Y luego solo falta incluir esto en el single.php de sus plantillas y llamar a las funciones que crea, por ejemplo de esta forma:

1
2
3
4
5
6
7
8
9
10
11
<?php include('related.php') ?>
<div id="related">
<h4>Otros Articulos de <?php the_author(); ?></h4>
<ul>
<?php echo $authorPosts; ?>
</ul>
<h4>Otros Articulos de <?php the_category(', ') ?></h4>
<ul>
<?php echo $categoryPosts; ?>
</ul>
</div>

Nota: Acabo de cambiar para este post el plugin que usaba para mostrar codigo, este me gusta mucho más. Por alguna razón no muestra correctamente el codigo PHP (el anterior tampoco), si lo hace si apretan sobre el link que les proporciona el texto plano “Ver código”. Solo me pasa si utilizo el plugin porque si muestro código entre < "pre"> sale bien, alguien sabría porque?

Tags:

Publicado por Hernan

Guardado en: Wordpress

comentarios (11)

  1. Excelente aporte,

    Una ocnsulta como hago para mostar solamente los post relaciones por categoria sin necesidad de poner el nombre del autor.

    Gracias.

    Mauro el 15/05/2009 @ 10:40 pm9

  2. se que no es el lugar ni la forma, pero necesito que me eches una mano con lo que le paso a un amigo pudieras publicar algo relacionado con lo que le paso a un compañero twitero, y que podria afectar a muchos guatemaltecos que utilizamos este servicio, es un amigo y es injusto lo que le hicieron te dejo el link para que lo chekes, te lo agradezco de antemano http://blogvecindad.com/el-twittero-de-guatemala-jeanfer-arrestado-por-crear-panico-financiero/2009/05/14

    Max el 15/05/2009 @ 10:50 pm9

  3. @Mauro: El código esta bien separa, por ejemplo de la primera parte deberías usar la primer sección “// related category posts” y luego en las llamadas solo el “$categoryPosts;”.

    @Max: No hice a tiempo a comentarlo por aqui pero estoy seguro que los lectores de CG estan al tanto.

    Salu2.

    Hernan el 16/05/2009 @ 08:02 am9

  4. No seria mas limpio si meten el codigo dentro del fichero functions.php?, para eso lo tenemos :P

    Angelfire el 16/05/2009 @ 09:22 am9

  5. @Angelfire: Ahora que lo dices tienes razon, es una forma más prolija de agregar “funciones”.

    Salu2.

    Hernan el 16/05/2009 @ 09:26 am9

  6. Hernán muchas gracias por la mención, veo el post porque alguien fue de acá para wp hacks, sino ni me enteraba, hace como 2 días que no abro el reader, con el tema de la migración tengo un quilombo bárbaro.
    En cuanto al código y demás lo voy a tener en cuenta, tal vez se pueda limpiar más el código y como dice Angelfire, también se podría agregar al functions ;)

    Neri el 16/05/2009 @ 10:58 am9

  7. excente.. funciona y me viene de 1o para el directorio de articulos q estoy terminabdo con este codigo

    blo2k el 16/05/2009 @ 01:33 pm9

  8. excelente lo estaba buscando ahora mismo lo voy a colocar

    Matias el 17/05/2009 @ 02:58 am9

  9. al parecer anda mal el tema de los comentarios poniendo eso.. vos comentas y te pasa que comentas en otro post.. fijense o es a mi solo que me pasa?

    Matias el 17/05/2009 @ 05:05 pm9

  10. lo que dice matias es verdad, he probado varios codigos de los cuales me aparece el mismo error, alguna solucion?

    koke el 24/12/2009 @ 05:51 pm9

  11. gracias a http://www.3mind.at me entero de este codigo modificado para no crear errores en los comentarios, les dejo el link http://www.3mind.at/2009/05/06/code-highlighting/ , copien el codigo debajo en donde dice update, LA GRAN SOLUCION!

    koke el 24/12/2009 @ 06:36 pm9

pingbacks (0)

  1. No hay pingbacks hasta el momento.

Tu comentario será moderado la primera vez que lo hagas al igual que si incluyes enlaces. A partir de ahi no será necesario si usas los mismos datos y mantienes la cordura. No se publicarán insultos, difamaciones o faltas de respeto hacia los lectores y comentaristas de este blog.