我正在尝试为自定义数据库循环创建分页,但它不起作用。我复制下面的代码,有人告诉我怎么了吗?
global $wpdb;
$tablom = $wpdb->prefix . \'pasla\';
$tablom2 = $wpdb->prefix . \'users\';
$query = "SELECT ".$tablom.".id as id, ".$tablom.".sonuc as pasla_sonuc, ".$tablom2.".id as userID, pasla_tarih, paslanan_marka, ".$tablom.".telefon as pasla_telefon, ".$tablom.".kazanc as pasla_kazanc, ".$tablom.".ad_soyad as pasla_ad_soyad, pasla_tarih, ".$tablom2.".display_name as userPersonName FROM ".$tablom." inner join ".$tablom2." on ".$tablom2.".ID=".$tablom.".user_id where ".$tablom.".user_id=".$current_user->ID;
$total = $wpdb->get_var( "SELECT COUNT(1) FROM (${query}) AS combined_table" );
$items_per_page = 4;
$page = isset( $_GET[\'cpage\'] ) ? abs( (int) $_GET[\'cpage\'] ) : 1;
$offset = ( $page * $items_per_page ) - $items_per_page;
$myrows = $wpdb->get_results( $query . " ORDER BY pasla_tarih LIMIT ${offset}, ${items_per_page}" );
foreach($myrows as $row){
if ( $row->pasla_sonuc == 0 ){
echo \'
<div class="col-xs-12 col-sm-12 col-md-12-col-lg-12 sonuc-kutu" style="background-color: #337ab7;">
<span>\'. $row->pasla_ad_soyad .\' - \'. (new DateTime($row->pasla_tarih))->format("d/m/Y") .\' - #\'. $row->id .\'</span>
<p>\'. $row->paslanan_marka .\' markasına \'. (new DateTime($row->pasla_tarih))->format("d/m/Y") .\' tarihinde talep etmiş olduğunuz #\'. $row->id .\' no\\\'lu pasla işleminiz bekleme sürecindedir. Bu paslayı satış ile sonuçlanmasını hızlandırmak için pasladığınız müşteriyi arayarak ya da görüşerek ikna edebilirsiniz. #\'. $row->id .\' no\\\'lu pasla işleminiz ile ilgili gelişmeler tekrar aktarılacaktır.</p>
</div>
\';
}elseif($row->pasla_sonuc == 1 ){
echo \'
<div class="col-xs-12 col-sm-12 col-md-12-col-lg-12 sonuc-kutu" style="background-color: #20b979;">
<span>\'. $row->pasla_ad_soyad .\' - \'. (new DateTime($row->pasla_tarih))->format("d/m/Y") .\' - #\'. $row->id .\'</span>
<p>TEBRİKLER! \'. $row->paslanan_marka .\' markasına \'. (new DateTime($row->pasla_tarih))->format("d/m/Y") .\' tarihinde talep etmiş olduğunuz #\'. $row->id .\' no\\\'lu pasla işleminiz satış ile sonuçlanmıştır. Kazanç tutarınız olan \'. $row->pasla_kazanc .\' hesabınıza kazanç tutarı olarak eklenmiştir. Kazanç tutarınızı istediğiniz zaman banka hesabına aktararak kullanabilirsiniz. Güle güle harcayın...</p>
</div>
\';
}elseif($row->pasla_sonuc == 2 ){
echo \'
<div class="col-xs-12 col-sm-12 col-md-12-col-lg-12 sonuc-kutu" style="background-color: #818181;">
<span>\'. $row->pasla_ad_soyad .\' - \'. (new DateTime($row->pasla_tarih))->format("d/m/Y") .\' - #\'. $row->id .\'</span>
<p>Üzgünüz! \'. $row->paslanan_marka .\' markasına \'. (new DateTime($row->pasla_tarih))->format("d/m/Y") .\' tarihinde talep etmiş olduğunuz #\'. $row->id .\' no\\\'lu pasla işleminiz malesef \'. $row->pasla_ad_soyad .\' tarafından red edilmiştir.Dilerseniz tekrardan pasladığınız kişi ile irtibat kurarak ikna edebilir ya da yeni paslalar için Kazandıran Markalar sayfamızı ziyaret edebilirsiniz.</p>
</div>
\';
}
}
echo paginate_links( array(
\'base\' => add_query_arg( \'cpage\', \'%#%\' ),
\'format\' => \'\',
\'prev_text\' => __(\'«\'),
\'next_text\' => __(\'»\'),
\'total\' => ceil($total / $items_per_page),
\'current\' => $page
));
SO网友:ravi sharma
将此代码添加到functions.php
文件:
$customPagHTML = "";
$query = "SELECT * FROM custom_table";
$total_query = "SELECT COUNT(1) FROM (${query}) AS combined_table";
$total = $wpdb->get_var( $total_query );
$items_per_page = 4;
$page = isset( $_GET[\'cpage\'] ) ? abs( (int) $_GET[\'cpage\'] ) : 1;
$offset = ( $page * $items_per_page ) - $items_per_page;
$result = $wpdb->get_results( $query . " ORDER BY field DESC LIMIT ${offset}, ${items_per_page}" );
$totalPage = ceil($total / $items_per_page);
if($totalPage > 1){
$customPagHTML = \'<div><span>Page \'.$page.\' of \'.$totalPage.\'</span>\'.paginate_links( array(
\'base\' => add_query_arg( \'cpage\', \'%#%\' ),
\'format\' => \'\',
\'prev_text\' => __(\'«\'),
\'next_text\' => __(\'»\'),
\'total\' => $totalPage,
\'current\' => $page
)).\'</div>\';
}
要在模板中显示输出,请使用:
echo $customPagHTML;