In WordPress gibt es Custom Post Types, Custom Fields, Custom Taxonomies und auch Custom Post Status, um neben Draft, Future, Pending, Private, Publish und Trash eigene Custom Post Status bereitzustellen. Leider wird das Thema in den letzten Jahren sehr stiefmütterlich behandelt und man kann schnell Eindruck gewinnen, dass man am liebsten Custom Post Status komplett aus dem Core entfernen würde. So werden Custom Post Status nicht mehr wirklich in Gutenberg berücksichtigt und ein Ticket, dass Custom Post Status automatisch in die UI bringen soll, ist seit geschlagenen 11 Jahren offen!
Trotzdem haben Post Status meiner Meinung nach einen entscheidenden Vorteil: Sie werden direkt in der wp_posts
Tabelle in der post_status
Spalte mit einem Index gespeichert. Filtern oder sortieren anhand dieser Spalte ist damit extrem schnell und erfordert kein JOIN
zu einer anderen Tabelle, z.B. wp_postmeta
im Fall von Custom Post Fields.