我有一个名为“新闻”的页面(使用页面模板 page-newslist.php
),应该显示来自也名为“新闻”的自定义文章类型的文章。我意识到拥有相同名称会导致问题,因此在注册自定义文章类型时,我进行了重写以将其与页面区分开:
'rewrite' => array('slug' => 'news-article', 'with_front' => true),
我可以让查询工作并正确显示文章,但是在阅读了所有文章 和 帖子之后,我无法使分页工作。分页从来没有显示出来。
在使用页面模板查询没有成功后,我尝试了
archive-news.php
方法,在那里它会自动显示自定义的文章类型。分页在那里确实有效。使用此方法的缺点是没有'实际'页面与之绑定(这也将具有自定义字段,能够很好地添加到菜单中等)。这是注册自定义文章类型的简化代码:
register_post_type('news', array(
'label' => 'News',
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => 'news-article', 'with_front' => true),
'query_var' => true,
'has_archive' => true,
));
然后是页面模板的代码:
$paged = 1;
if ( get_query_var('paged') ) $paged = get_query_var('paged');
if ( get_query_var('page') ) $paged = get_query_var('page');
$args = array(
'post_type' => 'news',
'post_status' => 'publish',
'posts_per_page' => 1,
'paged' => $paged
);
$my_query = null;
$my_query = new WP_Query($args);
if($my_query->have_posts()):
while ($my_query->have_posts()) : $my_query->the_post();
...
endwhile;
endif;
wp_reset_query();
// Attempt method 1
posts_nav_link(' — ', __('« Newer Posts'), __('Older Posts »'));
// Attempt method 2
previous_posts_link('« Newer');
next_posts_link('Older »');
任何想法出了什么问题?