Cómo mostrar publicaciones relacionadas por categoría

3

En el sitio de mi galería, quiero mostrar otras imágenes debajo de la imagen actual (en una sola publicación). He visto más códigos, pero me pide que especifique la categoría, pero no quiero especificar la categoría manualmente en el código. Quiero que el código obtenga el ID o el nombre de la categoría. Sería mucho más fácil para mí si obtengo las publicaciones completas. en lugar del título de la publicación para que pueda mostrarlo como en casa y categoría

    
pregunta Felix 05.02.2012 - 17:22

2 respuestas

12

La pregunta ya se ha hecho y la respuesta también se ha publicado,

¿Cómo mostrar publicaciones relacionadas de la misma categoría?

Agrega este código dentro de tu single.php después de un bucle donde quieras mostrar publicaciones relacionadas,

<?php

$related = get_posts( array( 'category__in' => wp_get_post_categories($post->ID), 'numberposts' => 5, 'post__not_in' => array($post->ID) ) );
if( $related ) foreach( $related as $post ) {
setup_postdata($post); ?>
 <ul> 
        <li>
        <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
            <?php the_content('Read the rest of this entry &raquo;'); ?>
        </li>
    </ul>   
<?php }
wp_reset_postdata(); ?>

Mostrará publicaciones relacionadas de la misma categoría con el extracto y el título de la publicación, sin embargo, si desea que este código muestre solo el título de la publicación relacionada, elimine esta línea,

<?php the_content('Read the rest of this entry &raquo;'); ?>
    
respondido por el Sufiyan Ghori 05.02.2012 - 17:51
1

Aquí hay otra opción limpia y muy flexible:

Ponga este código en su archivo functions.php

function example_cats_related_post() {

    $post_id = get_the_ID();
    $cat_ids = array();
    $categories = get_the_category( $post_id );

    if(!empty($categories) && is_wp_error($categories)):
        foreach ($categories as $category):
            array_push($cat_ids, $category->term_id);
        endforeach;
    endif;

    $current_post_type = get_post_type($post_id);
    $query_args = array( 

        'category__in'   => $cat_ids,
        'post_type'      => $current_post_type,
        'post_not_in'    => array($post_id),
        'posts_per_page'  => '3'


     );

    $related_cats_post = new WP_Query( $query_args );

    if($related_cats_post->have_posts()):
         while($related_cats_post->have_posts()): $related_cats_post->the_post(); ?>
            <ul>
                <li>
                    <a href="<?php the_permalink(); ?>">
                        <?php the_title(); ?>
                    </a>
                    <?php the_content(); ?>
                </li>
            </ul>
        <?php endwhile;

        // Restore original Post Data
        wp_reset_postdata();
     endif;

}

Ahora puede simplemente llamar a la función desde cualquier lugar de su sitio usando:

<?php example_cats_related_post() ?>

Es posible que desee eliminar los elementos de la lista o personalizarlos según su necesidad.

    
respondido por el Lawrence Oputa 02.07.2018 - 13:30

Lea otras preguntas en las etiquetas