web-dev-qa-db-ja.com

カスタム作成者ページへのページ付けの追加

自分の投稿のタイトルをリストしたカスタム作者のページを作成しました。しかし、問題は、ページごとの投稿数の設定値を超えているとページネーションが機能しないことです。私はそれがカスタムループするためにget_posts()を使用しました。

<?php 
                    $ppp = 5; //set my custom number of post to appear
                    $uid = $curauth->ID;
                    $args = array(
                                    'numberposts' => $ppp,
                                    'author' => $uid

                                );
                    $authorposts = get_posts($args);
                    //print_r($authorposts);
                    if ( count( $authorposts ) > 0 ) {               

                        foreach ( $authorposts as $post ):  setup_postdata($post)            ?>
                            <li>


                                <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>" class="authorpostlink"><?php the_title(); ?></a>
                                <?php the_excerpt(); ?>
                            </li>
                    <?php endforeach;  ?>
                        <div class="post-nav">
                            <div class="previous"><?php previous_posts_link('&lsaquo; Previous Page') ?></div>
                            <div class="next"><?php next_posts_link('Next Page &rsaquo;') ?></div>
                        </div>
                    <?php
                    } else {
                        echo '<p>No articles by this user</p>';
                    }       
                    ?>

これはタイトル付きの5つの投稿を表示し、作者によって抜粋されます。...しかし、残りの投稿はページ付けされていません。ページ付けされているのはブログ上の投稿の総数です。

1
Ven

以下のコードをfunctions.phpファイルに入れます。

function limit_posts_per_page() {
if ( is_author() ) // you can limit other pages as well ( i.e. is_archive() ), if need be.
    return 5;
}
add_filter( 'pre_option_posts_per_page', 'limit_posts_per_page' );

author.phpテンプレートを使用していることを確認してください。そうしないと機能しません。ベストプラクティスについては、20のauthor.phpをご覧ください。

6
VicePrez