web-dev-qa-db-ja.com

カテゴリ別Wordpress get_posts

次のようなコードがあります。

$args = array(
    'posts_per_page'   => -1,
    'category'         => 7,
    'orderby'          => 'name',
    'order'            => 'ASC',
    'post_type'        => 'product'
);

$posts = get_posts($args);var_dump($posts);

これは私が知っている1つの投稿をカテゴリ内に返すはずですが、そうではありません。 'category'引数を省略すると、すべての製品が得られるので、これは通常はうまくいくはずです。カテゴリを1に変更してカスタム投稿タイプ(商品)を削除すると、デフォルトの投稿が表示されます。

何が悪いのかわかりません。誰もが問題が何であるかを見つけることができますか?

3

たぶん、あなたはカスタム分類法を使っていて、組み込みのcategory分類法を使っているのではありません。この場合、カテゴリパラメータは機能しません。特定の用語からの投稿をクエリするには tax_query が必要です。 (get_postsWP_Queryを使用するので、WP_Queryからget_postsに任意のパラメーターを渡すことができます)

$args = [
    'post_type' => 'product',
    'tax_query' => [
        [
            'taxonomy' => 'my_custom_taxonomy',
            'terms' => 7,
            'include_children' => false // Remove if you need posts from term 7 child terms
        ],
    ],
    // Rest of your arguments
];

追加のリソース

9
Pieter Goosen
<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>

5月 これは - あなたを助ける。

ありがとう

1
Rohit gilbile