Метод getPost () и разбиение на страницы - PullRequest
0 голосов
/ 19 ноября 2011

Я создаю соответствующую статью-статью для моего сайта с поддержкой WordPress. Будучи новичком в PHP и WordPress, столкнулся с некоторой проблемой. Хотя я могу использовать встроенную функцию WordPress, чтобы показывать похожие посты автора, но так как на сайте размещены статьи авторов, у которых нет с нами ни одного профиля, и таких авторов много, поэтому при создании нового поста для автора мы склонны сохранить пользовательское поле как author_email. поэтому, основываясь на этом, мы хотим показать все опубликованные посты определенного автора. Я пытался использовать метод get_posts ()

<?php 
        $args = array( 'meta_key' => 'author_email', 'meta_value' => 'XYZ@XYZ.com');
        $authorposts=get_posts($args); ?>
    <div id="content">
    <span class="breadcrumbs"><a href="<?php echo get_option('home'); ?>/">Home</a> &raquo; <?php the_category(', ') ?></span>
    <?php if (count( $authorposts ) > 0) {
    foreach ( $authorposts as $post ): setup_postdata($post)            ?>
    <div id="headline_author">
        /*
          showing post tilte with image and some part of it
        */
        <div class="clearfloat"></div>
    </div>
    <?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>';
                    }       
                    ?>
</div>

он показывает первые 5 результатов и ссылку на следующую страницу, но когда я нажимаю на следующую страницу, он показывает мне, что он перешел на вторую страницу, так как он также виден в URL, но он показывает те же 5 результатов, что и он. показал на первой странице. Мне кажется, что запрос, который я написал на той же странице, снова выполняется с самого начала, но не уверен, как это исправить. так как я использую поля cutom для получения сообщений, я могу использовать простой запрос для получения сообщений на основе лимита или отклонений и т. д.

Может ли кто-нибудь помочь мне исправить вещи или указать мне, как это сделать правильно

спасибо заранее

1 Ответ

0 голосов
/ 19 ноября 2011

Я не эксперт по word-press / php, только начал узнавать об этом.кажется, что вы не установили глобальную переменную paged, по которой она может отслеживать номер страницы.

вам нужно сделать что-то вроде этого.

$post_per_page = get_option('posts_per_page');
            if (!is_paged()) {
            $custom_offset = 0;
            } else {
            $custom_offset = $post_per_page*($paged-1); 
            }
            $args = array( 'meta_key' => 'author_email', 'meta_value' => xyz@xyz.com' ,'numberposts' => $post_per_page,'offset' => $custom_offset);
...