Install and update
Requirements
| Needs | |
|---|---|
| WordPress | 7.1 or newer. The theme is a block theme with theme.json v3 and uses the Abilities API; it will not run on an older release. |
| PHP | 7.4 minimum. |
| Browsers | Current Chrome, Firefox, Safari and Edge, on a desktop and on a phone. Recorded on the live preview on 1 October 2026 in Chrome and Edge (Chromium 153), Firefox 155 and Safari 26 (WebKit; Safari on iOS and Chrome on Android by phone emulation), at 1440px and 390px wide, light and dark: every page, plus the booking, the menu filter, a slip coming down on its minute, the phone's menu and the colour-scheme toggle. The scroll reveals need a browser with scroll-driven animations (Chrome, Edge and Safari have them); Firefox shows the finished page without them. See Motion. |
| Editor | The Site Editor. There is no page builder and none is claimed. Elementor is not supported. |
| WooCommerce | Not supported and not claimed. The theme sells nothing. |
| Multilingual | Translatable strings and ordinary WordPress records; no multilingual plugin compatibility is currently claimed. See Translation. |
| Server | Nothing unusual. No exec. Outbound HTTPS to tailthemes.com is used three times: to install the companion plugin from the dashboard, to fetch the demo photographs during the import, and for the companion plugin's update check. All three have an offline alternative below. |
Where the download comes from
Table and Type is sold on tailthemes.com, and only there. A purchase gives you a licence, and the licence gives you the download:
- the licence mail carries the key and a Download the package link;
- the confirmation page you land on after paying carries the same two;
- tailthemes.com/account lists every licence you hold, each with its key and Download package. It always hands over the current version.
Keep the licence key. It is what identifies your purchase when you write to support.
The installable zip, and the package
This is where most installs go wrong, so it is worth one minute.
The download is one zip, table-and-type-package-<version>.zip. It is not a theme. Unpack
it on your own machine and you get:
table-and-type-package-1.2.4.zip
├── table-and-type.zip ← the theme. THIS is what you upload.
├── table-and-type-child.zip ← the child theme, optional
├── plugins/
│ ├── table-and-type-core.zip ← the companion plugin (the demo content file is inside it)
│ └── reef-bookings.zip ← the booking engine, optional
├── documentation/ this guide, offline
├── licensing/ the GPL text and the asset credits
└── changelog.txt
- Appearance › Themes › Add New Theme › Upload Theme →
table-and-type.zip. - If WordPress says "The package could not be installed. The theme is missing the style.css stylesheet", you uploaded the package. Unpack it and upload the theme zip inside it.
The offline documentation/ folder is this guide. Its screenshots are linked from our server
rather than carried in the zip, so they need a connection; the text does not.
The companion plugin
table-and-type-core holds the content: dishes, services, sections, hours rows, slips, booking rows
and the site facts, plus the blocks that render them and the agent abilities.
Two ways in, and they install the same file:
- Appearance › Install Plugins. Table and Type Core is listed as recommended, never
required; WordPress downloads it from
https://tailthemes.com/wordpress/plugins/table-and-type-core.zip. Nothing is force-activated and the notice is dismissible. - Plugins › Add New Plugin › Upload Plugin →
plugins/table-and-type-core.zipfrom your download. Use this when your server cannot reach ours.
The same screen also offers Reef Bookings, the booking engine, also recommended and never required, and One Click Demo Import, which is free from wordpress.org. All three are opt-in.
The plugins are downloaded rather than packed inside the theme zip, because a theme that carries
another zip inside it cannot be checked or updated on its own. The identical files sit in your
download's plugins/ folder.
The booking engine
reef-bookings is optional and the theme is complete without it. Install it and describe your room
(your tables and their seats, and a service with the hours it runs) and the booking page stops
handing off: it takes the table itself, against the room you described. Until there is a table and
a service, everything behaves exactly as it did before, because a plugin that is installed but not
set up must not replace a working hand-off with an empty form.
It is a plugin in its own right, not a part of this theme: its own admin screens, its own iCalendar feed, its own privacy export. Deactivate it and the theme carries on. See Booking, orders and enquiries for the four modes and for the mail setting, which the demo ships switched off.
What the companion plugin adds
| With the plugin off | With it on |
|---|---|
| Every page renders. Every band, heading, photograph frame and action is there, as blocks you edit by hand. | The same pages, with the bands that state a fact about today filled from your records. |
| The home bands that change by the day (the hero slip, today's changes, the served card, today's hours, each service's hours) show the theme's typed stand-ins. They name no weekday and no date, so they are never wrong about the calendar. | Those bands read your slips, services and hours, and a cached page still gets the hour right. |
On the imported demo's inner pages, every plugin block is drawn by the theme's static twin (inc/twins/): the same card, hours, facts and policy rows, from one fixed record of the demo. |
The same objects, from your records and today's clock. |
| The card is printed once, all five services stacked, with the theme's stand-in drawings. | One service per tab, a dietary filter, photographs cropped to a focal point. |
| The header's status slot is empty; the footer prints its typed week and address. | "Open until 17:00", your week and your address, derived from the hours and the site facts. |
| The enquiry block prints a write-to-us address. | A form that validates, sends and answers. |
No structured data, no abilities, no /llms.txt. |
All three. |
Deactivating it deletes nothing, and neither does switching theme: the records stay in your database. Where everything comes from lists every band on both sides of that line.
The child theme
Install table-and-type-child.zip the same way, then activate it instead of the parent. Use it when
you want to add PHP or CSS of your own and keep updating the parent.
You usually do not need it. Block themes keep your colours, fonts, templates and template parts
in the database, not in files: changes you make in Appearance › Editor survive a theme update
whether or not you use a child theme. The child theme is for code: a functions.php snippet, a
stylesheet rule, a template override you want under version control.
Updating without losing anything
Your content is safe across an update because of where it lives:
| What | Where it lives | Survives a theme update | Survives a theme switch |
|---|---|---|---|
| Dishes, services, sections, hours, slips, booking rows, site facts | The companion plugin's database records | Yes | Yes |
| Pages you built, and the blocks on them | The database | Yes | Yes |
| Colours, fonts and spacing you changed in Styles | The database (a wp_global_styles record) |
Yes | They belong to this theme |
| Templates and parts you edited in the Site Editor | The database | Yes | They belong to this theme |
theme.json, style.css, patterns, fonts, the shipped templates |
The theme's own files | Replaced |
So: never edit the theme's files directly. Anything you want to keep goes in the Site Editor, in Styles, or in the child theme.
The companion plugin updates itself
Table and Type Core appears on Dashboard › Updates and on the Plugins screen like any other
plugin when a new version exists. It finds out by reading one small file,
https://tailthemes.com/wordpress/plugins/table-and-type-core.json, at most once every twelve
hours, only from the admin or from WordPress's own scheduled tasks and never while a visitor is
loading a page. The request carries nothing about your site: no address, no licence key, no
statistics. If your host blocks outbound requests the check fails silently and you update by
upload instead.
The theme is updated by upload
- Back up. Always.
- Read
changelog.txtin the new package. Update Table and Type Core first if it says the plugin changed. - tailthemes.com/account → Download package, and unpack it.
- Appearance › Themes › Add New Theme › Upload Theme → the new
table-and-type.zip. WordPress recognises the theme, shows the installed and the uploaded versions side by side, and offers Replace active with uploaded (Replace installed with uploaded when another theme is the active one). Press it. - Check the version in this guide's footer matches Appearance › Themes.
There is no licence-key field in the theme or the plugin, and nothing on your site checks a licence. Updates are included for the period your licence states; see Support, licence and updates.
If a Site Editor template looks wrong after an update, it is because you had customised it and your copy is still being used. Appearance › Editor › Templates, open it, and use Reset to take the theme's new version. The same is true of the header and footer parts, which the demo import saves with its own navigation and photographs.