# Read user defined page status

**URL:** <https://forum.getkirby.com/t/read-user-defined-page-status/28520>\
**Category:** Questions\
**Tags:** v3\
**Created:** [May 5, 2023, 4:20pm UTC](https://forum.getkirby.com/t/read-user-defined-page-status/28520 "2023-05-05T16:20:48Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![gearsdigital](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/gearsdigital/32/2099_2.png) [@gearsdigital](https://forum.getkirby.com/u/gearsdigital)\
**Post date:** [May 5, 2023, 4:20pm UTC](https://forum.getkirby.com/t/read-user-defined-page-status/28520/1 "2023-05-05T16:20:49Z")

</div>

Am I correct in saying that:

1. There are three status options: “_draft_”, “_listed_”, and “_unlisted_”.
2. “Draft” is always present, while “listed” and “unlisted” can be removed.

### Example

```yml
# album.yml
status:
  draft: true
  listed: true

```

If I try to programmatically set “_unlisted_”, the panel will show an error because “_unlisted_” doesn’t exist.

Is there a way to find out which status settings are available for a page so that I can check for their presence?

### Background

I am working on a feature that synchronizes the status of a parent page with its children. My goal is to unlist all child pages if the parent page is unlisted (or deleted).

---

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [May 5, 2023, 4:24pm UTC](https://forum.getkirby.com/t/read-user-defined-page-status/28520/2 "2023-05-05T16:24:50Z")

</div>

Yes: [$pageblueprint-\>status() | Kirby CMS](https://getkirby.com/docs/reference/objects/cms/page-blueprint/status)

---

<div class="post-metadata">

**Author:** ![gearsdigital](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/gearsdigital/32/2099_2.png) [@gearsdigital](https://forum.getkirby.com/u/gearsdigital)\
**Post date:** [May 5, 2023, 4:27pm UTC](https://forum.getkirby.com/t/read-user-defined-page-status/28520/3 "2023-05-05T16:27:24Z")

</div>

Awesome @texnixe!

Is this availbale at the `$page` object? Or do I need to load it before `PageBlueprint::load(...)` in order to get access?

I’m in a hook `page.changeStatus:after` and get the current page with ` $page = $event->argument('newPage');`

---

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [May 5, 2023, 4:29pm UTC](https://forum.getkirby.com/t/read-user-defined-page-status/28520/4 "2023-05-05T16:29:11Z")

</div>

```auto
$page->blueprint()->status();

```

---

<div class="post-metadata">

**Author:** ![gearsdigital](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/gearsdigital/32/2099_2.png) [@gearsdigital](https://forum.getkirby.com/u/gearsdigital)\
**Post date:** [May 5, 2023, 4:31pm UTC](https://forum.getkirby.com/t/read-user-defined-page-status/28520/5 "2023-05-05T16:31:13Z")

</div>

That was easy ^^ Thank you very much for helping me out!
