public static function find($args = '') { global $wpdb; $query = "SELECT *, COUNT(url) as total FROM {$wpdb->fortyfour_logs}"; $per_page = 10; $where = '1=1'; $orderby = !empty($_GET["orderby"]) ? $args["orderby"] : 'id'; $order = !empty($_GET["order"]) ? $args["order"] : 'DESC'; if (isset($_GET['s']) && !empty($_GET['s'])) { $where .= fortyfourwp_search_sql(sanitize_text_field($_GET['s']), array('url', 'redirect_url')); } $query .= " WHERE {$where}"; $query .= ' GROUP BY (url)'; if (!empty($orderby) & !empty($order)) { $query .= ' ORDER BY ' . $orderby . ' ' . $order; } self::$found_items = $found_items = $wpdb->query($query); $paged = !empty($_GET["paged"]) ? sanitize_text_field($_GET["paged"]) : ''; //Page Number if (empty($paged) || !is_numeric($paged) || $paged <= 0) { $paged = 1; } //How many pages do we have in total? $totalpages = ceil($found_items / $per_page); //adjust the query to take pagination into account if (!empty($paged) && !empty($per_page)) { $offset = ($paged - 1) * $per_page; $query .= ' LIMIT ' . (int) $offset . ',' . (int) $per_page; } // echo $query; $posts = $wpdb->get_results($query); // echo $query; $objs = array(); foreach ((array) $posts as $post) { $objs[] = new self($post); } // print_r($objs); return $objs; }