Я хочу отобразить разбивку на страницы на одной из моих плагинов, созданных мной .. Я попробовал множество примеров, но никто не работает.
я буду отличаться благодарностью, если кто-нибудь может дать ответ …
примечание: я хочу разбиение на страницы в конце (в админ) не в передней части
Простые шаги:
$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
Найти общее количество записей
$limit = 10; // number of rows in page $offset = ( $pagenum - 1 ) * $limit; $total = $wpdb->get_var( "SELECT COUNT(`id`) FROM {$wpdb->prefix}table_name" ); $num_of_pages = ceil( $total / $limit );
Дайте ограничение:
$entries = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}table_name LIMIT $offset, $limit" );
Добавьте этот код, где хотите разбиение на страницы:
$page_links = paginate_links( array( 'base' => add_query_arg( 'pagenum', '%#%' ), 'format' => '', 'prev_text' => __( '«', 'text-domain' ), 'next_text' => __( '»', 'text-domain' ), 'total' => $num_of_pages, 'current' => $pagenum ) ); if ( $page_links ) { echo '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></div>'; }
сначала спасибо Лоуренсу Черему за ответ
но я решил эту проблему по-другому .. и решение здесь
Я использую второй вариант, который имеет заголовок «Как добавить разбиение на страницы на WordPress плагин?» .. это дает почти ту же функциональность разбиения на страницы, что и WordPress.
не забудьте загрузить этот файл «pagination.class.php», поместите его в свою папку с плагином и укажите соответствующий путь, включив этот файл в свой плагин.
отправлять комментарии для mor help ..
может это вам поможет. Спасибо
Общая функция разбиения на страницы.
Этот пример выглядит так на большом db:
<< Предыдущая 1 2 3 4 5 6 7 8 9 … 822 823 Следующая >>
или
<< Предыдущая 1 2 … 815 816 817 818 819 820 821 822 823 Следующая >>
или
<< Предыдущая 1 2 … 812 813 814 815 816 817 818 … 822 823 Следующая >>
наслаждаться…
<?php /*Max Number of results to show*/ $max = 10; /*Get the current page eg index.php?pg=4*/ if(isset($_GET['pg'])){ $p = (int) $_GET['pg']; }else{ $p = 1; } $limit = ($p - 1) * $max; $prev = $p - 1; $next = $p + 1; $limits = (int)($p - 1) * $max; //This is the query to get the current dataset (change api to suit) $result = mysqli_query($res, 'SELECT * from yourtable limit '.$limits.','.$max.''); //Get total records from db (change api to suit) $totalres = mysqli_result($res, mysqli_query($res, 'SELECT COUNT(id) AS tot FROM yourtable"'),0); //devide it with the max value & round it up $totalposts = ceil($totalres / $max); $lpm1 = $totalposts - 1; echo pagination($totalposts, $p, $lpm1, $prev, $next); //The function function pagination($totalposts, $p, $lpm1, $prev, $next){ $adjacents = 3; if($totalposts > 1) { $pagination .= "<center><div>"; //previous button if ($p > 1) $pagination.= "<a href=\"?pg=$prev\"><< Previous</a> "; else $pagination.= "<span class=\"disabled\"><< Previous</span> "; if ($totalposts < 7 + ($adjacents * 2)){ for ($counter = 1; $counter <= $totalposts; $counter++){ if ($counter == $p) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= " <a href=\"?pg=$counter\">$counter</a> ";} }elseif($totalposts > 5 + ($adjacents * 2)){ if($p < 1 + ($adjacents * 2)){ for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++){ if ($counter == $p) $pagination.= " <span class=\"current\">$counter</span> "; else $pagination.= " <a href=\"?pg=$counter\">$counter</a> "; } $pagination.= " ... "; $pagination.= " <a href=\"?pg=$lpm1\">$lpm1</a> "; $pagination.= " <a href=\"?pg=$totalposts\">$totalposts</a> "; } //in middle; hide some front and some back elseif($totalposts - ($adjacents * 2) > $p && $p > ($adjacents * 2)){ $pagination.= " <a href=\"?pg=1\">1</a> "; $pagination.= " <a href=\"?pg=2\">2</a> "; $pagination.= " ... "; for ($counter = $p - $adjacents; $counter <= $p + $adjacents; $counter++){ if ($counter == $p) $pagination.= " <span class=\"current\">$counter</span> "; else $pagination.= " <a href=\"?pg=$counter\">$counter</a> "; } $pagination.= " ... "; $pagination.= " <a href=\"?pg=$lpm1\">$lpm1</a> "; $pagination.= " <a href=\"?pg=$totalposts\">$totalposts</a> "; }else{ $pagination.= " <a href=\"?pg=1\">1</a> "; $pagination.= " <a href=\"?pg=2\">2</a> "; $pagination.= " ... "; for ($counter = $totalposts - (2 + ($adjacents * 2)); $counter <= $totalposts; $counter++){ if ($counter == $p) $pagination.= " <span class=\"current\">$counter</span> "; else $pagination.= " <a href=\"?pg=$counter\">$counter</a> "; } } } if ($p < $counter - 1) $pagination.= " <a href=\"?pg=$next\">Next >></a>"; else $pagination.= " <span class=\"disabled\">Next >></span>"; $pagination.= "</center>\n"; } return $pagination; } ?>