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

Mostrar post_types mismo tag

Estas en el tema de Mostrar post_types mismo tag en el foro de WordPress en Foros del Web. Hola, esta vez estoy haciendo que debajo de cada artículo salga un apartado que ponga "Juegos relacionados" (otro post type, que tenga por lo menos ...
  #1 (permalink)  
Antiguo 22/10/2011, 09:31
 
Fecha de Ingreso: abril-2011
Mensajes: 72
Antigüedad: 8 años, 2 meses
Puntos: 4
Mostrar post_types mismo tag

Hola, esta vez estoy haciendo que debajo de cada artículo salga un apartado que ponga "Juegos relacionados" (otro post type, que tenga por lo menos un tag que coincida con la noticia). Sin saber PHP, iba haciendo lo que podía y al final sólo pasaron dos cosas que no pude solucionar:

1. Si no encontraba juegos mismo tag, no conseguí que mostrara un mensaje "No hay juegos relacionados".

2. Si los encontraba, todo el código que hay debajo de ese apartado desaparecía, los comentarios, etc.

He descubierto que sólo muestra los que tienen un único tag.

Podéis ver 2 ejemplos aquí, este no se muestra, y aquí sí.


Este es el código que puse:


<div class="postmeta-terciary">
&nbsp;
<h3>Juegos relacionados con la noticia:</h3>

<?php
//for use in the loop, list 5 post titles related to first tag on current post
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post_type' => juegos,
'post__not_in' => array($post->ID),
'showposts'=>5,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>

<?php
$juego = get_post_meta($post->ID, "Carátula del juego", true);
$altura = get_post_meta($post->ID, "Tipo de carátula", true);
$extracto = get_post_meta($post->ID, "Descripción", true);
?>

<div class="juego-item"><div class="thumbd"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>"><img src="<?php echo($juego) ?>" align="left" class="<?php echo($altura) ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>"></a></div>

<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
<div class="entry-content">
<?php echo($extracto); ?>
</div>
</div>
<?php
endwhile;
}
}

?>

</div>

Última edición por javierm5; 22/10/2011 a las 09:37
  #2 (permalink)  
Antiguo 22/10/2011, 13:45
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 11 años, 3 meses
Puntos: 656
Respuesta: Mostrar post_types mismo tag

Es cuestión de leer e intentar interpretar un poco el código. La primer parte la tenés medio resuelta, te falta algún else o un elseif (!$tags) para indicar lo que debe suceder cuando $tags no tiene nada dentro.

Código PHP:
Ver original
  1. <?php
  2. //for use in the loop, list 5 post titles related to first tag on current post
  3. $tags = wp_get_post_tags($post->ID);
  4. if ($tags) {
  5. // Aquí va toooodo el código a ejecutarse en caso de que $tags tenga algo dentro
  6. }
  7. else {
  8. // colocá todo lo que quieras que se muestre en caso de que la condición anterior sea falsa
  9. }
  10. ?>


Por favor intentá encerrar el código entre [HIGHLIGHT="PHP"][/HIGHLIGHT]
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #3 (permalink)  
Antiguo 23/10/2011, 05:08
 
Fecha de Ingreso: abril-2011
Mensajes: 72
Antigüedad: 8 años, 2 meses
Puntos: 4
Respuesta: Mostrar post_types mismo tag

He intentado hacer lo que me has explicado, pero no se donde exactamente he de ponerlo en el código. No me funciona. ¿Y el otro problema sabes como solucionarlo? Este código, pero que funcione con las noticias con más de un tag:


Código PHP:
<h3>Juegos relacionados con la noticia:</h3>

<?php
//for use in the loop, list 5 post titles related to first tag on current post
$tags wp_get_post_tags($post->ID);
if (
$tags) {
  
$first_tag $tags[0]->term_id;
  
$args=array(
    
'tag__in' => array($first_tag),
    
'post_type' => juegos,    
    
'post__not_in' => array($post->ID),
    
'showposts'=>5,
    
'caller_get_posts'=>1
   
);
  
$my_query = new WP_Query($args);
  if( 
$my_query->have_posts() ) {
    while (
$my_query->have_posts()) : $my_query->the_post(); ?>

<?php
$juego 
get_post_meta($post->ID"Carátula del juego"true);
$altura get_post_meta($post->ID"Tipo de carátula"true);
$extracto get_post_meta($post->ID"Descripción"true);
?>

<div class="juego-item"><div class="thumbd"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>"><img src="<?php echo($juego?>" align="left" class="<?php echo($altura?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>"></a></div>

    <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    <div class="entry-content">
        <?php echo($extracto); ?>
    </div>
</div>
<?php
    
endwhile;
  } else { echo 
"No hay juegos relacionados con esta noticia" }
}
?>
  #4 (permalink)  
Antiguo 30/10/2011, 08:09
 
Fecha de Ingreso: abril-2011
Mensajes: 72
Antigüedad: 8 años, 2 meses
Puntos: 4
Respuesta: Mostrar post_types mismo tag

Hola, sigo si nsaber la solución.

¿Conocéis algún código para que muestre un código determinado a una especie específica de tag?

O algún código para que muestre los posts que tengan un mismo Custom Field?

Gracias.

Etiquetas: php, post, tag
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 23:53.