Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Posts relacionados aleatorios

Estas en el tema de Posts relacionados aleatorios en el foro de WordPress en Foros del Web. Hola, en mi blog uso un script php que me da articulos relacionados de cada entrada que pongo, relacionando articulos por medio de etiquetas, solo ...
  #1 (permalink)  
Antiguo 04/07/2010, 12:28
Avatar de luciio  
Fecha de Ingreso: junio-2009
Ubicación: Guadalajara, MX.
Mensajes: 351
Antigüedad: 15 años, 6 meses
Puntos: 38
Posts relacionados aleatorios

Hola, en mi blog uso un script php que me da articulos relacionados de cada entrada que pongo, relacionando articulos por medio de etiquetas, solo que tengo un problema cuando no hay relacion entre etiquetas no coloca nada, quisiera ver si ustedes me podrian ayudar a que cuando no tenga relacion por etiquetas mande entradas aleatorias. espero se pueda.

el codigo es este:

Código PHP:
<?php echo catch_that_image() ?>
Ahora lo que necesitamos es que nos muestre las entradas relacionadas y añadiremos la ruta de la imagen mencionada anteriormente, para eso insertamos estas líneas, por ejemplo en el archivo single.php
<?php
$backup 
$post;
$tags wp_get_post_tags($post->ID);
if (
$tags) {
    
$tag_ids = array();
    foreach(
$tags as $individual_tag$tag_ids[] = $individual_tag->term_id;
 
    
$args=array(
        
'tag__in' => $tag_ids,
        
'post__not_in' => array($post->ID),
        
'showposts'=>6// Cantidad de entradas a mostrar.
        
'caller_get_posts'=>1
    
);
    
$my_query = new wp_query($args);
    if( 
$my_query->have_posts() ) {
        echo 
'<h2>Relacionado</h2><ul id="related">';
        while (
$my_query->have_posts()) {
            
$my_query->the_post();
        
?>
            <li>
            <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>" width="70" height="70" /></a></li>
        <?php
        
}
        echo 
'</ul>';
    }
}
$post $backup;
wp_reset_query(); 
?>
Muchas gracias por su ayuda, Saludos !
__________________
cursos delineado permanente - mi selección de plantillas para wordpress

Última edición por metacortex; 09/07/2010 a las 06:45 Razón: etiqueta QUOTE por PHP
  #2 (permalink)  
Antiguo 04/07/2010, 17:31
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Posts relacionados aleatorios

Saludos
Bueno, entonces usa un else para que en caso que no tenga nada asociado, muestre las aleatorias
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 04/07/2010, 22:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP a Wordpress
  #4 (permalink)  
Antiguo 05/07/2010, 15:10
Avatar de luciio  
Fecha de Ingreso: junio-2009
Ubicación: Guadalajara, MX.
Mensajes: 351
Antigüedad: 15 años, 6 meses
Puntos: 38
Respuesta: Posts relacionados aleatorios

Cita:
Iniciado por mortiprogramador Ver Mensaje
Saludos
Bueno, entonces usa un else para que en caso que no tenga nada asociado, muestre las aleatorias
Hola, no se mucho de PHP apenas me estoy iniciando (a leer), me podrias decir como implementar ese else?

Saludos y muchas gracias !
__________________
cursos delineado permanente - mi selección de plantillas para wordpress
  #5 (permalink)  
Antiguo 08/07/2010, 22:49
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Posts relacionados aleatorios

Hola
Bueno, pues ya que estas iniciando te recomiendo esta web para que te des una pasada

en cuanto al else, bueno, pues sería algo así

if(condicion)
{
//lo que ya tienes
}
else
{
//codigo para las aleatorias
}

voy de pasada revisando foro tras foro atrasado que no he revisado en días, así que disculpame que no sea más explicito, pero si con esto y la web que te pase no te es claro, postea de nuevo, saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 09/07/2010, 07:03
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: Posts relacionados aleatorios

Cita:
Iniciado por luciio Ver Mensaje
Hola, en mi blog uso un script php que me da articulos relacionados de cada entrada que pongo, relacionando articulos por medio de etiquetas, solo que tengo un problema cuando no hay relacion entre etiquetas no coloca nada, quisiera ver si ustedes me podrian ayudar a que cuando no tenga relacion por etiquetas mande entradas aleatorias. espero se pueda.

el codigo es este:

[php]<?php echo catch_that_image() ?>
Ahora lo que necesitamos es que nos muestre las entradas relacionadas y añadiremos la ruta de la imagen mencionada anteriormente, para eso insertamos estas líneas, por ejemplo en el archivo single.php
Código PHP:
<?php
$backup 
$post;
$tags wp_get_post_tags($post->ID);
if (
$tags) {
    
$tag_ids = array();
    foreach(
$tags as $individual_tag$tag_ids[] = $individual_tag->term_id;
 
    
$args=array(
        
'tag__in' => $tag_ids,
        
'post__not_in' => array($post->ID),
        
'showposts'=>6// Cantidad de entradas a mostrar.
        
'caller_get_posts'=>1
    
);
    
$my_query = new wp_query($args);
    if( 
$my_query->have_posts() ) {
        echo 
'<h2>Relacionado</h2><ul id="related">';
        while (
$my_query->have_posts()) {
            
$my_query->the_post();
        
?>
            <li>
            <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>" width="70" height="70" /></a></li>
        <?php
        
}
        echo 
'</ul>';
    }
}
$post $backup;
wp_reset_query(); 
?>
Muchas gracias por su ayuda, Saludos !
Sería algo así:

Código PHP:
<?php
$backup 
$post;

$tags wp_get_post_tags($post->ID);
foreach(
$tags as $individual_tag
    
$tag_ids[] = $individual_tag->term_id;

$args = array(
    
'post__not_in' => array($post->ID),
    
'showposts'=>6// Cantidad de entradas a mostrar.
    
'caller_get_posts'=>1
);
if(
$tags)
    
$args[] = array('tag__in' => $tag_ids);

$my_query = new wp_query($args);
if( 
$my_query->have_posts() ) {
    echo 
'<h2>Relacionado</h2><ul id="related">';
    while (
$my_query->have_posts()) {
        
$my_query->the_post();
    
?>
        <li>
        <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>" width="70" height="70" /></a></li>
    <?php
    
}
    echo 
'</ul>';
}
$post $backup;
wp_reset_query(); 
?>
  #7 (permalink)  
Antiguo 11/07/2010, 12:51
Avatar de luciio  
Fecha de Ingreso: junio-2009
Ubicación: Guadalajara, MX.
Mensajes: 351
Antigüedad: 15 años, 6 meses
Puntos: 38
Respuesta: Posts relacionados aleatorios

Muchisimas gracias por tu ayua me funciono perfecto, solo una cosa que te podria comentar:

Este codigo me arroja 6 articulos relacionados, ahora me revuelve relacionados con aleatorios, no se podria poner para que sake todos los relacionados y si le faltan para llegar a los 6, saque los restantes aleatorios?

Solo es una idea, en realidad el codigo asi esta muy bien, muchas gracias por su ayuda !

Cita:
Iniciado por metacortex Ver Mensaje
Sería algo así:

Código PHP:
<?php
$backup 
$post;

$tags wp_get_post_tags($post->ID);
foreach(
$tags as $individual_tag
    
$tag_ids[] = $individual_tag->term_id;

$args = array(
    
'post__not_in' => array($post->ID),
    
'showposts'=>6// Cantidad de entradas a mostrar.
    
'caller_get_posts'=>1
);
if(
$tags)
    
$args[] = array('tag__in' => $tag_ids);

$my_query = new wp_query($args);
if( 
$my_query->have_posts() ) {
    echo 
'<h2>Relacionado</h2><ul id="related">';
    while (
$my_query->have_posts()) {
        
$my_query->the_post();
    
?>
        <li>
        <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>" width="70" height="70" /></a></li>
    <?php
    
}
    echo 
'</ul>';
}
$post $backup;
wp_reset_query(); 
?>
__________________
cursos delineado permanente - mi selección de plantillas para wordpress
  #8 (permalink)  
Antiguo 11/07/2010, 14:50
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: Posts relacionados aleatorios

Prueba así. Cambia esto

Código PHP:
Ver original
  1. $args = array(
  2.     'post__not_in' => array($post->ID),
  3.     'showposts'=>6, // Cantidad de entradas a mostrar.
  4.     'caller_get_posts'=>1
  5. );
  6. if($tags)
  7.     $args[] = array('tag__in' => $tag_ids);
por esto

Código PHP:
Ver original
  1. $args = array(
  2.     'showposts'=>6, // Cantidad de entradas a mostrar.
  3.     'caller_get_posts'=> 1
  4. );
  5. if($tags) $args[] = array('tag__in' => $tag_ids);
  6. else $args[] = 'post__not_in' => array($post->ID);

Etiquetas: relacionados, post, aleatoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:16.