Tutorial: Cómo colocar posts relacionados en WordPress sin usar plugins

Lopezito Seguir

Zeta
Diseñador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
13 Dic 2011
Mensajes
1.515
Muy buenas comunidad de forobeta.
Hoy les traigo el cómo hacer para colocar posts/artículos relacionados en sus entradas de WordPress:

Tutorial:

Colocar posts/artículos relacionados sin plugins

1- Pegamos el siguiente código PHP en el archivo functions.php de nuestro theme actual:

PHP:
<?php
function relacionados(){

global $post; //Obtenemos la variable $post que contiene información del post

$postid = $post->ID; //Obtenemos el ID del post donde estamos, para excluirlo de loop

$cat = get_the_category($postid); //Obtenemos las categorías en las que figura nuestro post
$cat = $cat[0]->cat_ID; //Seleccionamos la primera de todas

$c_posts = 5; //Número de la cantidad de posts que van a aparecer

$ordby = 'rand'; //Ordenar random, ver más en http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters "orderby"

$c_letras = 280; //Número de carácteres a mostrar como extracto de cada artículo

$query = array('posts_per_page' => $c_posts, 'cat' => $cat, 'post__not_in' => array($postid), 'orderby' => $ordby); //Nuestro "query" para el bucle de posts

?>
<!-- Relacionados por Lopezito -->
<section class="rposts">
<h3>Tal vez te interese..</h3>
<?php

query_posts($query);
while(have_posts()) : the_post();

?>
<article class="rpost">
<a href="<?php the_permalink(); ?>" title="Enlace permanente hacia <?php the_title_attribute(); ?>"><h5><?php the_title(); ?></h5></a>
<section class="rcont">
<a href="<?php the_permalink(); ?>" title="Enlace permanente hacia <?php the_title_attribute(); ?>"><?php the_post_thumbnail(); ?></a>
<?php echo substr(get_the_excerpt(),0,$c_letras); ?>...
</main>
</article>
<?php

endwhile;
wp_reset_query(); //finalizamos el query_posts

?>
</section>
<!-- / Relacionados por Lopezito -->
<?php

}
?>

2- Agregamos el siguiente código CSS a una hoja de estilo(style.css) de nuestro theme:

