如何让我的循环分页?

时间:2013-01-08 作者:Matt

下面是一段代码,出现在我的一个名为:Featured的页面上。我创建了一个模板,然后分别创建了一个页面,并在wp admin中激活了模板。但是,当我单击按钮分页到第2页时,它看起来像:http://example.com/featured/page/2 下一页显示为空白,没有任何内容(我在各个类别中有大量内容可显示)你知道这里有什么问题吗?如果您需要进一步澄清我的问题和/或代码,请告诉我。

所有功能

<!-- Featured Loop -->
<?php
    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
    $args = array(
            \'post_type\'=> \'post\',
        \'category_name\' => \'featured-content, podcast\',
        \'posts_per_page\' => 10,
        \'paged\'=> $paged
    );
    $temp = $wp_query;
    $wp_query = null;
    $wp_query = new WP_Query($args);
    if (function_exists(\'wp_pagenavi\')) { wp_pagenavi(); }
    if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post();
?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <a href="<?php the_permalink(); ?>">
        <?php the_post_thumbnail(\'featured\'); ?>
    </a>
    <div class="meta">
        <p class="title"><?php the_title(); ?></p>
        <br>
        <p class="author">By <?php the_author(); ?></p>
    </div>
</article>

<!-- /Featured Loop -->
<?php endwhile; endif; ?>
<!-- /Featured Loop -->

<!-- Older/Newer Pagination -->
<?php if ($wp_query->max_num_pages > 1) : ?>
    <?php next_posts_link( __( \'<span class="arrow">&larr;</span> Older\' ) ); ?>
    <?php previous_posts_link( __( \'Newer <span class="arrow">&rarr;</span>\' ) ); ?>
<?php endif; ?>
<!-- /Older/Newer Pagination -->

<?php
/* PageNavi at Bottom */
    if (function_exists(\'wp_pagenavi\')){wp_pagenavi();}
    $wp_query = null;
    $wp_query = $temp;
    wp_reset_query();
?>
<!-- /Featured Loop -->

3 个回复
SO网友:AndrettiMilas

在函数中。php

function my_theme_navigation() 
{ 
    global $shortname;

    if( get_option( $shortname . \'_next_prev_or_paginate\' ) == \'Next\' ) : 
        // the block for next-prev navigation
        echo \'<div style="float:left">\';
        next_posts_link(\'Older\');
        echo \'</div>\';
        echo \'<div style="float:right">\';
        previous_posts_link (\'Newer\');
        echo \'</div>\';
    else : 
        // the block for pagination
        global $wp_query;
        $big = 999999999; // need an unlikely integer
        echo paginate_links(
            array(
                \'base\' => str_replace( $big, \'%#%\', get_pagenum_link( $big ) ),
                \'format\' => \'?paged=%#%\',
        \'end_size\'     => 1,
        \'mid_size\'     => 2,
                \'current\' => max( 1, get_query_var(\'paged\') ), 
                \'total\' => $wp_query->max_num_pages
            )
        ); 
    endif; 
}
然后更换

<!-- Older/Newer Pagination -->
<?php if ($wp_query->max_num_pages > 1) : ?>
    <?php next_posts_link( __( \'<span class="arrow">&larr;</span> Older\' ) ); ?>
    <?php previous_posts_link( __( \'Newer <span class="arrow">&rarr;</span>\' ) ); ?>
<?php endif; ?>
<!-- /Older/Newer Pagination -->

<?php
/* PageNavi at Bottom */
    if (function_exists(\'wp_pagenavi\')){wp_pagenavi();}
    $wp_query = null;
    $wp_query = $temp;
    wp_reset_query();
?>
使用。。。

<?php my_theme_navigation(); ?>

SO网友:molokom

你的代码有点凌乱,但对我有用。

我洗了一点,它对我很好。我使用WP PageNavi插件干净地安装了WP 3.5。

我使用了2个类别(测试、新闻)和每页1篇文章,因此您必须根据需要进行更改。

<?php

$temp = $wp_query;
$wp_query = null;
$wp_query_args = array( 
                    \'post_type\'=> \'post\',
                    \'category_name\' => \'news, test\',
                    \'posts_per_page\' => 1,
                    \'paged\'=> $paged
                );
$wp_query = new WP_Query( $wp_query_args );
if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post();
?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <a href="<?php the_permalink(); ?>">
        <?php the_post_thumbnail(\'featured\'); ?>
    </a>
    <div class="meta">
        <p class="title"><?php the_title(); ?></p>
        <br>
        <p class="author">By <?php the_author(); ?></p>
    </div>
</article>

<!-- /Featured Loop -->
<?php endwhile; endif; ?>
<!-- /Featured Loop -->

<?php wp_pagenavi(); ?>

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

SO网友:Matt

我在wp config中打开了debug。php,当我的页面分页时,它会发生变化,例如featured/page/2,在调用作为未定义函数加载的head之后,代码会中断。我在函数中注释掉了这个函数调用。php,现在我的原始代码可以工作了。谢谢大家的帮助。

结束

相关推荐

Wordpress Pagination Problem

我想在wordpress索引中设置分页。php,但它不工作。在我的索引中。php有3个显示自定义帖子的循环部分,我想在索引中的Blog/recent post部分循环中设置分页。php。这是索引中的代码。php<?php /** * @package WordPress * @subpackage Adapt Theme */ $options = get_option( \'adapt_theme_settings\' ); ?> &l