Afișarea articolelor din aceeași categorie folosind wp_query
Pe pagina articolului meu încerc să afișez o listă cu alte articole din aceeași categorie ca și articolul original. Până acum am următorul cod care nu pare să funcționeze:
<?php
$args = array(
'post_type' => 'article',
'posts_per_page' => 5,
'post__not_in' => array( get_the_ID() ), // Exclude articolul curent
'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(); ?>
Am găsit un răspuns:
<?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(); ?>

încercați să interogați tipul de postare personalizat numit article
. utilizați categoriile implicite din WordPress pentru tipul de postare article
? sau ați înregistrat vreo taxonomie personalizată pentru acel tip de postare? presupun că utilizați categoria implicită din WordPress pentru CPT
.
prin urmare, primul pas este să obțineți categoria curentă de pe pagina single. următoarea funcție va returna categoriile atașate postării din afara buclei.
get_the_category();
va returna un array de obiecte termen. și va trebui să obțineți slug-ul din acest array pentru a-l pasa în interogare. să presupunem că avem doar o singură categorie atribuită pentru postarea single.
$category_obj = get_the_category();
$category = $category_obj[0]->slug;
acum puteți folosi acest lucru în interogarea pentru postări similare.
$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 );
și dacă utilizați o taxonomie personalizată pentru tipul de postare, atunci anunțați-ne pentru a vă putea ajuta în legătură cu taxonomiile personalizate.
