嘿,我在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的值是错误的。但为什么呢?我是否正确注册了分类法(我喜欢为我的自定义帖子类型使用类别和标签)?
你有什么想法吗?非常感谢!