wp_query muestra publicaciones de la misma categoría de la publicación

2

En mi página de publicación, estoy intentando mostrar una lista de otras publicaciones de la misma categoría de la publicación original. Hasta ahora tengo esto y esto no parece funcionar:

<?php

    $args = array(
        'post_type' => 'article',
        'posts_per_page' => 5,
        'post__not_in' => array( get_the_ID() ),
        'category'     => array( get_the_category() ),
        'meta_query' => array(
                    array(
                    'key' => 'recommended_article',
                    'value' => '1',
                    'compare' => '=='
                        )
                    )
    );
    $query = new WP_Query( $args );

?>

    <?php if( $query->have_posts() ) : while( $query->have_posts() ) : $query->the_post(); ?>

<a class="popup-article-picture" href="<?php the_permalink(); ?>" style="background-image: url('<?php the_post_thumbnail_url(); ?>');"></a>
<a class="popup-article-title" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

    <?php endwhile; endif; wp_reset_postdata(); ?>
    
pregunta ERDFX 21.09.2016 - 16:55

2 respuestas

3

He encontrado una respuesta:

<?php

    $cats = get_the_category();
    $args = array(
        'post_type' => 'article',
        'post__not_in' => array( get_the_ID() ),
        'posts_per_page' => 5,
        'cat'     => $cats[0]->term_id,
        'meta_query' => array(
                    array(
                    'key' => 'recommended_article',
                    'value' => '1',
                    'compare' => '=='
                        )
                    )
    );
    $query = new WP_Query( $args );

?>  

<?php if( $query->have_posts() ) : while( $query->have_posts() ) : $query->the_post(); ?>   

<!--HTML-->

<?php endwhile; endif; wp_reset_postdata(); ?>
    
respondido por el ERDFX 21.09.2016 - 22:17
1

estás intentando consultar el tipo de publicación personalizada llamado article . ¿Estás usando las categorías de publicación de WordPress predeterminadas para el tipo de publicación article ? ¿O ha registrado alguna taxonomía personalizada para ese tipo de publicación? Supongo que está utilizando la categoría de WordPress predeterminada para CPT . así que el primer paso es obtener la categoría actual de una sola página. La siguiente función devolverá las categorías adjuntas a la publicación desde fuera del bucle.

get_the_category();

devolverá una matriz de objetos de término. y tienes que obtener el slug de esta matriz para pasar la consulta. Supongamos que solo tenemos una categoría asignada para una sola publicación.

$category_obj = get_the_category();
$category = $category_obj[0]->slug;

ahora puedes usar eso en tu consulta de publicaciones relacionadas.

$args = array(
        'post_type' => 'article',
        'posts_per_page' => 5,
        'category'     => $category,
        'meta_query' => array(
                    array(
                    'key' => 'recommended_article',
                    'value' => '1',
                    'compare' => '=='
                        )
                    )
    );
    $query = new WP_Query( $args );

y si está utilizando una taxonomía personalizada para el tipo de publicación, háganoslo saber para que podamos ayudarlo con respecto a las taxonomías personalizadas.

    
respondido por el Anwer AR 21.09.2016 - 19:47

Lea otras preguntas en las etiquetas