RTMediaModel::get_group_albums PHP Метод

get_group_albums() публичный Метод

public get_group_albums ( integer $group_id, mixed $offset, mixed $per_page, string $order_by = 'media_id desc' ) : array
$group_id integer
$offset mixed
$per_page mixed
$order_by string
Результат array $results
    function get_group_albums($group_id, $offset, $per_page, $order_by = 'media_id desc')
    {
        global $wpdb;
        if (is_multisite()) {
            $order_by = 'blog_id' . ($order_by ? ',' . $order_by : '');
        }
        if (is_multisite()) {
            $sub_sql = $wpdb->prepare("SELECT DISTINCT (album_id) FROM {$this->table_name} WHERE context_id = %d AND album_id IS NOT NULL AND media_type != 'album' AND context = 'group' AND blog_id = %d", $group_id, get_current_blog_id());
        } else {
            $sub_sql = $wpdb->prepare("SELECT DISTINCT (album_id) FROM {$this->table_name} WHERE context_id = %d AND album_id IS NOT NULL AND media_type != 'album' AND context = 'group'", $group_id);
        }
        $sql = $wpdb->prepare("SELECT * FROM {$this->table_name} WHERE id IN( {$sub_sql} ) OR (media_type = 'album' AND context_id = %d AND context = 'group')", $group_id);
        if (is_multisite()) {
            $sql .= $wpdb->prepare(" AND  {$this->table_name}.blog_id = %d ", get_current_blog_id());
        }
        $order_by = esc_sql($order_by);
        $sql .= " ORDER BY {$this->table_name}.{$order_by}";
        if (false !== $offset) {
            if (!is_integer($offset)) {
                $offset = 0;
            }
            if (intval($offset) < 0) {
                $offset = 0;
            }
            if (!is_integer($per_page)) {
                $per_page = 1;
            }
            if (intval($per_page) < 1) {
                $per_page = 1;
            }
            $sql .= ' LIMIT ' . $offset . ',' . $per_page;
        }
        $results = $wpdb->get_results($sql);
        return $results;
    }