这里有一个分页类使用:
<?php
class sitePagination{
public $currentPage;
public $perPage;
public $totalRecords;
public function __construct($page = 1,$per_page = 2, $total_records = 0){
$this->currentPage = (int)$page;
$this->perPage = (int)$per_page;
$this->totalRecords = (int)$total_records;
}
public function totalPages(){
return ceil($this->totalRecords/$this->perPage);
}
public function previousPage(){
return $this->currentPage - 1;
}
public function nextPage(){
return $this->currentPage + 1;
}
public function previousPageExists(){
return $this->previousPage() >= 1 ? true : false;
}
public function nextPageExists(){
return $this->nextPage() <= $this->totalPages() ? true : false;
}
public function offset(){
return ($this->currentPage - 1) * $this->perPage;
}
}
?>
然后在page.html中,我用这个:
//include the paginate class. I put it in the theme folder
include("paginate.php");
//This is the SQL Query to get the number of rows I have
$count = "SELECT COUNT(*) FROM $wpdb->blogs WHERE site_id = $wpdb->siteid AND public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' AND last_updated != '0000-00-00 00:00:00'";
$number = mysql_query($count);
$row = mysql_fetch_array($number);
$num_rows = array_shift($row);
//Define some variable to hold our pagination settings
$page = !empty($_GET['current_page']) ? (int)$_GET['current_page'] : 1;
$perPage = 5;
$paginate = new sitePagination($page,$perPage,$num_rows);
//This is the actual SQL Query to fetch the Data from Database
$query = $wpdb->prepare("SELECT blog_id, domain, path FROM $wpdb->blogs WHERE site_id = %d AND public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' AND last_updated != '0000-00-00 00:00:00' ORDER BY last_updated DESC LIMIT {$perPage} OFFSET {$paginate->offset()}", $wpdb->siteid);
//echo "query is $query<br/>";
$terms = $wpdb->get_results($query,ARRAY_A);
echo "<ul>";
foreach($terms as $detail)
{
//$cat_parent = get_category($detail->parent);
//Had to use the $cat_parent to build the link
//if some has a better idea, would be nice
echo "<li style='font-size:1.3em;'><a href='http://".$detail[ 'domain' ].$detail['path']."'>".get_blog_option($detail['blog_id'], 'blogname')."</a></li>";
}
// The Fun starts here, all the code below will generate our dynamic page number
// The container class is the same as WP PAGENAVI
// I'm using a custom pagination class I created
echo "</ul>";
//echo "<span class='pages'>Page {$page} of {$paginate->totalPages()}</span>";
if($paginate->totalPages() > 1){
if($paginate->previousPageExists()){
echo '<a href="?cat='.$cat_parent->term_id.'¤t_page='.$paginate->previousPage().'">« Previous</a>';
}
}
if(ceil($paginate->totalPages()) > 1){
for($i=1;$i < ceil($paginate->totalPages()) + 1;$i++){
if($page == $i)
echo '<span class="current"> '.$i.' </span>';
else
echo '<a href="'.$cat_parent->slug.'/?current_page='.$i.'"> '.$i.' </a>';
}
}
if($paginate->totalPages() > 1){
if($paginate->nextPageExists()){
echo '<a href="?cat='.$cat_parent->term_id.'¤t_page='.$paginate->nextPage().'">Next »</a>';
}
}
我收到这些错误信息: 警告:mysql_fetch_array()期望参数1是资源,在第13行的C:\ xampp \ htdocs \ wordpress \ wp-content \ themes \ safwan \ page-paginated.php中给出布尔值 警告:array_shift()期望参数1是数组,在第14行中的C:\ xampp \ htdocs \ wordpress \ wp-content \ themes \ safwan \ page-paginated.php中给出null – esafwan 2010-08-02 17:19:09
第13行是:$ row = mysql_fetch_array($ number);第14行是:$ num_rows = array_shift($ row); – esafwan 2010-08-02 17:19:50
我会确保变量$ wpdb-> blogs和$ wpdb-> siteid确实被填充。我为此使用了wordpress 3.0。如果这些变量没有回应出你期望的结果,那么这将抛出填充$ count变量的查询结果。 – 2010-08-02 17:40:32