wp分页不在主页上显示

时间:2016-05-05 08:41:16

标签: wordpress pagination

现在我试图去pdf-market.ir/?paged=2但它显示404错误! 检查网站site search

我试图解决这个问题,但没有成功。 我的index.php中的循环代码

<ul class="page_result">
              <?php
              //$paged = (get_query_var('page')) ? get_query_var('page') :  1;
        $args = array(
            'post_type' => 'product',
            'stock' => 1,
            'posts_per_page' => 16,
            'orderby' => 'date',
            'order' => 'DESC',
            'paged' => 1,
            );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post(); global $product;   ?>
          <div class="bookbox">
              <a id="id-<?php the_id(); ?>" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
            <div class="bookbox-img">
               <?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'shop_catalog'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Placeholder" style="margin-left: -20px" width="200px" height="200px" />'; ?>
               </div>
              </a>
              <div class="bookbox-bookname"><a data-tooltip="<?php the_title(); ?>" class="bookname tooltip" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
                        <?php $mid_var = get_post_meta($post->ID, 'پدیداورنده',true);
            if(isset($mid_var) && !empty($mid_var)) : ?>
              <div class="bookbox-dtibook"><span class="garyYekan10">پدیدآورنده:</span> 
            <?php echo get_post_meta($post->ID, 'پدیداورنده',true); ?>
             </div><?php endif; ?>
                    <?php $mid_var = get_post_meta($post->ID, 'ناشر',true);
            if(isset($mid_var) && !empty($mid_var)) : ?>
              <div class="bookbox-dtibook"><span class="garyYekan10">ناشر: </span>
            <?php echo get_post_meta($post->ID, 'ناشر',true); ?>
              </div>
              <?php endif; ?>
                    <?php $mid_var = get_post_meta($post->ID, 'نوبت چاپ',true);
            if(isset($mid_var) && !empty($mid_var)) : ?>
              <div class="bookbox-dtibook"><span class="garyYekan10">نوبت چاپ:</span>
                <?php echo get_post_meta($post->ID, 'نوبت چاپ',true); ?>
              </div> 
            <?php endif; ?>
              <div class="bookbox-price"><span class="garytahoma8">قیمت: </span> <?php woocommerce_template_loop_price() ?> </div> 
                    <?php $mid_var = get_post_meta($post->ID, 'موجودی',true);
            if(isset($mid_var) && !empty($mid_var)) : ?>
              <div class="bookbox-price"><span class="garytahoma8">موجودی: </span><span class="fontgreen10">
            <?php echo get_post_meta($post->ID, 'موجودی',true); ?>
              </span> </div><?php endif; ?>
              <a alt="مشخصات کتاب" href="<?php the_permalink(); ?>"><div title="مشخصات کتاب" alt="مشخصات کتاب" class="bookbox-bookinfo"></div></a>
              <a alt="خرید کتاب" href="<?php the_permalink(); ?>&add-to-cart=<?php the_id(); ?>">
              <div alt="خرید کتاب" class="bookbox-addcart"></div>
              </a>


              </div>

        <?php endwhile; ?>
        <?php wp_reset_postdata(); ?>
</ul>   

<div class="pagination">
    <?php 
    wp_pagination(); ?>
</div>

和我的代码在function.php&gt;分页

<?php
function wp_pagination() {
    global $wp_query;
    $big = 12345678;
    $page_format = 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,
        'type'  => 'array'
    ) );
    if( is_array($page_format) ) {
                $paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
                echo '<div><ul>';
                foreach ( $page_format as $page ) {
                        echo "<li>$page</li>";
                }
               echo '</ul></div>';
    }
}
?>

这都是...... 在搜索和档案中显示分页但是 在主页和示例中:site.com不显示分页,它的位置是免费的,没有代码...

2 个答案:

答案 0 :(得分:0)

试试这个适合您的代码

<?php
                                global $query_string;
                                query_posts($query_string . "post_type=product&post_status=publish&posts_per_page=16");  
                                if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                               <?php the_title(); ?>

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

将此代码放在functions.php文件中。

function pagination_numeric_posts_nav() {

    if( is_singular() )
        return;

    global $wp_query;

    /** Stop execution if there's only 1 page */
    if( $wp_query->max_num_pages <= 1 )
        return;

    $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
    $max   = intval( $wp_query->max_num_pages );

    /** Add current page to the array */
    if ( $paged >= 1 )
        $links[] = $paged;

    /** Add the pages around the current page to the array */
    if ( $paged >= 3 ) {
        $links[] = $paged - 1;
        $links[] = $paged - 2;
    }

    if ( ( $paged + 2 ) <= $max ) {
        $links[] = $paged + 2;
        $links[] = $paged + 1;
    }

    echo '<div class=""><ul class="pagination">' . "\n";

    /** Previous Post Link */
    if ( get_previous_posts_link() )
        printf( '<li>%s</li>' . "\n", get_previous_posts_link() );

    /** Link to first page, plus ellipses if necessary */
    if ( ! in_array( 1, $links ) ) {
        $class = 1 == $paged ? ' class="active"' : '';

        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );

        if ( ! in_array( 2, $links ) )
            echo '<li>…</li>';
    }

    /** Link to current page, plus 2 pages in either direction if necessary */
    sort( $links );
    foreach ( (array) $links as $link ) {
        $class = $paged == $link ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
    }

    /** Link to last page, plus ellipses if necessary */
    if ( ! in_array( $max, $links ) ) {
        if ( ! in_array( $max - 1, $links ) )
            echo '<li>…</li>' . "\n";

        $class = $paged == $max ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
    }

    /** Next Post Link */
    if ( get_next_posts_link() )
        printf( '<li>%s</li>' . "\n", get_next_posts_link() );

    echo '</ul></div>' . "\n";

}

css for pagination。

.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
    color: #fff;
    text-decoration:none;
}

.navigation li {
    display: inline;
}

.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
    background-color: #6FB7E9;
    border-radius: 3px;
    cursor: pointer;
    padding: 12px;
    padding: 0.75rem;
}

.navigation li a:hover,
.navigation li.active a {
    background-color: #3C8DC5;
}

我希望这对你有用

答案 1 :(得分:0)

将以下函数添加到functions.php文件中:

function pagination($pages = '', $range = 4)
{  
     $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\"><span>Page ".$paged." of ".$pages."</span>";
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo; First</a>";
         if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo; Previous</a>";

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

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

要设置样式,请将以下内容添加到样式表(通常为style.css)。

.pagination {
clear:both;
padding:20px 0;
position:relative;
font-size:11px;
line-height:13px;
}

.pagination span, .pagination a {
display:block;
float:left;
margin: 2px 2px 2px 0;
padding:6px 9px 5px 9px;
text-decoration:none;
width:auto;
color:#fff;
background: #555;
}

.pagination a:hover{
color:#fff;
background: #3279BB;
}

.pagination .current{
padding:6px 9px 5px 9px;
background: #3279BB;
color:#fff;
}

最后,在你的主题中调用函数(通常在index.php或loop.php的底部附近,它表示&#34;较旧的帖子&#34;或者#34;较旧的条目&#34;):

<?php if (function_exists("pagination")) {
    pagination($additional_loop->max_num_pages);
} ?>