Sta*_*us4 6 php wordpress themes categories custom-post-type
嘿.我在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');
Run Code Online (Sandbox Code Playgroud)
在主题(循环模板)中我喜欢组合帖子和我的自定义帖子类型,因为我使用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();
Run Code Online (Sandbox Code Playgroud)
到目前为止这是有效的.但是,我遇到了类别和标签页面的问题.如果我打电话给首页一切都很好,我可以通过页面分页得到正确的结果.
并且,如果我调用分页URL,例如/ category/mycat/page/2,则抛出404.但绝对应该是帖子.无论该类别中是否有自定义类型帖子或男性帖子.我想我的query_posts()参数不正确,但不知道......
似乎$ wp_query-> max_num_pages具有错误的值.但为什么?我是否正确注册了分类法(我喜欢使用自定义帖子类型的类别和标签)?
你有什么想法怎么办?非常感谢!
我刚刚遇到了完全相同的问题,但在任何地方都找不到解决方案!互联网上充满了有关该主题的资源,但没有一个提供该问题的正确答案。
这是任何搜索者的正确答案。将以下代码放入主题根目录下的functions.php中。
function init_category($request) {
$vars = $request->query_vars;
if (is_category() && !is_category('Blog') && !array_key_exists('post_type', $vars)) :
$vars = array_merge(
$vars,
array('post_type' => 'any')
);
$request->query_vars = $vars;
endif;
return $request;
}
add_filter('pre_get_posts', 'init_category');
Run Code Online (Sandbox Code Playgroud)
所有功劳归于在Wordpress.com上发布此内容的Mike。干杯!
归档时间: |
|
查看次数: |
2318 次 |
最近记录: |