1

在 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($items); // 说这是输出值 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 对查询进行分组时,它工作正常,但一旦我将其分组,它的行为就很奇怪。它正在创建分页链接并获取空白页面。我认为原因是对行进行分组。但不知道如何解决这个问题。

这是我的表格截图

在此处输入图像描述

非常感谢你的帮助...

4

1 回答 1

0

如果您使用 WordPressWP_List_Table类,它将处理分页并为用户提供默认的表格体验。

教程涵盖了所有内容,分页部分是:

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;
}

这是教程中显示的完整插件。在这个其他插件中,您可以看到WP_List_Table使用数据库数据的实际操作。

于 2013-08-29T23:14:46.977 回答