Obține postări WordPress după categorie
Am următorul fragment de cod:
$args = array(
'posts_per_page' => -1,
'category' => 7,
'orderby' => 'name',
'order' => 'ASC',
'post_type' => 'product'
);
$posts = get_posts($args);var_dump($posts);
Acest cod ar trebui să returneze o postare despre care știu că există în categorie, dar nu o face. Dacă las afară argumentul 'category', primesc toate produsele, deci știu că ar trebui să funcționeze normal. Dacă schimb categoria la 1 și scot tipul meu personalizat de postare (product), primesc postările mele implicite.
Nu pot să văd care este problema. Poate cineva să observe care este problema?
Cel mai probabil folosești o taxonomie personalizată, și nu taxonomia încorporată category. În acest caz, parametrii pentru categorii nu vor funcționa. Va trebui să folosești un tax_query pentru a interoga articole dintr-un anumit termen. (Reține, get_posts utilizează WP_Query, deci poți pasa orice parametru din WP_Query către get_posts)
$args = [
'post_type' => 'product',
'tax_query' => [
[
'taxonomy' => 'my_custom_taxonomy',
'terms' => 7,
'include_children' => false // Elimină dacă ai nevoie de articole din termenii copii ai termenului 7
],
],
// Restul argumentelor tale
];
RESURSE ADIȚIONALE
<ul>
<?php
$args = array( 'posts_per_page' => 5, 'offset'=> 1, 'category' => 1 );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach;
wp_reset_postdata();?>
</ul>
Poate acest lucru vă va ajuta.
Mulțumesc
De la ce 'post_type' va obține acum linkurile, 5 în cazul tău? După părerea mea, el vrea conținutul din produse (după cum înțeleg, un CPT) și nimic din postările obișnuite.
Charles
transmite ID-ul categoriei tale în argumente și din postările obișnuite vei obține 5 postări.
Rohit Gilbile
Citește întrebarea lui, te rog. Nu am întotdeauna dreptate, dar în acest caz el vrea 'ceva' de la un Custom Post Type cu numele Product.
Charles
Charles are dreptate în acest caz. Știu cum să obțin datele odată ce am postările mele. Problema era că nu obțineam postările mele personalizate :)
Michiel Standaert