Regular field groups attach data to individual posts or pages — a hero section on the About page, product details on a product post, a bio on a team member profile. But some information does not belong to any single post. It belongs to the entire site. Your company phone number appears in the header and footer of every page. Your social media links show up in the footer and on the contact page. A global announcement banner stretches across the top of every screen. Where do you manage this data?
Options Pages solve this problem. An Options Page is a dedicated admin screen — visible in the WordPress sidebar menu — where content managers enter site-wide data that is available everywhere. It is not tied to a post or page. It is tied to the site itself.
Common Use Cases for Options Pages
| Options Page Name | Fields On It | Where the Data Appears on the Website |
|---|---|---|
| Site Settings | Company Name, Phone Number, Email, Address, Logo | Header, footer, contact page, schema markup, email signatures |
| Social Media Links | Facebook URL, Twitter/X URL, Instagram URL, LinkedIn URL, YouTube URL, TikTok URL | Social icons in the header, footer, sidebar, and sharing widgets |
| Global Announcement | Banner Text, Banner Link URL, Banner Color, Show/Hide Toggle | A colored bar at the very top of every page on the site |
| Footer Content | Copyright Text, Footer Logo, Footer Navigation Links, Newsletter Signup Heading, Privacy Policy Link | The site footer on every page |
| Theme Appearance | Primary Brand Color, Secondary Brand Color, Font Choice (select), Layout Width (select: Narrow/Standard/Wide) | Affects the visual appearance of every page |
| Business Hours | Monday-Friday Hours, Saturday Hours, Sunday Hours, Holiday Message, Holiday Mode Toggle | Contact page, Google Business schema, header bar |
Step-by-Step: Creating a Complete “Site Settings” Options Page
The scenario: You manage a consulting firm’s website. The firm’s phone number, email, address, and logo appear on every page — in the header, the footer, and the contact section. When the office moves or the phone number changes, the marketing manager needs to update it in one place and have the change reflected site-wide.> Three ways to create an Options Page in Field Forge:
>
> 1. Admin UI (recommended for content managers) — go to Field Forge > Options Pages and click Add New Options Page. Fill in Page Title, Menu Slug, Capability, Parent Page, Icon, Position. Save. The menu item appears immediately in the WordPress admin sidebar. You can edit or soft-delete the page later from the same list.
> 2. Auto-register from a field group — if a field group has an Options Page == location rule, Field Forge auto-registers a top-level menu item with the group’s title. No code, no extra admin step. Useful when the page exists only to host one field group.
> 3. PHP snippet — call fieldforge_add_options_page([...]) (or the ACF-compatible acf_add_options_page([...])) from your theme’s functions.php. Use this when you want the page registration to live alongside the rest of your theme code (so it deploys with the theme).
>
> All three approaches coexist — you can mix and match. The admin UI lists pages from every source, but only DB-registered pages have edit/delete actions; PHP-registered pages are read-only in the UI (change them in code).
#### Part 1a (recommended): Create the Options Page in the Admin UI
- Go to Field Forge > Options Pages
- Click Add New Options Page
- Fill in the form:
– Menu Title: “Site Settings” (or leave blank to reuse the page title)
– Menu Slug: site-settings (auto-generated from the title — keep it lowercase, hyphenated)
– Parent Page: “(top-level menu)”
– Capability: manage_options (Administrator-only)
– Position: 80 (orders the menu in the WordPress sidebar)
– Icon: dashicons-admin-generic (or any Dashicons name)
– Update Button Text / Updated Message: customize if you want the save button or success notice to say something other than “Save Options” / “Options saved.”
- Click Save Options Page
- The “Site Settings” menu item appears in the WordPress sidebar immediately. Click it — the page is empty for now (no field group bound yet). That comes next.
#### Part 1b (alternative): skip Part 1a and let the field group auto-register
If you prefer the simpler flow where the field group’s title becomes the menu label, skip Part 1a entirely. The field group’s location rule (next section) will auto-register a menu item using the group’s title. You don’t get the Edit / Delete UI for that page, but you save one admin step.
#### Part 2: Create the Field Group That Will Power the Options Page
- Go to Field Forge > New Field Group
- Enter the title: Company Information (this becomes the heading on the field group inside the Options Page; if you skipped Part 1a, this also becomes the menu label)
- Add your fields:
– Image — Label: Company Logo, Name: company_logo, Instructions: “Upload your logo. Recommended: SVG or PNG with transparent background, at least 200px wide.”
– Text — Label: Company Name, Name: company_name, Required: Yes
– Text — Label: Phone Number, Name: phone_number, Placeholder: “(555) 123-4567”, Wrapper: 50%
– Email — Label: Email Address, Name: email_address, Wrapper: 50%
– Textarea — Label: Office Address, Name: office_address, Rows: 3
– Tab field — Label: “Social Media” (creates a second tab)
– URL — Label: Facebook URL, Name: facebook_url, Placeholder: “https://facebook.com/yourcompany”, Wrapper: 50%
– URL — Label: Twitter/X URL, Name: twitter_url, Wrapper: 50%
– URL — Label: Instagram URL, Name: instagram_url, Wrapper: 50%
– URL — Label: LinkedIn URL, Name: linkedin_url, Wrapper: 50%
– URL — Label: YouTube URL, Name: youtube_url, Wrapper: 50%
– Tab field — Label: “Announcement Bar”
– True/False — Label: Show Announcement, Name: show_announcement, Default: No, Instructions: “Toggle this on to display a site-wide announcement banner at the top of every page.”
– Text — Label: Announcement Text, Name: announcement_text, Placeholder: “We are hiring! Check our careers page.”
– URL — Label: Announcement Link, Name: announcement_link
– Color Picker — Label: Announcement Background Color, Name: announcement_bg_color, Default: #2563EB
- Scroll down to Location Rules
- Set: Options Page is equal to a slug like
site-settings(this becomes the menu page slug — keep it short and lowercase) - Click Save Field Group
- The new menu item appears in the WordPress sidebar with your field group’s title (“Company Information”) as the menu label
> Want a different menu label, icon, or position? Add a small snippet to your theme’s functions.php. The slug must match what you set in the location rule:
>
> add_action('init', function () {
> if (function_exists('fieldforge_add_options_page')) {
> fieldforge_add_options_page([
> 'page_title' => 'Site Settings',
> 'menu_title' => 'Site Settings',
> 'menu_slug' => 'site-settings', // matches location rule
> 'icon_url' => 'dashicons-admin-generic',
> 'position' => 80,
> ]);
> }
> });
>#### Part 2: Fill in the Site Settings
- Click the new menu item (“Site Settings” / “Company Information”) in the WordPress admin sidebar
- You see the “Company Information” field group with three tabs: General, Social Media, and Announcement Bar
- On the General tab: upload your logo, enter the company name, phone, email, and address
- Switch to the Social Media tab: paste your social media profile URLs
- Switch to the Announcement Bar tab: toggle “Show Announcement” to Yes, type the announcement text, paste a link, and pick a background color
- Click Save Changes (the button at the bottom of the Options Page)
[Screenshot: the Site Settings Options Page in the admin, showing the General tab with fields filled in — logo uploaded, company name, phone, email, and address entered]
The data is now saved and available site-wide. Your developer pulls these values into any template — the header, footer, contact page, announcement bar, or schema markup.
Editing or Deleting an Options Page
Pages created via the admin UI (“DB” source in the list) can be edited or deleted at any time:
- Edit: open Field Forge > Options Pages, click the pencil icon next to the row. Change the title, menu label, capability, parent, icon, position, button text, or success message. Save. The change reflects in the WordPress sidebar immediately on the next admin page load.
- Soft-delete: click the trash icon. The row stays in the database with
status = deletedbut the menu item disappears. Field groups bound to that page stop showing in the admin until you restore. - Restore: soft-deleted rows show a restore (undo) icon in their actions column. One click brings the page back to active status.
Pages from PHP code (fieldforge_add_options_page()) or auto-registered from a field group location rule are listed for visibility but are read-only in the UI — change those by editing the source.
Creating Sub-Pages for Better Organization
If you have many site-wide settings, you can organize them into a parent page with child pages. The admin UI supports this directly — when adding or editing a page, set the Parent Page dropdown to “Field Forge”, “Settings”, “Appearance”, “Tools”, or any other top-level WordPress menu. The page becomes a child of that parent.
For more granular control (custom parent slug, batch creation), a functions.php snippet still works:
add_action('init', function () {
if (!function_exists('fieldforge_add_options_page')) return;
// Parent
fieldforge_add_options_page([
'page_title' => 'Site Settings',
'menu_title' => 'Site Settings',
'menu_slug' => 'site-settings',
'icon_url' => 'dashicons-admin-generic',
]);
// Children — note `parent_slug` matches the parent's `menu_slug`
foreach ([
'general' => 'General',
'social-media' => 'Social Media',
'appearance' => 'Appearance',
'integrations' => 'Integrations',
] as $slug => $title) {
fieldforge_add_options_page([
'page_title' => $title,
'menu_title' => $title,
'menu_slug' => $slug,
'parent_slug' => 'site-settings',
]);
}
});Then create one field group per child slug, with Options Page == general / social-media / etc. as the location rule. In the admin sidebar these appear as indented sub-items under “Site Settings.”
Who Can Edit Options Pages
By default, only users with the Administrator role can access Options Pages. This is controlled by the “Capability” setting when creating the page. If you want Editors to manage site settings too, change the capability to edit_posts — but be cautious about giving broad access to site-wide settings.
| Capability | Who Can Access | When to Use |
|---|---|---|
manage_options | Administrators only | Default — recommended for most sites |
edit_pages | Administrators and Editors | When trusted Editors need to update site-wide content |
edit_posts | Administrators, Editors, and Authors | Rarely needed — only for very open workflows |
> What happens without PRO: Options Pages are exclusively a PRO feature. Without them, site-wide data would have to be stored on a hidden “Settings” page, in the WordPress Customizer, or hard-coded in theme files. None of these approaches give content managers the clean, dedicated admin screen that an Options Page provides. If your site needs any global settings that non-developers manage, this feature alone justifies the PRO upgrade.
> Tip: Options Pages are ideal for data that changes infrequently — phone numbers, social media URLs, business hours. If the data changes daily (like an announcement), pair it with a True/False toggle so editors can quickly show or hide it without deleting and retyping the content.
> Common mistake: Creating too many Options Pages and losing track of where settings live. Start with one “Site Settings” page and use Tabs inside the field group to organize different categories of settings. Only create separate pages when the settings are genuinely unrelated (e.g., “Site Settings” for company info and “Analytics” for tracking codes).
—