个性化阅读
专注于IT技术分析

自定义帖子wp_query上的分页

<?php
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $loop = new WP_Query(
            array(
                'post_type' => 'html5-blank', 'posts_per_page' => 5, 'paged'=>$paged
            )
        );
?>
<?php if ($loop->have_posts()): while ($loop->have_posts()) : $loop->the_post(); ?>      
 //Loop Code Here..
 <?php wp_reset_query(); ?> 
   <nav>
        <?php previous_posts_link( 'Newer posts &raquo;' ); ?>
        <?php next_posts_link('Older &raquo;') ?>
    </nav>
<?php endwhile; ?>
<?php else: ?>

输入结果后, 下一页的网址是:www.mywebsite.com/blog/page/2正在工作。但是我无法显示分页链接。

哪里出错了?

编辑:分页链接显示在页面2 /, 但不在博客主页面中。为什么?


#1


我想你把<?php wp_reset_query(); ?>在错误的位置..是分页代码之后还是分页代码之后?

像这样的东西

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

#2


我建议通过自定义帖子wp_query进行分页的3种方法。不幸的是, 到目前为止, 关于这一点的信息并不多, 或者至少在某些情况下不清楚。希望这会有所帮助!

请注意, 你也确实将wp_reset_postdata()放在错误的位置, 但是要使其正常工作还需要更多。

选项1-使用max_num_pages变量

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array( 
        'posts_per_page' => 1, 'paged' => $paged, 'post_type' => 'cpt_type'
    );
    $cpt_query = new WP_Query($args);
?>

<?php if ($cpt_query->have_posts()) : while ($cpt_query->have_posts()) : $cpt_query->the_post(); ?>

    //Loop Code Here...

<?php endwhile; endif; ?>

<nav>
    <ul>
        <li><?php previous_posts_link( '&laquo; PREV', $cpt_query->max_num_pages) ?></li> 
        <li><?php next_posts_link( 'NEXT &raquo;', $cpt_query->max_num_pages) ?></li>
    </ul>
</nav>

你将在上方看到previous_posts_link和next_posts_link的格式略有不同, 它们现在可以访问max_num_pages变量。访问max_num_pages时, 请确保使用你自己的查询变量名。注意, 我使用$ cpt_query, 因为那是我的查询示例的变量。

选项2-暂时将$ wp_query变量用于循环查询

这是很多人的建议, 但是要小心地将$ wp_query变量分配给temp变量, 然后重新分配它, 否则会遇到各种麻烦。这就是为什么我建议选择#1的原因。如CSS技巧所述, 你可以执行以下操作:

<?php 
  $temp = $wp_query; 
  $wp_query = null; 
  $wp_query = new WP_Query(); 
  $wp_query->query('showposts=6&post_type=news'.'&paged='.$paged); 

  while ($wp_query->have_posts()) : $wp_query->the_post(); 
?>

  <!-- LOOP: Usual Post Template Stuff Here-->

<?php endwhile; ?>

<nav>
    <?php previous_posts_link('&laquo; Newer') ?>
    <?php next_posts_link('Older &raquo;') ?>
</nav>

<?php 
  $wp_query = null; 
  $wp_query = $temp;  // Reset
?>

选项3-使用WP-pagenavi插件

就像另一个选项一样, 你可以使用WP-pagenavi插件, 并按照选项#1进行设置。但是, 一旦安装了插件, 请对代码进行一次更改, 删除元素中的所有内容并替换为该功能。因此, 你将以:

<nav>
    <?php wp_pagenavi( array( 'query' => $cpt_query ) ); ?>
</nav>

#3


<?php    
add_shortcode('show_all_news', 'show_all_news');
    function show_all_news($atts) {
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $limit = 4;
        $offset = ( $limit * $paged ) - $limit;
        $atts['pages'] = $paged; 
        $atts['post-type'] = 'your_custom_post_type'; 
        $atts['orderby'] = 'date'; 
        $atts['order'] = 'DESC';
        $atts['offset'] = $offset; 
        $atts['posts_per_page'] = $limit; 
        $atts['caller_get_posts'] = 1; 

        $result = new WP_Query($atts);
        echo '<div class="news-cont">';  
        if($result->have_posts())
        {
            while ($result->have_posts()) : $result->the_post(); 
                echo '<div class="bg-white news-block">'; 
                echo '<em class="date">'. get_the_date().'</em>' ?>

                <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <?php 
                echo "<p>";
                the_excerpt(); 
                echo "</p>";
                echo '</div>';
            endwhile;

            ?>
                <ul class="pagination" style="width:100%;">
                    <li id="previous-posts" style="float:left">
                        <?php previous_posts_link( '<< Vorige Pagina', $result->max_num_pages ); ?>
                    </li>
                    <li id="next-posts" style="float:right">
                        <?php next_posts_link( 'Volgende Pagina >>', $result->max_num_pages ); ?>
                    </li>
                </ul>
            <?php 

        }
        echo '</div>'; 
        wp_reset_query();
    }
赞(0)
未经允许不得转载:srcmini » 自定义帖子wp_query上的分页

评论 抢沙发

评论前必须登录!