如何为自定义帖子类型创建单独的循环?

时间:2021-01-08 作者:sackadelic

我正在建立一个吉他课程网站,我有一个关于自定义帖子类型的问题。我正在创建一个;课程“;这将是我的主要博客/循环页面。我还想为“创建自定义帖子类型”;“安排”;这将是我安排和播放的视频/歌曲。

我将CPT UI用于名为“CPT”的自定义帖子类型;“安排”;我试图找出如何创建单独的循环-课程=主要帖子类型,安排=自定义帖子类型。

我有一个安排。具有如下循环的php模板:

$args = array(
    \'post_type\'   => array(\'post\', \'arrangements\'),
    \'post_status\' => \'publish\',
);

$new_post_loop = new WP_Query($args);

if ($new_post_loop->have_posts()) :

    while ($new_post_loop->have_posts()) :

        $new_post_loop->the_post();

        get_template_part(\'template-parts/content\', \'blog\');

    endwhile;

    the_posts_navigation();

else :

    get_template_part(\'template-parts/content\', \'none\');

endif;
?>

然而,它吸收了我所有的课程以及自定义的帖子类型。知道我做错了什么吗?非常感谢。

1 个回复
最合适的回答,由SO网友:Tony Djukic 整理而成

您没有指定此项,但如果lessons 和你的arrangements 那么您必须使用默认的WordPressposts 对于课程。。。假设这样,下面是代码中发生的情况。

在第二行设置查询参数时($args) 您指定希望posts 帖子类型和您的自定义arrangements 岗位类型。所以你两者都有。

简单的修复方法,只需将其用于$args.

$args = array(
    \'post_type\'   => \'arrangements,
    \'post_status\' => \'publish\',
);
您可以将其保留为一个数组,不会有任何伤害。。。

$args = array(
    \'post_type\'   => array(\'arrangements\'),
    \'post_status\' => \'publish\',
);
尝试一下,看看你是否得到了想要的结果。

相关推荐