如何正确使用带有自定义帖子类型的类别

时间:2014-01-15 作者:Sparky

我真的很挣扎。。。我创建了一些自定义的帖子类型,比如说。。。

现在,我也有一大堆现有类别,其中一些类别将应用于多个自定义帖子类型。例如,“可用”类别可以分配给所有这些自定义职位类型。

现在,当我尝试以编程方式或通过前端的归档页面访问类别时,遇到了一大堆问题。

例如,要将所有自定义帖子类型的最新帖子放在主页上,我必须这样做。。。

function get_custom_posts( $query ) {
    if ( ! is_admin() && empty($query->query_vars[\'suppress_filters\']) ) { // is not in Dashboard (is_admin => Dashboard)       
        if ( is_home() ) { // home page
            return $query->set( \'post_type\', array( \'post\', \'books\', \'cds\', \'maps\' ) );
        } else if .....
    }
}
add_filter( \'pre_get_posts\', \'get_custom_posts\' );
我越是发现工作异常,就越需要回去修理。

目前,我正在尝试从“可用”类别中检索所有帖子,以进行幻灯片演示,仪表板显示该类别中有19篇帖子。

但是,当我运行此代码时。。。

<?php

global $post;

$featured_posts = get_posts( 
    array(
        \'post_type\' => array( \'post\', \'books\', \'cds\', \'maps\' ),
        \'category\' => get_theme_option(\'featured_posts_category\')
        )
    );

foreach($featured_posts as $post) {

    setup_postdata($post);

    $slide_image = get_the_post_thumbnail($post->ID, \'medium\');
    echo \'<a href="\'.get_permalink($post->ID).\'">\'.$slide_image.\'</a>\';
    ....
}

?>
我收到的帖子比我预期的19篇要少得多,而我收到的帖子只来自“CD”自定义帖子类型,其他所有帖子类型都被忽略了。同样,在选择其他类别时,我会得到其他不可预测或奇怪的结果。这一切让我相信,我不应该在多个帖子类型中共享同一类别。。。有谁能证实这一点或进一步解释我在这里可能遗漏了什么?

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

你的get_posts 通话需要posts_per_page 参数,如果您想要超过每页的默认数字。使用-1 检索所有匹配的帖子。

$featured_posts = get_posts( 
    array(
        \'post_type\' => array( \'post\', \'books\', \'cds\', \'maps\' ),
        \'category\' => get_theme_option(\'featured_posts_category\'),
        \'posts_per_page\' => -1
    )
);

结束

相关推荐

List of Posts and Categories

我有一个自定义的物种分类法和一个自定义的动物post类型。我想在树状视图中显示它们,如下所示:所有动物Fish (taxonomy term)<鲨鱼(自定义贴子类型)太阳鱼Mammals<猴子斑马列表中的每个项目都将链接到各自的位置。因此,自定义帖子类型链接到动物,分类术语转到分类页面。我知道WordPress列出类别的方法,但我也希望将帖子分组到每个类别下(自定义分类法)。