Mostrar publicaciones recientes de la misma categoría que la publicación actual en la barra lateral

4

Estoy usando una versión modificada de Twenty Twelve e intento mostrar publicaciones recientes de la misma categoría que la publicación actual (excepto la publicación actual) en la barra lateral.

Comencé de esta manera pero algo no está bien:

    $category = get_the_category($post->ID); 
    $current_cat = $category[0]->cat_name; //This will get me the first category assigned to the current post but since every post has only ONE cat. assigned to, it's good enough
   //Next, in my sidebar widget I have this:
    $my_query = new WP_Query('category_name='.$current_cat.'&showposts=10');
    while ($my_query->have_posts()) : $my_query->the_post();
    ...display my titles here ...
    unset($current_cat); //I'm not sure I need to unset this variable?
    endwhile;

No soy realmente un programador, así que estoy luchando para entender la lógica, pero me gustaría aprender. Cualquier sugerencia / ayuda muy apreciada!

Gracias, Alex

    
pregunta Sasha 26.05.2013 - 09:12

2 respuestas

1

Prueba esto

        // Get categories
        $categories = wp_get_post_terms( get_the_ID(), 'category');

        // Check if there are any categories
        if( ! empty( $categories ) ) :

            // Get all posts within current category, but exclude current post
            $category_posts = new WP_Query( array(
                'cat'          => $categories[0]->term_id,
                'post__not_in' => array( get_the_ID() ),
            ) );

            // Check if there are any posts
            if( $category_posts->have_posts() ) :
                // Loop trough them
                while( $category_posts->have_posts() ) : $category_posts->the_post();
                    // Display posts
                    echo get_the_title() . '<br />';
                endwhile;
            endif;
        endif;

También, visite esta página para obtener más información acerca de WP_Query para recorrer las publicaciones, y no olvide restablecer los postdatos usando wp_reset_postdata();

    
respondido por el Jeffrey Ponsen 16.09.2015 - 13:46
0

Prueba de esta manera:

global $post;
$category = get_the_category($post->ID); 
$current_cat = $category[0]->cat_name; //This will get me the first category assigned to the current post but since every post has only ONE cat. assigned to, it's good enough

$my_query = new WP_Query('category_name='.$current_cat.'&showposts=10');
while ($my_query->have_posts()) : $my_query->the_post();
    the_title();
unset($current_cat); //I'm not sure I need to unset this variable?
endwhile;
    
respondido por el Devoted 26.05.2013 - 11:16

Lea otras preguntas en las etiquetas