/**
  * Find sliders with the provided filters
  *
  * @since 5.0.0
  * @access public
  * @param mixed $args Find any slider with the provided filters
  * @return mixed Array on success, false otherwise
  */
 public static function find($args = array())
 {
     // Find by slider ID
     if (is_numeric($args) && intval($args) == $args) {
         return self::_getById((int) $args);
         // Find by slider slug
     } elseif (is_string($args)) {
         return self::_getBySlug($args);
         // Find by list of slider IDs
     } elseif (is_array($args) && isset($args[0]) && is_numeric($args[0])) {
         return self::_getByIds($args);
         // Find by query
     } else {
         // Defaults
         $defaults = array('columns' => '*', 'where' => '', 'exclude' => array('hidden', 'removed'), 'orderby' => 'date_c', 'order' => 'DESC', 'limit' => 10, 'page' => 1, 'data' => true);
         // User data
         foreach ($defaults as $key => $val) {
             if (!isset($args[$key])) {
                 $args[$key] = $val;
             }
         }
         // Escape user data
         foreach ($args as $key => $val) {
             $args[$key] = esc_sql($val);
         }
         // Exclude
         if (!empty($args['exclude'])) {
             if (in_array('hidden', $args['exclude'])) {
                 $exclude[] = "flag_hidden = '0'";
             }
             if (in_array('removed', $args['exclude'])) {
                 $exclude[] = "flag_deleted = '0'";
             }
             $args['exclude'] = implode(' AND ', $exclude);
         }
         // Where
         $where = '';
         if (!empty($args['where']) && !empty($args['exclude'])) {
             $where = "WHERE ({$args['exclude']}) AND ({$args['where']}) ";
         } elseif (!empty($args['where'])) {
             $where = "WHERE {$args['where']} ";
         } elseif (!empty($args['exclude'])) {
             $where = "WHERE {$args['exclude']} ";
         }
         // Some adjustments
         $args['limit'] = $args['limit'] * $args['page'] - $args['limit'] . ', ' . $args['limit'];
         // Build the query
         global $wpdb;
         $table = $wpdb->prefix . LS_DB_TABLE;
         $sliders = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS {$args['columns']} FROM {$table} {$where}\n\t\t\t\t\t\t\t\t\tORDER BY {$args['orderby']} {$args['order']} LIMIT {$args['limit']}", ARRAY_A);
         // Set counter
         $found = $wpdb->get_col("SELECT FOUND_ROWS()");
         self::$count = (int) $found[0];
         // Return original value on error
         if (!is_array($sliders)) {
             return $sliders;
         }
         // Parse slider data
         if ($args['data']) {
             foreach ($sliders as $key => $val) {
                 $sliders[$key]['data'] = json_decode($val['data'], true);
             }
         }
         // Return sliders
         return $sliders;
     }
 }