WP_Query循环不显示带分页的帖子

时间:2013-06-05 14:02:14

标签: wordpress pagination

我正在尝试在WordPress中实现分页。显示分页的导航,并且数据库的后传输也有效。但是从第二页开始,它们在循环中不可见。

以下是代码:

paged = ($permalink[4]) ? $permalink[4] : 0;
$query = new WP_Query( 'cat='.$catObj->cat_ID.'&posts_per_page=10&paged='.$paged );
if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post();

错误在哪里?

1 个答案:

答案 0 :(得分:1)

可能不是您正在寻找的技术,但我总是将其包含在我的function.php中:

function ro_pagination($pages = '', $range = 2)
{  
     $showitems = ($range * 2)+1;  

     global $paged;
     if(empty($paged)) $paged = 1;

     if($pages == '')
     {
         global $wp_query;
         $pages = $wp_query->max_num_pages;
         if(!$pages)
         {
             $pages = 1;
         }
     }   

     if(1 != $pages)
     {
         echo "<div class='pagination'><ul>";
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<li><a href='".get_pagenum_link(1)."'>&laquo;</a></li>";
         if($paged > 1 && $showitems < $pages) echo "<li><a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a></li>";

         for ($i=1; $i <= $pages; $i++)
         {
             if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
             {
                 echo ($paged == $i)? "<li><span class='current'>".$i."</span></li>":"<li><a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a></li>";
             }
         }

         if ($paged < $pages && $showitems < $pages) echo "<li><a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a></li>";  
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<li><a href='".get_pagenum_link($pages)."'>&raquo;</a></li>";
         echo "</ul></div>\n";
     }
}

并在主题文件中调用它:

<?php ro_pagination(); ?>

一些css和作品就像一个魅力。

/*-----------------------------------------------------------------------------
        PAGINATION
-----------------------------------------------------------------------------*/

.pagination { 
    padding: 10px 0 20px 0;
}

.pagination ul { 
    text-align: center;
    font-size:11px;
}

.pagination li {
    width: 35px;
    min-height: 35px;
    display: -moz-inline-stack;
    display: inline-block;
    vertical-align: top;
    margin: 3px;
    zoom: 1;
    *display: inline;
    _height: 35px;
}

.pagination li span,
.pagination li a {
    width: 35px;
    height: 35px;
    display: block;
    line-height: 35px;
    background: #b3b3b3;
    text-decoration:none;
    color: #ffffff;
    font-size: 16px;
    font-weight: 600;

    -webkit-border-radius: 30px;
       -moz-border-radius: 30px;
         -o-border-radius: 30px;
        -ms-border-radius: 30px;
            border-radius: 30px;
}

.pagination li a:hover {
    color:#fff;
    background: #3c3d3c;
}

.pagination .current { 
    background: #e87204; 
    color:#fff;
}

我在主题文件中发现了一件可能对你有帮助的事情,我不是程序员,所以我在这里打了一针。

在archive.php之后:

<?php if (have_posts()) : ?>

我找到了:

<?php $post = $posts[0]; ?>

认为这是一个黑客,所以日期功能正常,不记得了。

希望它有点帮助。

修改

archive.php

<?php get_header(); ?>

    <?php if (have_posts()) : ?>

    <?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>

    <div id="content" class="archive clearfix">

        <div class="archive-inside clearfix">

            <div id="archive-title">

                <?php /* If this is a category archive */ if (is_category()) { ?>
                <h2>U bekijkt berichten uit de categorie: <?php single_cat_title(); ?></h2>

                <?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
                <h2>U bekijkt berichten met de tag: <?php single_tag_title(); ?></h2>

                <?php } ?>

            </div> <!-- archive-title -->

            <?php while (have_posts()) : the_post(); ?>

            <article class="gradient">

                <a href="<?php the_permalink() ?>"><?php the_title('<h2>','</h2>'); ?></a>

                <?php if(has_post_thumbnail()) { 

                  echo '<div class="archive-thumb">'; 

                  the_post_thumbnail('thumbnail');

                  echo '</div>'; }

                ?>

                <?php ro_excerpt('ro_excerpt_43', 'ro_excerpt_more', false); ?>

                <p class="date"><?php echo get_the_date(); ?></p>

            </article>

            <?php endwhile; endif; ?>

        </div> <!-- end archive inside -->

<?php ro_pagination(); ?>

    </div> <!-- end content -->

<?php get_footer(); ?>