WordPress GET_POST(按类别)

时间:2015-06-30 作者:Michiel Standaert

我有以下代码:

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

$posts = get_posts($args);var_dump($posts);
这应该会返回一个我知道属于该类别的帖子,但它不是。如果我省略“category”参数,我会得到所有的产品,所以我知道这应该正常工作。如果我将类别更改为1,并删除我的自定义帖子类型(产品),我将获得我的默认帖子。

我看不出这有什么问题。有人能发现问题所在吗?

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

很可能您使用的是自定义分类法,而不是内置分类法category 分类学如果是这种情况,那么类别参数将不起作用。您将需要tax_query 查询特定术语中的帖子。(记住,get_posts 使用WP_Query, 因此,您可以从WP_Queryget_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
];
其他资源What is the difference between custom taxonomies and categories

SO网友:Rohit Gilbile

<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月this will 帮助你。

谢谢

结束

相关推荐