v2.6.0
Added
SupportsFeatureenum +HasSupportstrait (#247, Keystone #183) — a canonical vocabulary for post-typesupportsflags (title,editor,excerpt,featured_image,categories,tags,custom_fields,seo,author,page_attributes,revisions,templates) modeled on WordPress'spost_type_supports(). The newHasSupportstrait exposessupports(): arrayandsupportsFeature(SupportsFeature|string): boolonPost,Page, andContentType, with per-modeldefaultSupports()overrides for the built-in types and DB-backed resolution onContentTypeviaexplicitSupports(). Host apps consuming the framework should read the effective supports off the model instance instead of maintaining their own default arrays.
Changed
-
Renamed the
contentsupports flag toeditor(#247, Keystone #183) — the underlying record-table column is stillcontent; only the flag identifier changed to match the wider vocabulary inSupportsFeature. TheBlogServiceProviderandPagesServiceProviderdefault registrations were also expanded to include the newly-canonical flags (categories,tags,seo,revisionsfor posts;templates,revisionsfor pages). A companion migration rewritescontent_types.supportsJSON rows so any admin-created content type that stored'content'is transparently upgraded to'editor'on the nextmigraterun — reversible viamigrate:rollback. -
ContentType::supportsFeature()accepts the enum case as well as the string value. The previous string-only signature is preserved for callers passing'editor'/'seo'/ etc., but callers can now passSupportsFeature::Editordirectly.titleis treated as always-on regardless of the stored array, matching the "required — always on" note in the editor redesign spec.