wake-up-neo.com

wp_query zeigt Posts aus derselben Kategorie des Posts an

Auf meiner Beitragsseite versuche ich, eine Liste anderer Beiträge aus derselben Kategorie des ursprünglichen Beitrags anzuzeigen. Bisher habe ich das und das scheint nicht zu funktionieren:

<?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(); ?>
2
ERDFX

Ich habe eine Antwort gefunden:

<?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(); ?>
2
ERDFX

sie versuchen, den benutzerdefinierten Beitragstyp "article" abzufragen. Verwenden Sie Standard-WordPress-Beitragskategorien für den Beitragstyp article? oder haben Sie eine benutzerdefinierte Taxonomie für diesen Beitragstyp registriert? Ich gehe davon aus, dass Sie die Standard-WordPress-Kategorie für CPT verwenden. Der erste Schritt besteht also darin, die aktuelle Kategorie von einer einzelnen Seite abzurufen. Die folgende Funktion gibt Kategorien zurück, die von außerhalb der Schleife an den Beitrag angehängt wurden.

get_the_category();

es wird ein Array von Termobjekten zurückgeben. und Sie müssen den Slug aus diesem Array abrufen, um die Abfrage zu übergeben. Nehmen wir an, wir haben nur eine Kategorie für einen einzelnen Beitrag zugewiesen.

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

jetzt können Sie das in Ihrer verwandten Beitragsabfrage verwenden.

$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 );

wenn Sie eine benutzerdefinierte Taxonomie für den Post-Typ verwenden, teilen Sie uns dies mit, damit wir Sie in Bezug auf benutzerdefinierte Taxonomien unterstützen können.

1
Anwer AR