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.