在Wordpress中为自定义帖子类型创建分页

问题描述:

我有一个我希望添加分页的活动页面。然而,由于它是一种自定义的帖子类型,我觉得它很难。我设法为我的新闻页面分页工作,但我无法获得事件页面的相同结果。这里是我的活动页面在Wordpress中为自定义帖子类型创建分页

<?php 
get_header(); 
get_sidebar('left'); 
?> 
<article class="content-main events" role="main" id="post-<?php the_ID() ?>"> 
<?php include 'breadcrumbs.php'; ?> 
<?php query_posts(array('posts_per_page'=>'2')); ?> 
<?php while (have_posts()) : the_post(); ?> 
     <div class="news-post"> 
      <h1><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h1> 
      <?php the_excerpt() ?> 
     </div> 

     <?php endwhile; ?> 
     <?php wp_reset_query(); ?> 

<!--Pagination--> 
    <?php echo paginate_links($args) ?> 
    <?php 
    global $wp_query; 

    $big = 999999999; // need an unlikely integer 

    echo paginate_links(array(
     'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 
     'format' => '?paged=%#%', 
     'current' => max(1, get_query_var('paged')), 
     'total' => $wp_query->max_num_pages 
    )); 
    ?> 
</article><!-- //.content-main --> 
<?php 

get_footer(); 

代码如果我尝试这个

<?php query_posts(array('posts_per_page'=>'2')); ?> 

改变这种

<?php query_posts(array('category_name'=>'events','posts_per_page'=>'2')); ?> 

这不工作要么。但是,如果我完全删除该行,则会显示新闻发布类型。我很难过!

+0

“事件”类别属于帖子类型分类权吗? – loQ

自定义帖子类型的分页应该与普通帖子一样工作。

如果你看看默认主题TwentyEleven,你可以看到他们是如何做到的。

基本上他们使用next_posts_link()previous_posts_link()功能。

你可以在functions.php看看>twentytwelve_content_nav();

干杯,

你需要添加全球$分页,然后你的数组被传递给WP_Query你需要添加 '分页'=> $分页

“>
<?php 
global $paged; 
$temp = $wp_query; 
        $wp_query = null; 

        $wp_query = new WP_Query(array('post_type' => 'yourcustomepost','posts_per_page' => 2, 'paged' => $paged)); ?> 
<?php while (have_posts()) : the_post(); ?> 
     <div class="news-post"> 
      <h1><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h1> 
      <?php the_excerpt() ?> 
     </div> 

     <?php endwhile; ?> 
     <?php wp_reset_query(); ?> 

<!--Pagination--> 
    <?php echo paginate_links($args) ?> 
    <?php 
    global $wp_query; 

    $big = 999999999; // need an unlikely integer 

    echo paginate_links(array(
     'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 
     'format' => '?paged=%#%', 
     'current' => max(1, get_query_var('paged')), 
     'total' => $wp_query->max_num_pages 
    )); 
    ?> 
</article><!-- //.content-main --> 
<?php 
+0

你太棒了!没有太多的WordPress经验,所以谢谢你!我有最后一个查询,它只显示第一页。第二页出现404错误:/ –

+0

将'posts_per_page'=> 2更改为'posts_per_page'=> 10或任何您想要的数字。确保你有适当的永久链接结构,这可能是404错误的问题 –

+1

是的,我明白如何显示更多。我目前有4个活动,每页3个。当我使用分页链接时,它显示一个错误。 –

只需更换以下功能functions.php文件 注:在后台设置 - > reading->每页帖子:将该值设置为一个

function twentyeleven_content_nav($html_id) 
{ 
    global $wpdb; 
    global $wp_query; 

    if ($wp_query->max_num_pages > 1) : ?> 
     <nav id="<?php echo esc_attr($html_id); ?>"> 
      <h3 class="assistive-text"><?php _e('Post navigation', 'twentyeleven'); ?></h3> 
      <div class="nav-previous"> 
       <?php next_posts_link(__(' Previous', 'twentyeleven')); ?> 
       <?php 
        $count = $wpdb->get_var("SELECT COUNT(*) FROM wp_posts where post_type='post' and post_content<>''"); 

        for($j=1;$j<=$count;$j++) 
        { 
         echo "<a href='?paged=$j'> $j < </a>"; 
        } 
       ?> 
       <?php previous_posts_link(__('Next', 'twentyeleven')); ?> 
      </div> 

     </nav><!-- #nav-above --> 
    <?php endif; 
}