author profile system SGEN — build it in seven steps
How to build an author profile system in SGEN
Most coffee brands have more than one person behind the writing. an editor runs the roasting lab. a teammate founded the company. a developer heads up green-bean sourcing. If every blog post is attributed to "Admin", readers miss the person behind the story — and the brand loses the credibility that comes with real by-lines.
This walkthrough builds a complete author profile system SGEN admins can maintain indefinitely: a dedicated Author object type with its own archive at /authors/, a bio / photo / social-links field group bound to both the Author type and Blog Posts via the Locations checkboxes, three fully-populated author records, and a relationship field that links each post to its author. The build takes seven steps and uses three SGEN features: Custom Objects, Custom Fields, and the Blog.
What is this for?
This recipe is for any SGEN site that publishes blog content written by more than one person and wants that authorship visible to readers. The result is a structured, maintainable author system — not a one-off workaround in the post body — so the team can add a fourth author in two minutes, not two hours.
You will end up with:
- A published Author Custom Object type with its own archive at
/authors/and detail pages at/authors/ada-lovelace/,/authors/grace-hopper/,/authors/alan-turing/. - An Author Bio custom field group (bio, photo, twitter, linkedin, website) attached to both the Author type and Blog Posts.
- Three author records — an editor, a teammate, a developer — each with a bio paragraph, a headshot, and social links.
- A Post Author field group on the Blog Post type that links each post to its author record.
- Three existing posts updated to reference their correct author.
Good use cases
Example 1: your business — multi-author coffee blog. your business publishes 8–12 posts a month across three writers. Before this setup, all posts showed "Admin" as the author. After completing this recipe, each post shows the author's name, photo, and role. Readers click the by-line and land on the author's detail page (/authors/ada-lovelace/) where the full bio, headshot, and social links are displayed. The /authors/ archive lists all three writers with their photo and a one-sentence intro. The public author archive renders like this once the three profiles are live:
Example 2: Adding a new writer mid-season. Six months after setup, your business hires an admin as a guest contributor. The admin creates one new Author record in two minutes: name, bio, photo, Twitter handle. No schema changes, no template changes. Margaret's posts get linked to her record via the Post Author field. Her profile page at /authors/margaret-hamilton/ goes live automatically because the Author Single and Archive templates already exist.
Example 3: Using author fields on a Custom Object, not just the blog. your business also maintains a "Brew Guides" Custom Object type. Each guide is written by a specific team member. By ticking the Brew Guides location inside the Author Bio field group, the same bio / photo / social-links fields surface on Brew Guide entries — no separate field group required. The Brew Guide Single template references the same shortcodes as the Author Detail template, rendering a consistent by-line block across both post types from one definition.
What NOT to use this for
If you want a team page that has nothing to do with content authorship, create a separate Custom Object type — for example "Team Member" — rather than reusing Author records. Mixing authorship records and HR directory in one object type creates confusion once the team grows and roles diverge.
Custom Objects are content records, not user accounts. If a writer needs admin access to write their own posts, grant them a SGEN user role in Settings → Users. The Author record and the admin user account are separate things.
Product pages have their own structured data surfaces. Do not repurpose Author records for product attribution.
Custom Fields are author-side — the admin team fills them in. For visitor-submitted data, use SGEN Forms.
How this connects to other features
— the Author type is a Custom Object. Every concept from Create custom object types applies: slug, permalink structure, template assignments, Draft vs Publish status.
— the bio / photo / social-links group is a Custom Field group. The Locations checkboxes bind the group to Page, Blog, Events, and/or any Custom Object on your site — exactly the mechanism described in Create a custom field group.
— the Post Author field group lives on the Blog Post edit screen. Once filled in, the [custom_field name="post_author"] shortcode renders the author's name inside a blog post template. See Create and manage blog posts.
— the Author Single and Author Archive templates are SG-Builder templates. Build them first; assign them when you create the Author Custom Object type. The shortcodes from this recipe (bio, photo, twitter, linkedin, website) are ready to drop into any SG-Builder HTML or text component.
Before you start
Have at least two SG-Builder templates ready. You need an Author Detail template (used as the Single template) and an Author Archive template (used as the Archive template). If neither exists yet, create the Author Custom Object type in Draft status, build the templates, then return to the object type and assign them before publishing.
Decide on the slug now — it is permanent. This recipe uses authors. Once author profiles are live and indexed, changing the slug breaks all existing profile URLs. If your site already has a page at /authors/, choose a different slug: our-team, writers, or similar.
Gather author data before opening the record edit screens. Collect the three bios (two to four sentences each), the three headshots (ready to upload to Media Library), and the Twitter/LinkedIn URLs before starting step 4. Filling in records is faster when the data is at hand.
You are signed in as an Administrator.
Where to go
This recipe spans three areas of the SGEN admin:
| Feature | Admin path | What you do there |
|---|---|---|
| Custom Objects | Sidebar → Custom Objects | Create the Author type (steps 1 and 7) |
| Custom Fields | Sidebar → Custom → Fields | Create the Author Bio and Post Author field groups (steps 2–3 and 5) |
| Authors (new panel) | Sidebar → Authors | Fill in the three author records (step 4) |
| Blog | Sidebar → Blog | Assign authors to existing posts (step 6) |
Custom Objects and Custom Fields are both under the Custom section of the admin sidebar. The Authors panel only appears in the sidebar after step 1 — it is created dynamically when the Author Custom Object type is saved.
Steps
Navigate to Custom Objects in the admin sidebar. Click + Create Type in the top-right corner.
Fill in the create form:
| Field | Value |
|---|---|
| Title | Authors |
| Slug | authors |
| Items per page | 12 |
| Items per row | 3 |
| Single template | Author Detail (assign after building in SG-Builder) |
| Archive template | Author Archive (assign after building in SG-Builder) |
| Loop-Item template | Author Card (assign after building in SG-Builder) |
| Permalink structure | Post name — /authors/ada-lovelace/ |
| Status | Draft (switch to Publish in step 7 once templates are ready) |
Click Create Item. SGEN registers the Author type, adds it to the admin sidebar, and redirects to the Edit form. The green save banner confirms the write:
The Author type now appears in the Custom Objects list. Its status shows Draft — public URLs return 404 until you publish in step 7:
Navigate to Custom → Fields in the admin sidebar. Click + Add New.
Set Title to Author Bio.
Add five fields in this order:
| # | Label | Internal name | Type | Notes |
|---|---|---|---|---|
| 1 | Bio | bio | Textarea | Two to four sentence author biography |
| 2 | Photo | photo | Image | Headshot — square crop, minimum 400 × 400 px |
| 3 | twitter | URL | Full profile URL | |
| 4 | linkedin | URL | Full profile URL | |
| 5 | Website | website | URL | Personal or portfolio site |
The form with all five fields populated looks like this before you select Locations:
Still on the same Create a group of fields screen, scroll to the Locations section.
Tick both locations:
- Authors — the Custom Object you created in step 1. This makes the five fields appear on every Author record's edit screen.
- Blog — this makes the same five fields available on Blog Post edit screens, so you can add an author bio inline on a guest post where the author is not a registered Author record.
The Locations checkboxes bind the group to Page, Blog, Events, and/or any Custom Object on your site. The Author type appears in the Locations list because it was created in step 1. If it is not showing, confirm the Author type was saved before navigating here, then reload the add-new screen.
With both locations ticked, click Create Item. The five fields are now live on Author record edit screens and on Blog Post edit screens simultaneously.
Navigate to Authors in the admin sidebar. Click Add New to open a blank author entry. Create three records using the following data.
an editor — Head of Roasting:
| Field | Value |
|---|---|
| Title (entry name) | an editor |
| Slug | ada-lovelace |
| Bio | Ada leads the roasting programme at your business, dialling in every new origin with a precision that borders on obsession. She has been working with green bean profiles for 12 years and still tastes every roast before it ships. |
| Photo | Upload headshot from Media Library |
| Your author's actual Twitter profile URL | |
| Your author's actual LinkedIn profile URL | |
| Website | https://yourdomain.com |
| Status | Publish |
a teammate — Founder:
| Field | Value |
|---|---|
| Title | a teammate |
| Slug | grace-hopper |
| Bio | Grace founded your business in 2014 with a hand-grinder, a market stall, and a firm belief that good coffee is a matter of precision, not pretension. She writes about the business of specialty coffee and the people behind it. |
| Photo | Upload headshot from Media Library |
| Your author's actual Twitter profile URL | |
| Your author's actual LinkedIn profile URL | |
| Website | https://yourdomain.com |
| Status | Publish |
a developer — Sourcing Lead:
| Field | Value |
|---|---|
| Title | a developer |
| Slug | alan-turing |
| Bio | Alan travels twice a year to visit your business's producing partners — farms in Gedeo Zone, Huila, and Sumatra. He heads up green-bean sourcing and writes about traceability, harvest seasons, and what it means to pay a fair price for exceptional coffee. |
| Photo | Upload headshot from Media Library |
| Your author's actual Twitter profile URL | |
| Your author's actual LinkedIn profile URL | |
| Website | leave blank |
| Status | Publish |
After saving all three, the Authors list shows three Published entries:
Navigate to Custom → Fields. Click + Add New to create a second field group.
Set Title to Post Author.
Add two fields:
| # | Label | Internal name | Type | Notes |
|---|---|---|---|---|
| 1 | Post Author | post_author | Text | Author's full name — e.g. an editor |
| 2 | Author Slug | author_slug | Text | Author's slug — e.g. ada-lovelace — used to build the link /authors/ada-lovelace/ |
Tick the Blog location only. Set Status to Publish. Click Create Item.
The by-line block below is ready to paste into a Blog Single SG-Builder template — drop it into an HTML component above the post body:
<!-- Author by-line block — paste into Blog Single SG-Builder template -->
<div class="author-byline"> <img src="[custom_field name=photo]" alt="[custom_field name=post_author]" width="48" height="48" style="border-radius:50%;object-fit:cover;" /> <div class="author-byline__text"> <a href="/authors/[custom_field name=author_slug]/"> [custom_field name=post_author] </a> <span class="author-byline__role">your business</span> </div>
</div>The shortcodes resolve per post — each post's by-line reflects the values saved on that specific post's edit screen.
Navigate to Blog in the admin sidebar. Open each post that needs an author assigned.
On the post edit screen, scroll to the Post Author field group panel below the main content editor. Fill in both fields:
- Post Author — the author's full name, e.g.
an editor - Author Slug — the author's slug, e.g.
ada-lovelace
Assign the three posts:
| Post title | Post Author | Author Slug |
|---|---|---|
| "New Season: Gedeo Zone Ethiopia" | an editor | ada-lovelace |
| "How We Source Our Beans" | a developer | alan-turing |
| "Five Years of your business" | a teammate | grace-hopper |
Save each post after filling in the two fields. The green save banner confirms each write:
Return to Custom Objects in the admin sidebar. Click Authors to open the type's Edit form. Change Status from Draft to Publish. Click Save.
Navigate to /authors/ on your public site. The Author Archive template renders a grid of profile cards — one per published author record.
Navigate to /authors/ada-lovelace/. The Author Detail template renders Ada's full profile: name, headshot, bio, and social links. The detail page renders like this when the Author Single template is built and assigned:
What success looks like
After completing all seven steps:
What to do if it does not work
The Author type does not appear in the Custom Fields Locations list. The Locations list only shows Custom Object types that have been saved. If Authors does not appear, return to Custom Objects, open the Authors type, confirm it is saved (the page heading reads "Edit" not "Create"), then reload the Custom Fields Add New screen.
Author detail pages return a 404. Confirm the Author type status is Publish — not Draft. Also confirm the individual author record status is Publish. Both the type and the record must be published for the public URL to resolve.
The by-line block renders blank on a blog post. Check that the Post Author field group has Blog ticked in its Locations list. Also confirm the post's Post Author and Author Slug fields are not empty — open the post edit screen and scroll to the Post Author panel.
The photo shortcode renders a URL string, not an image. The Image field type outputs the image URL. Your SG-Builder template must wrap the shortcode in an <img> tag with the photo field as the src attribute value.
Author Archive shows no entries. The Archive template must include a SGEN loop component pointed at the Authors content type. If the template has a static layout with no loop block, it renders blank even when published author records exist. Open the Author Archive template in SG-Builder and add a loop component targeting Authors.
Field values appear on the wrong posts. The post-level Author Bio fields (bio, photo, twitter, linkedin, website) are for guest posts only — leave them blank on regular posts and fill in only Post Author and Author Slug. If your template references both the post-level bio and the Author record's bio, output may be inconsistent. Pick one source and reference only that in your template shortcodes.
Examples
Example scenario A: Brew Guides with the same author fields. your business's Brew Guides Custom Object carries the same bio / photo / social-links field group as Author records. Edit the Author Bio field group and tick Brew Guides in the Locations list alongside Authors and Blog. The bio, photo, and twitter shortcodes now surface on Brew Guide entry edit screens with zero additional setup. The Brew Guide Single template references the identical shortcodes as the Author Detail template — consistent rendering across both post types from one field group.
Example scenario B: Guest post with no Author record. your business publishes a post by a one-off guest writer who will not appear in the /authors/ archive. The admin fills in the post-level Author Bio fields (bio, photo, twitter) directly on the Blog post edit screen — no Author record required. The by-line block renders from the post-level values. The guest never appears on the /authors/ archive because no Author record exists for them.
Example scenario C: Two separate author pools. your business later adds a "Sourcing Advisors" Custom Object type for external partners who contribute occasional posts. They create a second field group named "Advisor Bio" and tick Sourcing Advisors in Locations. The two groups — Author Bio (core team) and Advisor Bio (external advisors) — operate independently, each with its own archive and detail pages. The two populations stay separate in both the admin and the public site without any overlap.
Related reading
Last updated: 2026-05-05
mocks: 7 1. public-site-result page-hero — /authors archive grid (Ada/Grace/Alan) 2. settings-save-success — Author type saved, step 1 save banner 3. admin-list-view — Authors type in Custom Objects list (1 row, Draft) 4. admin-edit-form — Author Bio field group, 5 fields + sidebar tips 5. admin-list-view — Authors records list (3 rows, all Published) 6. settings-save-success — Blog post save banner, step 6 7. public-site-result page-hero — /authors/ada-lovelace detail page code fences: 1 (author by-line HTML block, step 5) named Example N scenarios: 3 (Good use cases) + 3 (Examples section) H3 sections: 11 Steps: 7 numbered items under ### Steps classification: PUBLIC audience: sgen-admins (customer) brand sweep: your business only; authors an editor / a teammate / a developer dev-isms: 0
-->