Insertar CODE, HTML o PHP:
.rposts{padding:5px;margin:5px 0}
.rposts h3{font-weight:100;padding:10px;color:#FFF;font-size:19px;text-shadow:1px 1px rgba(88, 88, 88, 0.33);display:inline-block;background:#74B2CF!important;letter-spacing:1px}
.rpost{background:#fff!important;border-top:1px solid #eee!important}
.rpost:nth-child(2n+2){background:#F4FBFF!important}
.rpost a h5{text-decoration:none;font-size:15px;font-weight:100;text-shadow:1px 1px #fff;color:#444;margin-bottom:5px;padding:5px}
.rcont{margin:5px;overflow:hidden;color:#444;font-style:italic}
.rcont a img{float:left;width:48px!important;height:48px!important;border:none!important;margin:5px 15px;box-shadow:0 0 8px #FFF}

3- Implementación, en single.php preferentemente antes de la linea endwhile;(puede estar o no en su theme):

PHP:
<?php relacionados(); ?>

Resultado:

SvaXfLD.png

DEMO: Descargar AutoLikeWP v3.2 - Plugin WordPress

Extra:

Solo links:

1.a- Modificar:

PHP:
<section class="rposts">
<h3>Tal vez te interese..</h3>

1.b- Por:

PHP:
<section class="rposts">
<h3>Tal vez te interese..</h3>
<ul>

2.a- Modificar:

PHP:
<article class="rpost">
<a href="<?php the_permalink(); ?>" title="Enlace permanente hacia <?php the_title_attribute(); ?>"><h5><?php the_title(); ?></h5></a>
<section class="rcont">
<a href="<?php the_permalink(); ?>" title="Enlace permanente hacia <?php the_title_attribute(); ?>"><?php the_post_thumbnail(); ?></a>
<?php echo substr(get_the_excerpt(),0,$c_letras); ?>...
</main>
</article>

2.b- Por:

PHP:
<li class="rpost"><a href="<?php the_permalink(); ?>" title="Enlace permanente hacia <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>

3.a- Modificar:

PHP:
</section>

3.b- Por:

PHP:
</ul>
</section>

4- CSS:

Insertar CODE, HTML o PHP:
.rposts{padding:5px;margin:5px 0}
.rposts h3{font-weight:100;padding:10px;color:#FFF;font-size:19px;text-shadow:1px 1px rgba(88, 88, 88, 0.33);display:inline-block;background:#74B2CF!important;letter-spacing:1px}
.rpost{padding:5px}
.rpost a{transition: all ease .5s;text-decoration:none;font-size:15px;font-weight:100;text-shadow:1px 1px #fff;color:#444;margin-bottom:5px;padding:5px}
.rpost a:hover{text-decoration:underline}

Filtrar por etiquetas(tags):

1.a- Modificar:

PHP:
$cat = get_the_category($postid); //Obtenemos las categorías en las que figura nuestro post
$cat = $cat[0]->cat_ID; //Seleccionamos la primera de todas

1.b- Por:

PHP:
$tag = get_the_tags($postid); //Obtenemos las etiquetas en las que figura nuestro post
$tag  = $tag[0]->term_id; //Seleccionamos la primera de todas

2.a- Modificar:

PHP:
$query = array('posts_per_page' => $c_posts, 'cat' => $cat, 'post__not_in' => array($postid), 'orderby' => $ordby); //Nuestro "query" para el bucle de posts

2.b- Por:

PHP:
$query = array('posts_per_page' => $c_posts, 'tag' => $tag, 'post__not_in' => array($postid), 'orderby' => $ordby); //Nuestro "query" para el bucle de posts

Pueden luego ir acomodándolo como ustedes quieran, consultando el Main Page « WordPress Codex para agregar datos de los posts: fechas, autor, etc.

Eso es todo. Sí, rápido porque en el mismo código explique cada cosa y es sencillo el código para modificarlo. :p7:

No te olvides, si te gusto, agradecer con un "Me Agrada" y/o comentario. :encouragement:

Un saludo.
 
Última edición:

zcriptz

1
Ómicron
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
Desde
26 Mar 2013
Mensajes
4.621
Buen tutorial, a veces los plugins no son fácilmente personalizables y haciendolos de este modo es mucho más sencillo de hacerlo como uno quiere.
 

Matias Felici

VIP
Ni
Marketing
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
11 Jul 2013
Mensajes
3.913
Genial, me viene perfecto
 

Kenny Johnson

Mi
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Desde
17 Sep 2011
Mensajes
3.420
Gracias por compartirlo
 

Carlos Arreola

Admin
Sigma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
¡Excelente comerciante!
Suscripción a IA
Desde
6 Abr 2009
Mensajes
12.385
Muchas gracias, muy buen aporte.
 

iNeedYou

1
Sigma
SEO
Verificado
Verificación en dos pasos activada
¡Ha verificado su Paypal!
¡Excelente comerciante!
Suscripción a IA
Desde
27 Sep 2010
Mensajes
14.798
Gran tutorial, muy útil :)
 

Lopezito

Zeta
Diseñador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
13 Dic 2011
Mensajes
1.515
Gracias a todos por comentar y apoyar el tutorial :welcoming:

Cabe destacar que pueden editar con CSS la forma de cómo se muestran fácil, y si quieren pueden tirar estructuras y yo ayudarlos a modificar :encouragement:

Un saludo.

PD: Si quieren enviar estructuras, que sea por MP.

- - - Actualizado - - -

Agregado en el "extra": Filtrar por etiquetas(tags)
 

angelvsc

Delta
Verificación en dos pasos activada
Desde
23 Oct 2010
Mensajes
571
Interesante aporte, es bueno aprender un poco de todo y no limitarnos a los plugins que aveces no sabemos ni que modificaciones hacen en el codigo
 

Gaston Riera

1
Pi
SEO
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
¡Excelente comerciante!
Suscripción a IA
Desde
15 Mar 2010
Mensajes
5.600
Un espectáculo. Muchas gracias.
 

juliusms

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
19 Abr 2014
Mensajes
430
Muy bueno pero el de solo links no se si hice algo mal pero en vez de salir los titulos sale "<¿php the_title();?>"
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
Muy bueno pero el de solo links no se si hice algo mal pero en vez de salir los titulos sale "<¿php the_title();?>"

tenes mal el code... es
PHP:
<?php the_title();?>
 
Arriba