如何在wordpress中实现分页

时间:2014-01-17 07:19:59

标签: php mysql wordpress

我使用page.php在word press中开发了一个表单。现在我正在显示从数据库中获取的所有表单数据。但是,当我显示我的所有记录时,我的页面会滚动很多。现在我想在我的页面上实现分页。任何人都可以建议我如何在word press中实现分页。因为我第一次实施分页所以我使用本教程从某些地方找到..它的工作正常,但没有为下一页记录创建正确的链接。谢谢......

if ( !( isset( $pagenum ) ) ) {
     $pagenum = 1;
}
  
    

这里我们计算结果的数量     编辑$ data作为您的查询

  
$data = mysql_query("SELECT * FROM red_donation_info") or die( mysql_error() );
$rows = mysql_num_rows( $data );
  
    

这是每页显示的结果数

  
 $page_rows = 10;
  
    

这告诉我们最后一页的页码

  
$last = ceil( $rows / $page_rows );
  
    

这可确保页码不低于或超过我们的最大页数

  
if ( $pagenum < 1 ) {
     $pagenum = 1;
 } elseif ( $pagenum > $last ) {
     $pagenum = $last;
 }
  
    

这设置了我们的查询中显示的范围

  
$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;
  
    

这是您的查询,同一个...唯一的区别是我们将$ max添加到其中

  
$data_p = mysql_query("SELECT * FROM red_donation_info $max") or die(mysql_error()); 
  
    

这是显示查询结果的地方

  
while ( $info = mysql_fetch_array( $data_p ) ) {
      print $info['Name'];
      echo "<br>";
 }
 echo "<p>";
  
    

这会向用户显示他们所在的页面以及总页数

  
 echo " --Page $pagenum of $last-- <p>";
  
    

首先,我们检查一下是否在第一页。如果我们那么我们不需要链接到上一页或第一页,所以我们什么都不做。如果不是,那么我们会生成指向第一页和上一页的链接。

  
if ( $pagenum == 1 ) {
 } else {
    echo "<a href='{$_SERVER['PHP_SELF']}?pagenum=1'> <<-First</a> ";
    echo " ";
    $previous = $pagenum-1;
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'> <-Previous</a> ";
 }
  
    

只是一个间隔

  
echo " ---- ";
  
    

这与上面相同,只检查我们是否在最后一页,然后生成下一个和最后一个链接

  
if ( $pagenum == $last ) {
 } else {
     $next = $pagenum + 1;
     echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'>Next -></a> ";
     echo " ";
     echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last ->></a> ";
 }

1 个答案:

答案 0 :(得分:0)

尽量避免使用mysql_ *函数

$_GET['start'] = isset($_GET['start']) && ctype_digit($_GET['start']) ? abs(@intval($_GET['start'])) : 0;
$select = mysql_query("SELECT COUNT(`id`) FROM `red_donation_info`");
$total  = mysql_result($select, 0, 0);
$pages  = ceil($total / 10);
$ret    = '';
for($i = 1; $i <= $pages; $i++) {
    $start = ($i - 1) * 10;
    $ret  .= "<a href='".$_SERVER['PHP_SELF']."?start=".$start."'>Page ".$i."</a>, ";
}
echo "Page: ".substr($ret, 0, -2);
$mainSelect = mysql_query("SELECT `whatever` FROM `red_donation_info` LIMIT ".$_GET['start'].", 10");
// Loop through data here

这就是我要做的事情。
未经测试,因此可能需要编辑