Example #1
0
 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;
 }