代码之家  ›  专栏  ›  技术社区  ›  in2d

Wordpress第二页分页不显示帖子

  •  0
  • in2d  · 技术社区  · 4 年前

    我一直在尝试将数字分页添加到我的自定义wordpress主题中。我遇到了一个问题,在第二页(或第三页)上看不到任何帖子。我已经设置好了page-archive.php文件、index.php、single.php文件。这应该是博客网站需要的一切吗?我有点困惑,我在这里错过了什么?我一直在尝试多种不同的选项,并试图修改我的page-archive.php页面,但没有成功。

    index.php

    <div class="blogitem a">
    <?php
                
            //PRINT ONLY Tutvustus
            $lastBlog = new WP_Query('type=post&posts_per_page=3');
                
            if( $lastBlog->have_posts() ):
                
                while( $lastBlog->have_posts() ): $lastBlog->the_post(); ?>
                    
                    <?php get_template_part('page-archive',get_post_format()); ?>
                
                
                
                
                <?php endwhile;
                
            endif;
            
            wp_reset_postdata();
                    
            ?>
            
            <div class="pagination">
    <?php
    if ( get_query_var('paged') ) { $paged = get_query_var('paged'); }
    elseif ( get_query_var('page') ) { $paged = get_query_var('page'); }
    else { $paged = 1; }
    
    query_posts(array(
        'post_type'      => 'post', // You can add a custom post type if you like
        'paged'          => $paged,
        'posts_per_page' => 2
    ));
    
    if ( have_posts() ) : ?>
    
    <?php while ( have_posts() ) : the_post(); ?>
    
        <?php // post content goes here ?>
    
    <?php endwhile; ?>
    
        <?php my_pagination(); ?>
    
    <?php else : ?>
    
        <?php // no posts found message goes here ?>
    <?php wp_reset_query(); // add this ?>
    <?php endif; ?>
    
    
    </div>
            
    </div>
    

    函数.php

    if ( ! function_exists( 'my_pagination' ) ) :
        function my_pagination() {
            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
            ) );
        }
    endif;
    

    page-archive.php

    <?php
    /*
    Template Name: Archives
    */
    get_header(); ?>
    
      
    <div id="container">
        <div id="content" role="main">
    
            <?php the_post(); ?>
            <h1 class="entry-title"><?php the_title(); ?></h1>
            
            
             
      
        
    
        </div><!-- #content -->
    </div><!-- #container -->
    
    
    <?php get_footer(); ?>
    
    0 回复  |  直到 4 年前
        1
  •  0
  •   in2d    4 年前

    事实证明,我不需要前半段代码。感觉愚蠢。不管怎样,答案就在这里。

    <div class="pagination">
    <?php
    if ( get_query_var('paged') ) { $paged = get_query_var('paged'); }
    elseif ( get_query_var('page') ) { $paged = get_query_var('page'); }
    else { $paged = 1; }
    
    query_posts(array(
        'post_type'      => 'post', // You can add a custom post type if you like
        'paged'          => $paged,
        'posts_per_page' => 2
    ));
    
    if ( have_posts() ) : ?>
    
    <?php while ( have_posts() ) : the_post(); ?>
    
        <?php get_template_part('catalog',get_post_format()); ?> // added template part here and voila it works
    
    <?php endwhile; ?>
    
        <?php my_pagination(); ?>
    
    <?php else : ?>
    
        <?php  ?>
    <?php wp_reset_query(); // add this ?>
    <?php endif; ?>
    
    
    </div>