Processwire分页

时间:2015-05-29 09:18:33

标签: pagination processwire

我正在开发新闻部分,这是我第一次使用ProcessWire。 我有以下代码:

                <?php
                $articles           = $page->children("limit=2");

                if(!empty($articles)):        
                    foreach($articles as $article):
            ?>

                <div class="news-article">

                    <div class="row">
                        <div class="small-12 medium-12 large-9 columns">
                            <a href="<?php echo $article->url;?>"><h3 style="padding-bottom: 15px;"><?php echo $article->title;?></h3></a>
                            <?php echo substr($article->body, 0, 375); ?>...
                            <p><a href="<?php echo $article->url;?>">Read full story &gt;</a></p>
                        </div>
                        <div class="small-12 medium-12 large-3 columns">
                            <img src="<?php echo $article->images->url . $article->images; ?>" style="margin: 20px 0 20px 0;" />
                        </div>
                        <div style="clear: both;"></div>
                    </div>

                </div>

                <style>
                .news-article {
                    padding:                20px 0 0 0;
                    margin:                 20px 0 20px 0;
                }
                </style>

            <?php 
                    endforeach;
                else:
                    echo "<h3>No articles found</h3>";
                endif;

                $pagination = $articles->renderPager();
                echo $pagination;
            ?>

我的问题是分页正确显示2页链接,但点击第二页显示第2页的前2篇文章。

我假设我必须修改我的文章显示代码以考虑我所在的页面,但我不确定该怎么做。

有没有人有任何想法?

谢谢, 格雷厄姆

1 个答案:

答案 0 :(得分:6)

请先回到official pagination documentation,并确保再次仔细阅读。

我想你错过了在你的模板中启用分页:

  

确定要使用分页的模板。转到管理员&gt;设置&gt;模板&gt; [您的模板]&gt; URL,并选中以下框:允许页码。保存。

Enable pagination for a template

现在,您应该可以使用您的代码,而不会出现任何问题。每次使用$pages->find() limit参数&gt; 1时,都会自动处理。