【问题标题】:Pagination for Custom Loop (loop with foreach)自定义循环的分页(使用 foreach 循环)
【发布时间】:2017-11-09 01:59:41
【问题描述】:

我正在尝试将分页添加到自定义循环中,但我不知道该怎么做。当我设法添加“预览”和“下一步”按钮时,它总是显示相同的 10 个帖子。我找到了一些针对 while 循环的解决方案,但没有针对 foreach 循环(实际上我以前从未使用过)。 这是循环(get_posts 有问题吗?):

<?php 
  $news = get_posts(array('posts_per_page' => 10)); 
  $news['paged'] = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; ?>

        <?php foreach ($news as $article): ?>
            <div class="col-md-4">
                <h3><a href="<?php echo get_permalink($article->ID); ?>"><?php echo $article->post_title ?></a></h3>
                <hr>
                <p class="desc"><?php echo $article->post_excerpt ?></p>

        <a href="<?php echo get_permalink($article->ID); ?>"><?php echo get_the_post_thumbnail($article->ID,'thumbnail'); ?></a>
                <p class="btn_text"><a href="<?php echo get_permalink($article->ID); ?>"> Ler mais</a></p>
            </div>
        <?php endforeach; ?>


   <?php previous_posts_link( '<<' );
    next_posts_link( '>>', $custom_query->max_num_pages ); ?>

【问题讨论】:

    标签: php wordpress loops foreach pagination


    【解决方案1】:
    <?php
    if ( get_query_var('paged') ) {
        $paged = get_query_var('paged');
    } elseif ( get_query_var('page') ) { // 'page' is used instead of 'paged' on Static Front Page
        $paged = get_query_var('page');
    } else {
        $paged = 1;
    }
    
    $custom_query_args = array(
        'post_type' => 'post', 
        'posts_per_page' => get_option('posts_per_page'),
        'paged' => $paged,
        'post_status' => 'publish',
        'ignore_sticky_posts' => true,
        //'category_name' => 'custom-cat',
        'order' => 'DESC', // 'ASC'
        'orderby' => 'date' // modified | title | name | ID | rand
    );
    $custom_query = new WP_Query( $custom_query_args );
    
    if ( $custom_query->have_posts() ) :
        while( $custom_query->have_posts() ) : $custom_query->the_post(); ?>
    
            <article <?php post_class(); ?>>
                <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
                <small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small>
                <div><?php the_excerpt(); ?></div>
            </article>
    
        <?php
        endwhile;
        ?>
    
        <?php if ($custom_query->max_num_pages > 1) : // custom pagination  ?>
            <?php
            $orig_query = $wp_query; // fix for pagination to work
            $wp_query = $custom_query;
            ?>
            <nav class="prev-next-posts">
                <div class="prev-posts-link">
                    <?php echo get_next_posts_link( 'Older Entries', $custom_query->max_num_pages ); ?>
                </div>
                <div class="next-posts-link">
                    <?php echo get_previous_posts_link( 'Newer Entries' ); ?>
                </div>
            </nav>
            <?php
            $wp_query = $orig_query; // fix for pagination to work
            ?>
        <?php endif; ?>
    
    <?php
        wp_reset_postdata(); // reset the query 
    else:
        echo '<p>'.__('Sorry, no posts matched your criteria.').'</p>';
    endif;
    ?>                                        
    

    来源:http://web-profile.net/wordpress/themes/wordpress-custom-loop/

    【讨论】:

    • 谢谢!我还是有问题。当我点击“旧条目”时,我被重定向到主页。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多