# $pages

The `$pages` object refers to a collection of pages. The pages in this collection can have the same or different parents, they can actually exist as subfolders in the content folder or be virtual pages created from a database, an Excel sheet, any API or any other source.

****

- Full class name: `Kirby\Cms\Pages`
- Alias: `Pages`
- Source: <https://github.com/getkirby/kirby/tree/5.5.3/src/Cms/Pages.php#L30>

****

### $pages

- [$pages->__call()](https://getkirby.com/docs/reference/objects/cms/pages/__call.md)
- [new Pages()](https://getkirby.com/docs/reference/objects/cms/pages/__construct.md)
- [$pages->__debugInfo()](https://getkirby.com/docs/reference/objects/cms/pages/__debug-info.md)
- [$pages->__get()](https://getkirby.com/docs/reference/objects/cms/pages/__get.md)
- [$pages->__isset()](https://getkirby.com/docs/reference/objects/cms/pages/__isset.md)
- [$pages->__set()](https://getkirby.com/docs/reference/objects/cms/pages/__set.md)
- [$pages->__toString()](https://getkirby.com/docs/reference/objects/cms/pages/__to-string.md)
- [$pages->__unset()](https://getkirby.com/docs/reference/objects/cms/pages/__unset.md)
- [$pages->add()](https://getkirby.com/docs/reference/objects/cms/pages/add.md)
- [$pages->append()](https://getkirby.com/docs/reference/objects/cms/pages/append.md)
- [$pages->audio()](https://getkirby.com/docs/reference/objects/cms/pages/audio.md)
- [$pages->children()](https://getkirby.com/docs/reference/objects/cms/pages/children.md)
- [$pages->chunk()](https://getkirby.com/docs/reference/objects/cms/pages/chunk.md)
- [$pages->clone()](https://getkirby.com/docs/reference/objects/cms/pages/clone.md)
- [$pages->code()](https://getkirby.com/docs/reference/objects/cms/pages/code.md)
- [$pages->count()](https://getkirby.com/docs/reference/objects/cms/pages/count.md)
- [$pages->current()](https://getkirby.com/docs/reference/objects/cms/pages/current.md)
- [$pages->data()](https://getkirby.com/docs/reference/objects/cms/pages/data.md)
- [$pages->delete()](https://getkirby.com/docs/reference/objects/cms/pages/delete.md)
- [$pages->documents()](https://getkirby.com/docs/reference/objects/cms/pages/documents.md)
- [$pages->drafts()](https://getkirby.com/docs/reference/objects/cms/pages/drafts.md)
- [$pages->empty()](https://getkirby.com/docs/reference/objects/cms/pages/empty.md)
- [$pages->extend()](https://getkirby.com/docs/reference/objects/cms/pages/extend.md)
- [Pages::factory()](https://getkirby.com/docs/reference/objects/cms/pages/factory.md)
- [$pages->files()](https://getkirby.com/docs/reference/objects/cms/pages/files.md)
- [$pages->filter()](https://getkirby.com/docs/reference/objects/cms/pages/filter.md)
- [$pages->filterBy()](https://getkirby.com/docs/reference/objects/cms/pages/filter-by.md)
- [$pages->find()](https://getkirby.com/docs/reference/objects/cms/pages/find.md)
- [$pages->findBy()](https://getkirby.com/docs/reference/objects/cms/pages/find-by.md)
- [$pages->findByKey()](https://getkirby.com/docs/reference/objects/cms/pages/find-by-key.md)
- [$pages->findOpen()](https://getkirby.com/docs/reference/objects/cms/pages/find-open.md)
- [$pages->first()](https://getkirby.com/docs/reference/objects/cms/pages/first.md)
- [$pages->flip()](https://getkirby.com/docs/reference/objects/cms/pages/flip.md)
- [$pages->get()](https://getkirby.com/docs/reference/objects/cms/pages/get.md)
- [$pages->getAttribute()](https://getkirby.com/docs/reference/objects/cms/pages/get-attribute.md)
- [$pages->getIterator()](https://getkirby.com/docs/reference/objects/cms/pages/get-iterator.md)
- [$pages->getMethod()](https://getkirby.com/docs/reference/objects/cms/pages/get-method.md)
- [$pages->group()](https://getkirby.com/docs/reference/objects/cms/pages/group.md)
- [$pages->groupBy()](https://getkirby.com/docs/reference/objects/cms/pages/group-by.md)
- [$pages->has()](https://getkirby.com/docs/reference/objects/cms/pages/has.md)
- [$pages->hasMethod()](https://getkirby.com/docs/reference/objects/cms/pages/has-method.md)
- [$pages->images()](https://getkirby.com/docs/reference/objects/cms/pages/images.md)
- [$pages->index()](https://getkirby.com/docs/reference/objects/cms/pages/index.md)
- [$pages->indexOf()](https://getkirby.com/docs/reference/objects/cms/pages/index-of.md)
- [$pages->intersection()](https://getkirby.com/docs/reference/objects/cms/pages/intersection.md)
- [$pages->intersects()](https://getkirby.com/docs/reference/objects/cms/pages/intersects.md)
- [$pages->isEmpty()](https://getkirby.com/docs/reference/objects/cms/pages/is-empty.md)
- [$pages->isEven()](https://getkirby.com/docs/reference/objects/cms/pages/is-even.md)
- [$pages->isNotEmpty()](https://getkirby.com/docs/reference/objects/cms/pages/is-not-empty.md)
- [$pages->isOdd()](https://getkirby.com/docs/reference/objects/cms/pages/is-odd.md)
- [$pages->join()](https://getkirby.com/docs/reference/objects/cms/pages/join.md)
- [$pages->key()](https://getkirby.com/docs/reference/objects/cms/pages/key.md)
- [$pages->keyOf()](https://getkirby.com/docs/reference/objects/cms/pages/key-of.md)
- [$pages->keys()](https://getkirby.com/docs/reference/objects/cms/pages/keys.md)
- [$pages->last()](https://getkirby.com/docs/reference/objects/cms/pages/last.md)
- [$pages->limit()](https://getkirby.com/docs/reference/objects/cms/pages/limit.md)
- [$pages->listed()](https://getkirby.com/docs/reference/objects/cms/pages/listed.md)
- [$pages->map()](https://getkirby.com/docs/reference/objects/cms/pages/map.md)
- [$pages->merge()](https://getkirby.com/docs/reference/objects/cms/pages/merge.md)
- [$pages->next()](https://getkirby.com/docs/reference/objects/cms/pages/next.md)
- [$pages->not()](https://getkirby.com/docs/reference/objects/cms/pages/not.md)
- [$pages->notTemplate()](https://getkirby.com/docs/reference/objects/cms/pages/not-template.md)
- [$pages->nth()](https://getkirby.com/docs/reference/objects/cms/pages/nth.md)
- [$pages->nums()](https://getkirby.com/docs/reference/objects/cms/pages/nums.md)
- [$pages->offset()](https://getkirby.com/docs/reference/objects/cms/pages/offset.md)
- [$pages->paginate()](https://getkirby.com/docs/reference/objects/cms/pages/paginate.md)
- [$pages->pagination()](https://getkirby.com/docs/reference/objects/cms/pages/pagination.md)
- [$pages->parent()](https://getkirby.com/docs/reference/objects/cms/pages/parent.md)
- [$pages->pluck()](https://getkirby.com/docs/reference/objects/cms/pages/pluck.md)
- [$pages->prepend()](https://getkirby.com/docs/reference/objects/cms/pages/prepend.md)
- [$pages->prev()](https://getkirby.com/docs/reference/objects/cms/pages/prev.md)
- [$pages->published()](https://getkirby.com/docs/reference/objects/cms/pages/published.md)
- [$pages->query()](https://getkirby.com/docs/reference/objects/cms/pages/query.md)
- [$pages->random()](https://getkirby.com/docs/reference/objects/cms/pages/random.md)
- [$pages->remove()](https://getkirby.com/docs/reference/objects/cms/pages/remove.md)
- [$pages->rewind()](https://getkirby.com/docs/reference/objects/cms/pages/rewind.md)
- [$pages->search()](https://getkirby.com/docs/reference/objects/cms/pages/search.md)
- [$pages->set()](https://getkirby.com/docs/reference/objects/cms/pages/set.md)
- [$pages->shuffle()](https://getkirby.com/docs/reference/objects/cms/pages/shuffle.md)
- [$pages->slice()](https://getkirby.com/docs/reference/objects/cms/pages/slice.md)
- [$pages->sort()](https://getkirby.com/docs/reference/objects/cms/pages/sort.md)
- [Pages::sortArgs()](https://getkirby.com/docs/reference/objects/cms/pages/sort-args.md)
- [$pages->sortBy()](https://getkirby.com/docs/reference/objects/cms/pages/sort-by.md)
- [$pages->template()](https://getkirby.com/docs/reference/objects/cms/pages/template.md)
- [$pages->toArray()](https://getkirby.com/docs/reference/objects/cms/pages/to-array.md)
- [$pages->toJson()](https://getkirby.com/docs/reference/objects/cms/pages/to-json.md)
- [$pages->toString()](https://getkirby.com/docs/reference/objects/cms/pages/to-string.md)
- [$pages->unlisted()](https://getkirby.com/docs/reference/objects/cms/pages/unlisted.md)
- [$pages->update()](https://getkirby.com/docs/reference/objects/cms/pages/update.md)
- [$pages->valid()](https://getkirby.com/docs/reference/objects/cms/pages/valid.md)
- [$pages->values()](https://getkirby.com/docs/reference/objects/cms/pages/values.md)
- [$pages->videos()](https://getkirby.com/docs/reference/objects/cms/pages/videos.md)
- [$pages->when()](https://getkirby.com/docs/reference/objects/cms/pages/when.md)
- [$pages->without()](https://getkirby.com/docs/reference/objects/cms/pages/without.md)

You can extend this set of methods with <a href="https://getkirby.com/docs/reference/plugins/extensions/pages-methods">custom pages methods</a>.

## How to get a `$pages` object

The `$pages` variable is available by default in templates and snippets and refers to a collection of all first level pages. In addition to that, you can define a `$pages` object in various ways:

### Children of a page
```php
$pages = $page->children();
```

### All pages of the site
```php
$pages = $site->index();
```

### A custom combination of pages
```php
// find specific pages in the site
$pages = $site->find('blog', 'projects', 'contact');

// find specific subpages
$pages = $page->find('article-a', 'article-b');
```

## Examples

With the `$pages` object in place, we can start using the methods of this class to do many different things:

### Filter the collection by any criterium

```php
$articles = $pages->filterBy('date', '>', time());
```

### Get only listed pages

```php
$articles = $pages->listed()
```
### Get all files of all the pages in the collection

```php
$files = $pages->files();
```

### Get the first/last page

```php
$firstPage = $pages->first();
$lastPage = $pages->last();
```

### Sort pages

```php
$sorted = $pages->sortBy(fn ($page) => $page->date()->toDate(), 'desc');
```