Open WP Visibility → Settings. The General section holds the Title separator and the two homepage fields; the Titles & descriptions section holds one template per page type. Variables are lowercase names in curly braces, {title} {sep} {site} being the shipped post template. To change one post, open the WP Visibility sidebar in the editor and type into Search title or Search description; leave either empty to fall back to the template.
Where the settings are
The settings page is one searchable screen, not tabs. Type “template” in the search box to filter to the section.
General
| Field | What it does |
|---|---|
| Title separator | The character {sep} renders. Presets: en dash (the default), em dash, pipe, bullet, middle dot, right guillemet, slash, or Custom with any character you type. |
| Homepage title | When filled in, this wins over the homepage title template. |
| Homepage meta description | When filled in, this wins over the homepage description template. |
The nine templates
| Template | Default | Applies to |
|---|---|---|
| Homepage title template | {site} {sep} {tagline} |
The front page, unless Homepage title is set |
| Post & page title template | {title} {sep} {site} |
Every single post, page and custom post type entry |
| Archive title template | {term_title} {sep} {site} |
Category, tag and custom taxonomy archives, date archives, post type archives |
| Author archive title template | {author} {sep} {site} |
Author pages |
| Search results title template | {search_query} {sep} {site} |
Internal search results |
| 404 page title template | {notfound} {sep} {site} |
The not-found page |
| Homepage description template | {tagline} |
The front page, unless Homepage meta description is set |
| Post & page description template | {excerpt} |
Single entries with no description of their own |
| Archive description template | {term_description} |
Term archives |
Two things are not on that list on purpose. There is no per post type template: posts, pages and products share one template, and the archive template covers taxonomy, date and post type archives together. To tell types apart, use {post_type_singular} or {post_type_plural} inside the shared template, or override individual entries. And search results, 404, date and author pages have no description template, so they print no description tag.
On page 2 and later of any archive the separator and “Page 2” are appended for you. No variable is needed for that.
Every variable
Names are case-insensitive. An unknown name renders as nothing, and when a variable renders empty, such as {tagline} on a site with no tagline, the leftover separator is removed with it.
| Variable | Renders |
|---|---|
{site} |
The site title |
{tagline} |
The site tagline |
{sep} |
The title separator |
{title} |
The post or page title |
{excerpt} |
The excerpt, or the first 160 characters of the content cut at a word, with tags, blocks and shortcodes stripped |
{author} |
The author’s display name |
{date}, {modified} |
Publish and modified dates in the site’s date format |
{term_title} |
The term name on a term archive, the post type name on a post type archive, the author on an author page, the date label on a date archive |
{term_description} |
The term description, up to 160 characters |
{search_query} |
The visitor’s search terms |
{notfound} |
The words “Page not found” |
{page} |
“Page 2 of 5” on page 2 and later, otherwise nothing |
{pagenumber} |
Just the number, on page 2 and later |
{post_type_singular}, {post_type_plural} |
The post type’s labels |
{category} |
The first category |
{custom_field:KEY} |
The post meta value stored under KEY |
{currentyear}, {currentdate} |
Today’s year, and today’s date in the site’s format |
Developers can add variables with the wpvis_template_variable filter.
Examples
On a site named Garden Notes with the slash as separator, the post “How to Prune Tomatoes” renders as:
How to Prune Tomatoes / Garden Notes
To add the year the post was last updated, change the post template to {title} {sep} {modified} {sep} {site}. To brand product pages differently without a second template, use {title} {sep} {post_type_singular} {sep} {site}, which reads “Trowel / Product / Garden Notes” on a product and “How to Prune Tomatoes / Post / Garden Notes” on a post. To pull a subtitle stored in a custom field named subtitle, use {title}: {custom_field:subtitle} {sep} {site}.
Override one post
In the block editor, click the WP Visibility icon in the top toolbar to open the sidebar. The Search appearance panel opens first with a preview and two fields, Search title and Search description. Type plain text, or use variables; a per-post value is a template too, so {title} | {currentyear} works. The preview shows the rendered result and a character meter with advisory bands of 30 to 60 for titles and 70 to 160 for descriptions. Variables the editor cannot resolve on the client render on the live page.
Leave a field empty to use the template. An empty description falls back to the excerpt, then to the content.
The classic editor shows the same two fields in a WP Visibility metabox. Values save as ordinary post meta with the post, so autosave and revisions carry them.
Categories and tags
Open a term under Posts → Categories or Tags and edit it. WP Visibility adds Search title and Search description to the edit form. Empty means the archive template and the term description. Quick edit does not show these fields.
From the command line
wp visibility settings get separator
wp visibility settings set separator "|"
wp visibility settings set title_singular "{title} {sep} {site}"
wp visibility set 123 --title="A better title" --description="A better description"
Setting keys: separator, homepage_title, homepage_description, title_home, title_singular, title_archive, title_author, title_search, title_404, desc_home, desc_singular, desc_archive.
An assistant connected through the plugin proposes the same per-post changes through the review queue; the templates themselves are site settings, changed through the settings ability or by you.