在页面模板中按类别获取自定义帖子类型

我创建了带有类别和子类别的自定义帖子类型, 我需要做的是列出页面模板中给定子类别或类别的帖子标题和图像。
我已经获得了自定义帖子类型中列出的所有项目, 但是我不确定如何走得更远… 任何帮助表示赞赏。

< ?php $args = array( 'post_type' => 'portfolio', 'posts_per_page' => 10 ); $loop = new WP_Query( $args ); while ( $loop-> have_posts() ) : $loop-> the_post(); the_title(); echo '< div class="entry-content"> '; the_content(); echo '< /div> '; endwhile; ?>

#1我认为以下代码可能无法正常工作, 因为它使用了已弃用的参数(我认为caller_get_posts在3.1中已弃用)
【在页面模板中按类别获取自定义帖子类型】认为以下应该解决问题:
$loop = new WP_Query( array( 'post_type' => 'portfolio', 'cat' => 5, // Whatever the category ID is for your aerial category 'posts_per_page' => 10, 'orderby' => 'date', // Purely optional - just for some ordering 'order' => 'DESC' // Ditto ) ); while ( $loop-> have_posts() ) : $loop-> the_post(); ?>

还有几件事情要考虑(很抱歉, 如果这跨越到” 显而易见的” 领域!):
1)你的自定义帖子类型是否注册为使用内置类别, 或者它正在使用的自定义分类法?如果前者可以使用上面的方法, 而后者则可以, 那么你需要使用’ your-taxonomy-name’ => ’ your-taxonomy-term’ 代替cat => 5参数
http://codex.wordpress.org/Class_Reference/WP_Query#Parameters
2)你是否在页面上运行其他循环?如果是这样, 他们将需要
< ?php wp_reset_query(); ?>

在它们之后以便后续循环正常工作
http://codex.wordpress.org/Function_Reference/wp_reset_query
#2这应该工作:
$cat_id = get_cat_ID('My Category'); //the categories name $args=array( 'cat' => $cat_id, 'post_type' => 'portfolio', 'post_status' => 'publish', 'posts_per_page' => -1, 'caller_get_posts'=> 1 ); $new = new WP_Query($args);

    推荐阅读