Blog record fields

v0.0.1

Every blog record belongs to one site. This page lists the fields of each record: the label on the admin form, the stored name used by the JSON:API, its limits, and notes. A field marked not on the form is set by the API or by the blog itself. Titles, names and descriptions are plain text, and any tags typed into them are removed when the record is saved.

Post

Form labelStored nameType and limitsNotes
TitletitleText, 1 to 500 charactersRequired.
SubtitlesubtitleText, up to 300 charactersA line under the title.
SlugslugText, 1 to 255 charactersRequired. Unique on the site. Follows the title while you add a post.
ContentcontentHTMLRequired. Cleaned on save, with code blocks highlighted.
ExcerptexcerptText, up to 1000 charactersThe summary shown in lists and used as the description.
Featured Imagefeatured_image_urlText, up to 500 charactersAn address. The form can fill it from the media library.
Statusstatusdraft, published, scheduled or archivedDefault draft. The form offers Draft, Published and Scheduled. Deleting a post sets archived.
Not on the formpublished_atDate and timeSet to now when a post is published without one. A published post must have it.
Not on the formscheduled_publish_atDate and timeRequired for a scheduled post, and must be in the future. Set it with the schedule route.
FeaturedfeaturedYes or noDefault no.
LanguagelanguageA language code, up to 10 charactersRequired. Default en.
Language Grouplanguage_group_idAn idLinks the editions of one post. Only posts of the same site are offered. Left on the default, a new post starts its own group.
Sitesite_idAn idShown to masters when adding. A site admin's posts take the admin's site.
Collections, Bloggers / Authors, Tagscollection_ids, blogger_ids, tag_idsLists of idsReplace the post's current list when saved. Only records of the post's own site are accepted.
SEO Tagsseo_tagsA list of tag, attrs and contenttag is title, meta or link. attrs is required. Default empty.
Schema (JSON)schemaA list of objectsStructured data. Default empty.
PermissionspermissionsA list of permission namesEmpty means everyone may open the post. Names are trimmed and lower-cased.
Share imageNoneDisplay onlyOn the edit form only. Shows the share image and Regenerate.
Not on the formreading_time_minutesWhole numberWorked out on save at 200 words a minute, never under 1.

A site cannot hold two posts with the same slug, or two posts in the same language and language group. A post also carries the counts view_count, approved_comment_count, collection_count, tag_count, blogger_count, bookmark_count and rating_count, and the average rating_average. Only holders of the post area can read comment_count, which counts comments in every status, and version_count.

Collection

Form labelStored nameType and limitsNotes
NamenameText, 1 to 255 charactersRequired.
SlugslugText, 1 to 255 charactersRequired. Unique on the site.
Statusstatusactive, draft or archivedDefault draft. Only active collections are public.
LanguagelanguageA language code, up to 10 charactersRequired. Default en.
Language Grouplanguage_group_idAn idLinks the editions of one collection.
Parent Collectionparent_collection_idAn idNests the collection. It must be on the same site and cannot be the collection itself.
Display Orderdisplay_orderWhole number, 0 or moreDefault 0. Category lists sort by it, then by name.
FeaturedfeaturedYes or noDefault no.
DescriptiondescriptionText, up to 2000 characters
SEO Tags, Schema (JSON), Permissionsseo_tags, schema, permissionsListsAs on a post.

Tag

Form labelStored nameType and limitsNotes
NamenameText, 1 to 255 charactersRequired.
SlugslugText, 1 to 255 charactersRequired. Unique on the site.
LanguagelanguageA language code, up to 10 charactersRequired. Default en.
Language Grouplanguage_group_idAn idLinks the editions of one tag.
Parent Tagparent_tag_idAn idNests the tag.
DescriptiondescriptionText
SEO Tags, Permissionsseo_tags, permissionsListsAs on a post. A tag has no status and no structured data field.

Blogger

Form labelStored nameType and limitsNotes
Useruser_idAn idRequired, and set when adding. One profile for each account on a site.
Display Namedisplay_nameText, 1 to 255 charactersRequired.
SlugslugText, 1 to 255 charactersRequired. Unique on the site. Follows the display name while you add a profile.
Contact Emailcontact_emailText, up to 255 charactersLower-cased.
Can Publish Directlycan_publish_directlyYes or noDefault no. Admin-only field.
Teamsteam_idsA list of idsThe teams the blogger belongs to.
BiobioBasic HTML
Avatar, Cover Imageavatar_url, cover_image_urlText, up to 500 characters eachAddresses. The form fills them from the media library.
Expertise Areasexpertise_areasA list of textEmpty entries and repeats are dropped.
Social Linkssocial_linksA list of platform and urlBoth parts are required. An X or Twitter link supplies twitter:creator on the blogger's posts.

Team

Form labelStored nameType and limitsNotes
NamenameText, 1 to 255 charactersRequired.
SlugslugText, 1 to 255 charactersRequired. Unique on the site.
Statusstatusactive, inactive or draftRequired. Default draft. Only active teams are public.
DescriptiondescriptionText
Avatar, Cover Imageavatar_url, cover_image_urlText, up to 500 characters eachAddresses.
Not on the formmember_ids, permission_idsLists of idsSet members and attached permissions over the API. Members are bloggers.

Comment

Form labelStored nameType and limitsNotes
Postpost_idAn idRequired, and set when adding.
Authorauthor_idAn idShown to masters when adding. A comment written by a signed-in user takes that user.
ContentcontentTextRequired.
Statusstatuspending, approved, flagged or spamDefault pending. Only approved comments are public.
Pinnedis_pinnedYes or noDefault no.
Parent Commentparent_comment_idAn idMakes the comment a reply. It must be on the same post and cannot be the comment itself.
Not on the formsender_dataThe sender's ip_address and user_agentVisible to moderators only.

Auto posting configuration

Stored nameType and limitsNotes
nameText, 1 to 255 charactersRequired.
pluginText, 1 to 255 charactersRequired. One configuration for each plugin on a site.
descriptionText
is_activeYes or noDefault no. The Activate and Deactivate actions set it.
configA mapSettings the plugin defines for itself. Default empty.

Reader records

RecordFieldsRule
RatingratingA whole number from 1 to 5. One for each reader and post. Sending another replaces it.
Bookmarkpost_idOne for each reader and post.
Comment votevote_typeup or down. One for each reader and comment. Voting again replaces it.
Blogger follow, team follownotification_enabled, followed_atOne for each reader and blogger or team. notification_enabled defaults to yes.
Post viewip_address, user_agent, refererOne for each signed-in reader and post, or for each address and post when the reader is a guest. ip_address is up to 45 characters, the others up to 500.

Shared behavior

  • Deleting archives. Archived posts, collections, tags, bloggers, teams, comments and configurations can be restored. An archived record cannot be edited.
  • Posts, collections, tags, bloggers, teams and configurations keep a version history. Comments do not.
  • Posts, collections and tags have editions in several languages. Bloggers and teams do not.