A riding school theme with lesson booking built in
Horseclub is a free block theme for riding schools, equestrian clubs and livery yards. It ships the form a riding school’s site exists for — a lesson booking request that needs no plugin — with training courses, events, numbered membership plans, a reviews slider and a gallery, eight colour palettes and full site editing throughout.

Two versions of Horseclub
The same design, built two ways. Both are free.
Recommended for new sites
Block theme
This download. Everything is edited in WordPress’s own Site Editor, with no plugins: the sections are patterns, eight colour palettes switch in Styles, and visitors get a dark-mode switch. The booking, contact and newsletter forms are part of the theme.
For sites built with Elementor
Elementor edition
The same design built for Elementor. It needs the free Elementor plugin; its companion, with the Horseclub widgets, is built into the theme. The source is free on GitHub.
Lesson booking without a plugin
Riders’ reviews slide on the left, the booking form waits on the right: name, email, phone, a preferred date and a note about their riding. It validates on the server, carries a nonce and a honeypot, and works with JavaScript turned off. Requests go to the site’s admin address — or, with one filter, to your booking system.

Courses and prices, as blocks
Six training programmes with a photograph, a price and a line on what each course covers; six services in the same cards; four numbered membership plans. Each is a pattern: insert it, change the words and the photographs, and it stays exactly as editable as a paragraph.

Show days, clinics and open days
The events page sets each date beside its photograph, alternating sides down the page, with its own button. On a phone every event reads photograph first.

Eight palettes, checked before release
Rosette, the template’s own red and orange, then Saddle, Hunter, Navy, Burgundy and Meadow, and two dark palettes, Midnight and Stable. Every one is measured against WCAG AA before the theme is built, in light mode and in dark, and a palette that fails is not written.

Dark mode the visitor controls
The switch in the header is the visitor’s, separate from the palette you chose. It follows the reader’s system setting until they decide for themselves, and it lifts your palette rather than replacing it.

What you get
It has a blog, too
Competition results, horse-care advice, news from the yard. Archives, single posts, categories, tags, author pages, search and a 404 are all designed rather than inherited, with a sidebar of search, categories and recent posts.

Questions
No. The booking, contact and newsletter forms and dark mode are part of the theme. WooCommerce is styled if you add it, and is not required.
To the site’s admin email address, sent with WordPress’s own mail function. If your host cannot send mail, any SMTP plugin fixes the forms along with everything else. To send requests to a booking system instead, hook the horseclub_form_handlers filter and return true; Horseclub then sends nothing of its own. horseclub_form_email_to changes the address.
Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Forminator and Ninja Forms are mapped onto the theme’s own colours and spacing.
Eight palettes and five type pairings ship with the theme, each a one-click choice in the Site Editor under Styles. Every colour is a palette entry you can edit there too.
The map on the contact page is a Custom HTML block holding an OpenStreetMap embed. On openstreetmap.org, find your yard, choose Share → HTML, and paste the new address into the block.
Yes. Add add_filter( 'horseclub_enable_dark_mode', '__return_false' ); to a child theme or a small plugin, and the switch in the header goes with it.
Yes. Add add_filter( 'horseclub_enable_scroll_animations', '__return_false' ); and sections stop fading in; the reviews slider and the video popup keep working. Visitors whose system asks for reduced motion never see the reveals either way.
For a new site, the block theme: everything is edited in WordPress’s own Site Editor and nothing else needs installing. The Elementor edition is the same design for sites already built with Elementor; it needs the free Elementor plugin.
Yes. Every string is translatable and languages/horseclub.pot is included.
Yes, at most twice a day, because it is distributed outside the WordPress.org theme directory. It sends the theme’s version, the WordPress and PHP versions, the locale, whether the site is a multisite, and an identifier derived from the site’s address with the site’s own secret key, so it cannot be turned back into the address. The horseclub_check_for_updates filter switches it off.
The details
| Requires | WordPress 6.6 or newer |
|---|---|
| PHP | 7.4 or newer |
| Tested up to | WordPress 7.1 |
| Licence | GNU General Public License v2 or later |
| Patterns | 21 to insert, plus 11 the templates use |
| Templates | 14, plus 3 template parts |
| Styles | 8 colour palettes × 5 type pairings |
| Fonts | Poppins and Playfair Display, self-hosted |
| Icons | Tabler Icons (MIT), drawn in the palette’s colours |
| Form plugins | Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Forminator, Ninja Forms |
| Build step | None — no npm, no SCSS |
