web-dev-qa-db-ja.com

改ページはフロントページで多少機能しています、 "prev"がクリックされても更新されません

私はこのページにあるとても簡単なチュートリアルに従いました: http://wp.tutsplus.com/tutorials/wordpress-pagination-a-primer/ ( 「より良い解決策」までスクロールしてください。 - 彼はそれをとても単純に見せて、そしてページネーションリンクがあってアドレスバーのURLが変わるという点でうまくいきます、しかし2または3をクリックしても実際には更新されません。 。

サイト - chrisayreswebdev.com/besh

私は何かが足りないのを知っています。何か案は?ありがとうございます。

編集:functions.php:

function paginate() {
global $wp_query; 
$total_pages = $wp_query->max_num_pages;  

if ($total_pages > 1){  

 $current_page = max(1, get_query_var('paged'));  

 echo paginate_links(array(  
        'base' => get_pagenum_link(1) . '%_%',  
        'format' => 'page/%#%',  
        'current' => $current_page,  
        'total' => $total_pages,
     ));  
}
}

index.php:

        <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
                <div class="post">
                <h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                 <?php the_title(); ?></a></h1>
                <h4>Posted on <?php the_time('F jS, Y') ?></h4>
                <div class="horzline"></div>
                <p><?php the_content(__('(more...)')); ?></p>
                </div>
            <?php endwhile; else: ?>
            <p><?php _e("Sorry, we couldn't find the post you are looking for."); ?></p>

        <?php endif; ?>
        <?php paginate(); ?>  
2
user

あなたの問題はここにあると思います:

'base' => get_pagenum_link(1) . '%_%'

実際のページ番号ではなく、1get_pagenum_link()に渡しています。代わりに、以前に決めた$current_pageを渡してみてください。

'base' => get_pagenum_link( $current_page ) . '%_%'

注:私はこれをbaseとして使用しています。

'base' => @add_query_arg('paged','%#%')

編集する

私はあなたの提案とあなたが使う'@add_query_arg'を試してみましたが、どちらも実際にページ付けを次の投稿に更新するようには見えませんでした。 URLは "/ besh/page/2"に変更されますが、投稿は変更されず、ページ番号は1のままになります。まるで自分のコードから何かが足りないようです。

私ができる最善のことはあなたに私の完全で実用的なコードを渡すことです:

/**
 * Paginate Archive Index Page Links
 */
function oenology_get_paginate_archive_page_links( $type = 'plain', $endsize = 1, $midsize = 1 ) {
    global $wp_query, $wp_rewrite;  
    $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;

    // Sanitize input argument values
    if ( ! in_array( $type, array( 'plain', 'list', 'array' ) ) ) $type = 'plain';
    $endsize = (int) $endsize;
    $midsize = (int) $midsize;

    // Setup argument array for paginate_links()
    $pagination = array(
        'base' => @add_query_arg('paged','%#%'),
        'format' => '',
        'total' => $wp_query->max_num_pages,
        'current' => $current,
        'show_all' => false,
        'end_size' => $endsize,
        'mid_size' => $midsize,
        'type' => $type,
        'prev_text' => '&lt;&lt;',
        'next_text' => '&gt;&gt;'
    );

    if( $wp_rewrite->using_permalinks() )
        $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );

    if( !empty($wp_query->query_vars['s']) )
        $pagination['add_args'] = array( 's' => get_query_var( 's' ) );

    return paginate_links( $pagination );
}
1
Chip Bennett