嘿。我在wordpress中使用自定义帖子类型。我注册这个自定义后类型是这样的:这些参数WordPress的自定义帖子类型
register_post_type("lifestream", array(
'label' => 'Lifestream',
'public' => true,
'hierarchical' => true,
'menu_position' => 5,
'supports' => array('title','editor','author','thumbnail','comments','custom-fields'),
'taxonomies' => array('category','post_tag'),
'query_var' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'caller_get_posts' => 1
));
register_taxonomy_for_object_type('category', 'lifestream');
register_taxonomy_for_object_type('post_tag', 'lifestream');
在主题(循环模板)我喜欢结合岗位和我的自定义后类型,我使用query_posts():
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => array('post', 'lifestream'),
'paged' => $paged,
'cat' => $wp_query->get('cat'),
'tag' => $wp_query->get('tag'),
'year' => $wp_query->get('year'),
'monthnum' => $wp_query->get('monthnum'),
'post_status' => 'publish',
'showposts' => 3
);
query_posts($args);
# the loop
while (have_posts()) : the_post();
# markup
endwhile;
if($wp_query->max_num_pages > 1):
# next_posts_link/previous_posts_link
endif;
wp_reset_query();
这工作到目前为止。但是,我遇到了类别和标签页面的问题。如果我打电话给首页,一切都很好,我可以通过页面分页获得正确的结果。
而且,如果我呼叫分页的URL,例如/ category/mycat/page/2一个404被抛出。但那里肯定应该是帖子。不管该类别中是否存在自定义类型的帖子或正式的帖子。我想我的query_posts()参数是不正确的,但不知道...
看来,$ wp_query-> max_num_pages有错误的值。但为什么?我是否正确注册分类法(我喜欢为我的自定义帖子类型使用类别和标签)?
你有什么想法该怎么办?非常感谢!
嘿大卫。谢谢,但正如你所看到的,我将页面参数传递给query_posts()。或者这有什么不对吗? – Status4 2011-02-10 09:01:01
哎呀,我的坏。我建议你做一个`print_r($ args);`看看究竟发送了什么 - 这可能是你的第一个线索。另一件事:showposts被depracated,尝试使用posts_per_page来代替。最后,您可以尝试明确设置“nopaging”=> false – David 2011-02-12 22:03:10