我在WordPress中使用了一个自定义的post类型(称为"ns_news_article“,由Magic Field生成),它已经注册并且正在运行。这会重写URL,在域名后面添加“类别/新闻”(so: www.mydomain.com/category/news/custom-post-1).我得把“假目录”放进去。
我在functions.php中有以下内容:
add_rewrite_rule("[ns_news_article]" . '$', "index.php?pagename=[ns_news_article]", "top");
add_rewrite_rule("[ns_news_article]" . '/page/([0-9])*/?', "index.php?pagename=[ns_news_article]" . '&paged=$matches[1]', "top");
global $wp_rewrite;
$wp_rewrite->flush_rules();第二行解决了作为多页列表查看时的分页404问题,但在尝试查看单个帖子时给出了404错误。如果我去掉它,你可以查看帖子,但是分页不起作用。
我能解决这个问题吗?还是应该用另一种方法来解决?
发布于 2012-02-03 18:22:46
我最近做了自定义post类型的分页,所以这就是我所做的。假设你的自定义帖子类型叫做"customp“。
page-customp.php的文件。然后发布一个标题为"Customp“的空页。现在,当您访问www.yourdomain.com/customp时,您将看到一个使用page-customp.php作为模板的页面。现在,我们将使用此页面来显示自定义帖子,并在your page-customp.php文件中使用pagination.$paged = 1;$postsPerPage = 5;if ( get_query_var('page') ) $paged = get_query_var('page');if (get_query_var(‘page’)) $paged =get_query_var(‘page’);query_posts( '&post_type=customp&paged=‘)。$paged。'&posts_per_page='.$postsPerPage );while ( have_posts() ):the_post();the_title();echo get_the_excerpt();endwhile;customp_paginate();
functions.php文件放置如下:函数customp_paginate() {全局查询,$wp_rewrite;$wp_ $wp_query ->query_vars‘分页’>1?$current =$wp_query->query_vars‘分页’:$current = 1;$pagination = => (‘基本’页面查询(‘@add_query_arg’,'%#%'),'format‘=> '',’=>‘=> $wp_query->max_num_pages,'current’=> $current,'show_all‘=> true,’=> 'list','prev_text‘=> '«','next_text’=> '»',);如果($wp_rewrite->using_permalinks()) $pagination‘’base‘= user_trailingslashit(trailingslashit(remove_query_arg('s',get_pagenum_link(1)。‘Pages/%#%/’,'paged');if (!empty($wp_query) && $pagination‘’total‘!= 1) {$pagination’‘add_args’= array('s‘=> get_query_var('s'));echo "Pages:“。paginate_links($pagination)。"";} }
我希望它能有所帮助:)
https://stackoverflow.com/questions/9121234
复制相似问题