Solvang USA

The visitor site for Solvang, California, where people planning a trip find places to stay, eat and taste wine, and what is on while they are there.

solvangusa.com
The Solvang USA home page

What they came with

Someone planning a trip is looking for the same few hundred businesses in different ways: a bed for tonight, somewhere to eat, a tasting room, a venue for a wedding. The same winery therefore has to stand in several directories, inside the guides, and in whatever is on that week, which means either one record doing several jobs or the same address typed out four times. On top of that sits a calendar that has to hold single nights, festival runs and things that repeat weekly. Kept by hand, the maintenance becomes the whole job.

What the build had to do

One record, several directories

A hotel is a property on the lodging directory, a venue on the weddings page and a result on the meetings page; a gelato shop sits under both dining and shopping. Each business is one record carrying several taxonomy terms, and every page reads it through its own vocabulary and prints its own type label.

Filter labels carry their own counts

The lodging row reads all 29, hotels 18, dog friendly 9, and it bands properties into under 20 rooms, 20 to 60, and over 60. Those bands come off a room count on each record, so they are derived rather than typed, and they stay right the day a property is added.

Every listing rendered into every panel

The filters switch panels already present in the page rather than loading a new URL, so the whole directory arrives at once and never moves. The trade is duplication: a property that matches seven facets is written into the document seven times, which is a cost worth paying for a directory this size and not for a much larger one.

A calendar with five date shapes

One list holds a single evening, a market repeating every Wednesday, a three-day festival written as three dated entries, a month-long run with no dates at all, and an exhibit spanning half a year that has to reappear in every month it crosses. The date model is the work, not the layout.

One offer, four places

Nothing books on the site. A hotel's current offer has to reach its own property page, the featured savings list on the deals page, a set on the home page and the stay menu, with every copy linking out to the hotel's own booking.

Technical detail

Businesses stored once, queried often

Each place is a single custom post type entry carrying its category, area and amenity terms; the lodging, dining and tasting directories are queries over those records rather than separate page trees. An address or photo changes in one field and propagates everywhere it appears.

Counts come from the query

Filter labels are built from the same WP_Query that produces the results, so the number beside a label always matches what clicking it returns. A filter that would come back empty is visible as empty before anyone tries it.

Five date shapes, one calendar

EventON models single days, multi-day runs, weekly repeats, all-day entries and time-bounded ones as the same object, so the calendar and the what's-on panels read one source. Listings sort by next occurrence rather than publish date, which is what a visitor arriving on a Tuesday needs.

Template parts, not a page builder

Listing cards, filter rails and event rows are GeneratePress child theme template parts pulled in through hooks, so a listing renders identically on the home panels, the category pages, the guides and search. The trade-off is less drag-and-drop freedom in the editor in exchange for one place to fix a card.

The stack

CMS

WordPressGeneratePress child themeAdvanced Custom Fields

Content model

Custom post typesCustom taxonomiesWP_QueryEventON

Frontend

PHP templatesJavaScriptCSS
Sector
Destination marketing
Audience
Visitors, meeting and wedding planners
Shape
Directories, events calendar, guides
Platform
WordPress, GeneratePress, EventON
Solvang USA on a phone
solvangusa.com/where-to-stay
Solvang USA: solvangusa.com/where-to-stay