2

ページネーションを追加したいイベントページがあります。ただし、カスタム投稿タイプであるため、かなり難しいと感じています。ニュース ページではページネーションを機能させることができましたが、イベント ページでは同じ結果が得られません。これがイベントページのコードです

<?php
get_header();
get_sidebar('left');
?>
<article class="content-main events" role="main" id="post-<?php the_ID() ?>">
<?php include 'breadcrumbs.php'; ?>
<?php query_posts(array('posts_per_page'=>'2')); ?>
<?php while (have_posts()) : the_post(); ?> 
        <div class="news-post">
            <h1><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h1>
            <?php the_excerpt() ?>
        </div>

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

<!--Pagination-->
    <?php echo paginate_links( $args ) ?>
    <?php
    global $wp_query;

    $big = 999999999; // need an unlikely integer

    echo 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
    ) );
    ?>
</article><!-- //.content-main -->
<?php

get_footer();

これを変えようとしたら

<?php query_posts(array('posts_per_page'=>'2')); ?>

これに

<?php query_posts(array('category_name'=>'events','posts_per_page'=>'2')); ?>

これもうまくいきません。ただし、行を完全に削除すると、ニュース投稿の種類が表示されます。私は困惑しています!

4

3 に答える 3

3

カスタム投稿タイプのページネーションは、通常の投稿と同じように機能するはずです。

デフォルトのテーマTwentyElevenを見てみると、彼らがどのようにそれを行っているかがわかります。

基本的に、next_posts_link()およびprevious_posts_link()関数を使用します。

functions.php でそれを確認できます

乾杯、

于 2012-10-18T13:52:08.320 に答える
0

グローバル $paged を追加する必要があり、WP_Query に渡される配列に 'paged' => $paged を追加する必要があります

">
<?php 
global $paged;
$temp = $wp_query;
                    $wp_query = null;

                    $wp_query = new WP_Query( array('post_type' => 'yourcustomepost','posts_per_page' => 2, 'paged' => $paged ) ); ?>
<?php while (have_posts()) : the_post(); ?> 
        <div class="news-post">
            <h1><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h1>
            <?php the_excerpt() ?>
        </div>

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

<!--Pagination-->
    <?php echo paginate_links( $args ) ?>
    <?php
    global $wp_query;

    $big = 999999999; // need an unlikely integer

    echo 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
    ) );
    ?>
</article><!-- //.content-main -->
<?php
于 2012-10-18T14:01:44.450 に答える
0

functions.php ファイルの以下の関数を置き換えるだけです 注: バックエンド設定で -> 読み取り -> ページごとに投稿: この値を 1 に設定します。

function twentyeleven_content_nav( $html_id ) 
{
    global $wpdb;
    global $wp_query;

    if ( $wp_query->max_num_pages > 1 ) : ?>
        <nav id="<?php echo esc_attr( $html_id ); ?>">
            <h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>
            <div class="nav-previous">
                <?php next_posts_link( __( ' Previous', 'twentyeleven' ) ); ?>
                <?php
                    $count = $wpdb->get_var( "SELECT COUNT(*) FROM wp_posts where post_type='post' and post_content<>''" );

                    for($j=1;$j<=$count;$j++)
                    {
                        echo "<a href='?paged=$j'> $j < </a>";
                    }
                ?>
                <?php previous_posts_link( __( 'Next', 'twentyeleven' ) ); ?>
            </div>

        </nav><!-- #nav-above -->
    <?php endif;
}
于 2013-04-18T16:36:11.687 に答える