2013-02-24 2 views
1

Разработка плагина в WordPress и получение наилучшего результата, но застряли в разбивке на страницы для плагинов. Вот мой код, загруженный из Интернета (получила ссылку здесь)WordPress: возникли проблемы с разбиением на страницы для настроек плагинов.

$items = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->review_media GROUP BY post_id")); // number of total rows in the database 

// тестирование и получили результаты, как прокомментировал print_r ($ пунктов); // say это выходы значение 2 echo $ rm_options ['list_per_page']; // это мой вариант устанавливается со значением 1

if($items > 0) { 
     $p = new pagination; 
     $p->items($items); 
     $p->limit(empty($rm_options['list_per_page']) ? 20 : $rm_options['list_per_page']); // Limit entries per page 
     $p->target("admin.php?page=moderate.php"); 
     $p->currentPage($_GET[$p->paging]); // Gets and validates the current page 
     $p->calculate(); // Calculates what to show 
     $p->parameterName('paging'); 
     $p->adjacents(1); //No. of page away from the current page 

     if(!isset($_GET['paging'])) { 
      $p->page = 1; 
     } else { 
      $p->page = $_GET['paging']; 
     } 

     //Query for limit paging 
     $limit = "LIMIT " . ($p->page - 1) * $p->limit . ", " . $p->limit; 

} else { 
    echo "No Record Found"; 
} 

Когда я не группируют мой запрос по POST_ID он работает нормально, но как только я сгруппировал его ведет себя странно. Он создает ссылки на страницы и получает пустую страницу. Я думаю, что причина заключается в группировке строки. Но не знаю, как это решить.

Вот мой скриншот таблицы

enter image description here

Большое спасибо за вашу помощь ...

+0

Я не знаю Класс, и его нет в вашем вопросе, но я думаю, что здесь есть ошибка: '$ p-> currentPage ($ _GET [$ p-> paging])'. Я думаю, это должно быть '$ p-> currentPage ($ _GET ['paging'])' –

+0

Нет, он не работает. Класс вы можете найти здесь http://mis-algoritmos.com/2007/05/27/digg-style-pagination-class –

ответ

0

Если вы используете WordPress WP_List_Table класса, он будет заботиться о пагинации и обеспечивает таблицу по умолчанию опыт для пользователя.

Это tutorial охватывает все, нумерация страниц часть:

function prepare_items() { 
    [...] 
    $per_page = 5; 
    $current_page = $this->get_pagenum(); 
    $total_items = count($this->example_data); 

    // only necessary because we have sample data 
    $this->found_data = array_slice($this->example_data,(($current_page-1)*$per_page),$per_page); 

    $this->set_pagination_args(array(
    'total_items' => $total_items, //WE have to calculate the total number of items 
    'per_page' => $per_page  //WE have to determine how many items to show on a page 
)); 
    $this->items = $this->found_data; 
} 

here's the full plugin и показано в руководстве. И в этом other plugin вы можете увидеть WP_List_Table в действии с использованием данных базы данных.

Смежные вопросы