Latest
⌘K
From zip to a working store.
Everything you need to install the RIVISTA WordPress theme, import the demo content and make it your own — the twenty homepage demos, the Customizer options, the WooCommerce setup and the hooks a developer will reach for.
No section matches that search. Try a shorter word, or clear the field to see the whole guide.
Welcome.
Thank you for choosing RIVISTA — an editorial WordPress and WooCommerce theme for fashion brands, slow-fashion houses, concept stores and boutique retailers. It is a classic PHP theme: no page builder is required, no build step is involved, and every template is a plain file you can copy into a child theme.
What’s included
Homepage demos
Twenty complete homepage layouts, from Editorial — Quiet to Typo — Type. Each one is an ordinary page: choose yours under Settings → Reading.
Demo pages
The one-click import builds 72 pages: 66 full RIVISTA layouts plus the six live ones — home, shop, cart, checkout, my account and the magazine index.
Colour packs
Twenty-two colour packages in the Customizer, eight of them dark. Pick one for everybody, or switch on the style panel and let visitors try them.
Elements page
Every component, colour, type style and icon is collected on the Style Guide page — a developer’s best friend.
How to use this guide
Sections run from quickest to most advanced. If you are starting fresh, follow them in order. If you are hunting for one feature, use the search field at the top of this page (press ⌘K or Ctrl K to jump into it) or the sidebar. Every code block has a copy button.
Before you launch
This page is part of the demo content. When your store is ready, delete it along with the other showcase pages — Presentation, Demos, All Pages, Map and Promo. A companion quick-start manual ships as documentation/index.html inside your theme folder; this page is the fuller reference, so quote its section numbers in support messages.
Requirements.
RIVISTA is a standard WordPress theme, so any host that runs WordPress runs RIVISTA. The table below lists what the theme declares and what it was tested against.
| What | Minimum | Notes |
|---|---|---|
| WordPress | 6.0 |
Tested up to 7.1 |
| PHP | 7.4 |
Tested on PHP 8.2 |
| Database | MySQL / MariaDB |
Whatever your WordPress install already uses |
| WooCommerce | required for the shop |
Tested on 10.9 — shop, product, cart, checkout and account pages need it |
| Contact Form 7 | recommended |
The demo imports a contact form |
| One Click Demo Import | recommended |
Runs the RIVISTA Complete Demo import |
| Elementor + RIVISTA Core | optional |
Elementor only for the three RIVISTA widgets; RIVISTA Core also implements the four section shortcodes several demo pages use |
Two host settings that matter
- Pretty permalinks — the header menu, the 404 page and the commerce scripts link to real paths such as
/shop/and/lookbook/. Set Settings → Permalinks to anything other than Plain. - A writable uploads folder — the demo importer writes a prepared copy of the demo file into
wp-content/uploads/and pulls the demo photography from your own theme URL.
Dependencies
None. RIVISTA loads no third-party JavaScript libraries and no remote assets — no CDN, no font service, no analytics. Every interaction is vanilla JavaScript, and the three typefaces ship with the theme as self-hosted WOFF2 files in assets/fonts/ (see Typography).
Installation.
Your marketplace download contains rivista-theme.zip — the installable theme. Inside it you will also find readme.txt, LICENSE, THIRD-PARTY-CREDITS.md, the translation template languages/rivista.pot, the demo content and a companion quick-start manual as documentation/index.html.
- Download your purchaseSign in to your marketplace account, open your downloads and grab the full package for RIVISTA.
- Upload the themeIn WordPress go to Appearance → Themes → Add New → Upload Theme, choose
rivista-theme.zipand click Install Now. - ActivateClick Activate. A notice appears offering the recommended plugins.
- Install the recommended pluginsOpen Appearance → Install Plugins. WooCommerce, Contact Form 7, One Click Demo Import and Elementor come from wordpress.org; RIVISTA Core is bundled with the theme. Nothing is forced — install what you need.
- Import the demoActivate WooCommerce and Contact Form 7 first, then go to Appearance → Import Demo Data and run RIVISTA Complete Demo. Section 04 covers this in detail.
- Save your permalinksVisit Settings → Permalinks and press Save Changes so every demo URL resolves.
Upload limit too small?
If your host rejects the zip, unpack it on your computer and upload the rivista folder to wp-content/themes/ over SFTP, then activate it from Appearance → Themes. Do not upload the whole marketplace package — WordPress only wants the theme folder.
Install from the command line
# Install and activate the theme
wp theme install rivista-theme.zip --activate
# The plugins the demo expects
wp plugin install woocommerce contact-form-7 one-click-demo-import --activate
# Refresh the rewrite rules
wp rewrite flush
# Then run Appearance -> Import Demo Data in the dashboard
Demo import.
RIVISTA ships one import — RIVISTA Complete Demo — and it brings in everything at once: pages, journal posts, products, media, menus and the contact form. Choosing a different look afterwards is not a second import; it is picking which page is your front page.
- Start from a fresh installBack up first. The import deletes WordPress’s untouched “Sample Page” and “Hello world!”, moves the five default widgets into Inactive Widgets, and writes your homepage, blog page and WooCommerce page settings.
- Activate WooCommerce and Contact Form 7The demo file contains products, product categories and a contact form. Without those plugins WordPress silently skips them.
- Run the importAppearance → Import Demo Data → RIVISTA Complete Demo → Import. It runs in batches and takes a few minutes: 72 pages, 6 journal posts, 10 products, 16 photographs, 7 menus.
- Choose your homepageSettings → Reading → A static page. Pick Home for the built-in “Outfit of the day” homepage, which is assembled from your real products, or any of the twenty demo pages in the table below. Leave Magazine as the posts page.
- Save your permalinksSettings → Permalinks → Save Changes.
- Make it yoursSet your logo and site title in Customizer → Site Identity, pick a colour pack, then replace the demo photography and copy.
The twenty homepage demos
Every demo is a page using the RIVISTA Demo Full Width template. Set one as your front page, or open it to borrow a section.
| Nº | Demo | Page |
|---|---|---|
| 01 | Editorial — Quiet | /index-home/ |
| 02 | Bold — Fashion | /index-bold/ |
| 03 | Dark — Luxury | /index-dark/ |
| 04 | Beauty — Pastel | /index-beauty/ |
| 05 | Boutique — Living | /index-boutique/ |
| 06 | Showcase — Slider | /index-showcase/ |
| 07 | Gallery — Slider | /index-gallery/ |
| 08 | Atelier — Slider | /index-atelier/ |
| 09 | Kinetic — Motion | /index-kinetic/ |
| 10 | Mosaic — Grid | /index-mosaic/ |
| 11 | Collage — Editorial | /index-collage/ |
| 12 | Curtain — Reveal | /index-curtain/ |
| 13 | Diagonal — Dynamic | /index-diagonal/ |
| 14 | Journal — Magazine | /index-journal/ |
| 15 | Reveal — Scroll | /index-reveal/ |
| 16 | Runway — Fashion | /index-runway/ |
| 17 | Spotlight — Focus | /index-spotlight/ |
| 18 | Stack — Layered | /index-stack/ |
| 19 | Tilt — 3D | /index-tilt/ |
| 20 | Typo — Type | /index-typo/ |
Your store goes public
The import switches WooCommerce’s “Coming soon” visibility off, so the shop is visible the moment it finishes. Finish payments, tax and shipping (section 13) before you point a domain at it.
If the import stalls
Raise memory_limit and max_execution_time on the host and run it again — the importer skips what it already created, and the menus are rebuilt from scratch every time. The uploads folder must be writable, and your site must be able to fetch its own URLs, because the demo photographs are pulled from the theme folder.
Customizer.
Everything RIVISTA adds to WordPress sits in one panel: Appearance → Customize → RIVISTA Settings. Four sections, seven settings — no options framework, no database of its own.
Colour packs
Paper, accent and ink in one click, previewed live. Six packs give the footer a dark treatment; Midnight and Forest are dark throughout.
Style switcher
A tick-box adds a floating panel so visitors can try the colour packs, four typefaces and light or dark on their own device. Off by default — leave it off on a live store.
Typography
Contemporary (the bundled faces), Editorial Serif, Modern Grotesque, Classic Serif and System UI. The alternatives use system-safe stacks, so nothing is downloaded.
Header & footer
Header style, site layout direction and the announcement ticker; plus the footer newsletter shortcode.
Every setting at a glance
| Setting | Section | Default |
|---|---|---|
| Theme colour pack | Color Packs | Paper |
| Show the style switcher to visitors | Color Packs | off |
| Font pairing | Typography | Contemporary |
| Header style | Header Settings | Standard |
| Site layout direction | Header Settings | Automatic |
| Announcement text | Header Settings | empty |
| Newsletter form shortcode | Footer Settings | empty |
Header style offers Standard (logo left, menu right), Centered (logo centred, menu below), Minimal Overlay (transparent, for pages that open on a dark image) and Block (boxed and solid). Everything else you need — logo, background, menus, widgets, homepage and Additional CSS — lives in the WordPress sections of the same Customizer.
Who sees what
With the style switcher off — the default — every visitor sees the colour pack and typeface you chose. With it on, each visitor’s own choice is remembered in their browser’s localStorage, and yours remains the starting point.
Header & navigation.
The header has three parts: the announcement ticker, the header bar and the menus. All three come from the dashboard — there is no markup to edit.
Menus
Build them under Appearance → Menus. RIVISTA registers eight locations:
| Location | Where it appears |
|---|---|
| Primary Menu | The main header navigation |
| Mobile Menu | The slide-in menu on phones |
| Footer Column 1–4 | The four footer columns (Shop, Discover, Studio, Help) |
| Social Links | Icon row in the footer |
| Legal Links | The bottom line of the footer |
The demo import fills every location except Social Links, so that one is yours to create.
Social icons
Add links to the Social Links menu and the theme swaps each label for an inline SVG icon. Instagram, Facebook, X, YouTube, TikTok, Pinterest, LinkedIn, WhatsApp, Telegram and mailto: addresses are recognised from the URL; anything else gets a generic link icon. The label you typed stays in place as screen-reader text.
Mega menu
The panel that opens under the Shop item is rendered in template-parts/header/site-header.php and opened by assets/js/rivista-premium.js. Copy that template part into your child theme to change its columns or its featured image.
Announcement ticker
The scrolling bar above the header is one Customizer field. Leave it empty and the bar disappears.
Appearance -> Customize -> RIVISTA Settings -> Header Settings
Announcement text:
New drop every Thursday | 30-day easy returns | Free shipping on larger orders
# Separate messages with a vertical bar. The line is repeated in a
# scrolling track, so keep it short. Empty field = no ticker.
Typography.
RIVISTA uses three typefaces: Space Grotesk (display and interface), Instrument Serif (italic accents) and Inter (body copy). All three ship with the theme as self-hosted WOFF2 files in assets/fonts/, declared in assets/css/fonts.css — no request ever leaves your server.
Pick a pairing
Customizer → RIVISTA Settings → Typography offers five pairings: Contemporary (the bundled faces), Editorial Serif, Modern Grotesque, Classic Serif and System UI. The four alternatives are built from system-safe stacks, so switching never adds a download.
Use your own typeface
Put the .woff2 files in your child theme, declare them, and repoint the three variables. Because the variables cascade, one block changes the whole site.
@font-face {
font-family: "MyFont";
src: url("fonts/myfont.woff2") format("woff2");
font-weight: 400 700;
font-display: swap;
}
:root {
--display: "MyFont", "Space Grotesk", sans-serif;
--serif: "Instrument Serif", Georgia, serif;
--sans: "Inter", -apple-system, sans-serif;
}
Keep it local
Self-host anything you add. RIVISTA ships with no remote assets at all — keeping it that way is faster for visitors and simpler for your privacy policy.
Colours.
Every colour in RIVISTA is a CSS custom property on :root, and the twenty-two colour packs are nothing more than small blocks that rewrite those properties. Choose a pack in Customizer → RIVISTA Settings → Color Packs, or override the variables yourself. See the Style Guide for the complete palette.
:root {
/* Brand */
--ink: #14130f; /* primary text */
--paper: #ffffff; /* page background */
--terra: #c4452a; /* brand colour */
--accent: #c4452a; /* accent used for text: links, prices, dots */
/* Editorial accents */
--sky: #cfe6f0;
--butter: #f5ecc0;
--rose: #f0d8d2;
}
Each pack sets --paper, --paper-2, --ink, --ink-2, --ink-3, --line and --terra on :root[data-palette="…"], so an override of your own needs to be at least as specific — or simply pick the pack that is closest and adjust from there.
Try before you commit
Switch on “Show the style switcher to visitors” while you are building. The floating panel lets you flick through all twenty-two packs on the front end, then turn it off again before launch.
Shop setup.
The shop is real WooCommerce. RIVISTA overrides three templates — the product archive, the product card and the single product page — and leaves every WooCommerce hook firing, so your plugins keep working.
- Run the WooCommerce wizardAfter activating WooCommerce, finish its setup: store address, currency, and the pages it needs. The demo import points Shop, Cart, Checkout and My account at the RIVISTA pages for you.
- Add your productsProducts → Add New. A photo, a price and a category are enough; the card template uses the product image at a 4:5 crop, so upload portrait photography where you can.
- Organise the categoriesThe shop archive prints a row of category tabs with live counts, so keep the list short and meaningful.
- Delete the demo productsThe ten demo products exist to show the layout. Remove them once your own catalogue is in.
What the archive gives you
- An editorial header with the result count set as a serif superscript, plus the archive description.
- A category tab row with per-category counts, the WooCommerce result count and the standard sort menu.
- An optional full-width “story” tile after the fourth product on the first page of the main shop — it appears when a Lookbook page is published and there are at least eight products, and it can be changed or removed with the
rivista_shop_storyfilter. - Hairline pagination, or an end-of-collection line that links to your Collections page.
On every product card
Badges for Sold out, Sale and “Only N left” (when you manage stock and fewer than six remain), a hover stack with wishlist, compare and quick view, the title and price, the category and the star rating. The add-to-bag button is WooCommerce’s own link, so AJAX add-to-cart and cart fragments behave normally.
Wishlist, compare and quick view
All three are built into the theme — no plugin, no account. Choices are kept in the visitor’s browser; the pages themselves are rendered from your real products over AJAX. Compare holds up to four items and shows price, rating, availability, category, SKU and any product attributes, with the differences highlighted.
Product page.
The single product template is editorial: gallery on the left, a sticky buy column on the right, details in an accordion, then tabs, upsells and a “Pair with” row. It uses WooCommerce’s own gallery, so zoom, the lightbox and thumbnail sliding all work.
Details that come from your product data
- Title — a title written as Name — Variant (with spaced em dash) prints the part after the dash in serif italic.
- Price — the discount label (“−16%”, or “Up to −30%” for variable products) is calculated from the regular and sale prices.
- Rating — the star row, or an invitation to write the first review.
- Attributes — variable products get a styled attribute picker; the quantity field gains a minus/plus stepper that respects the product’s min, max and step.
- Store guarantees — the
<details>accordion under the buy box. Edit it with therivista_trust_badgesfilter (section 18); its policy link points at your Shipping & Returns page when one is published.
Sticky add to bag
Once the buy box scrolls away, a slim bar appears with the product, the price and a button that clicks the real add-to-cart control. Nothing to configure.
Product Editorial is a layout, not a product
The demo page Product Editorial is a magazine-style mock-up you can copy sections from. Your real product pages are rendered by woocommerce/single-product.php.
Cart & checkout.
The demo Cart and Checkout pages use WooCommerce’s own Cart and Checkout blocks, restyled by assets/css/woocommerce-cart-checkout.css. They are the real thing: taxes, coupons, shipping rates and payment methods all come from WooCommerce. If you prefer the classic shortcode cart, that works too and picks up the shared styling.
Mini-cart drawer
The bag icon in the header opens a drawer built from WooCommerce’s mini-cart, refreshed through cart fragments. RIVISTA adds a free-shipping progress meter, a quantity stepper on each line, a subtotal row and the note that shipping and taxes are calculated at checkout.
The free-shipping meter
The meter reads the smallest minimum order amount among your enabled WooCommerce Free shipping methods, so it already follows your real shipping settings. Set none up and the meter never appears. Use the filter to override that figure, or to switch the meter off entirely by returning zero.
// Set the mini-cart free-shipping goal (in your store currency).
add_filter( 'rivista_free_shipping_threshold', function ( $amount ) {
return 120;
} );
// Return 0 to remove the meter altogether.
add_filter( 'rivista_free_shipping_threshold', '__return_zero' );
Payments, tax & shipping.
These are WooCommerce settings, not theme settings — which is the point: RIVISTA never stands between your store and its gateways. Work through WooCommerce → Settings before you take a single order.
- General — selling locations, store currency and the currency position. Every price on the site is printed by WooCommerce, so this is the only place currency is set.
- Products — the shop page, measurement units, reviews and stock handling.
- Tax — rates and how they are displayed. Enable tax first under General.
- Shipping — zones, methods and rates. Add a Free shipping method with a minimum order amount if you want one, and match the mini-cart meter to it (section 12).
- Payments — enable the gateways you need. Any WooCommerce-compatible gateway works; the checkout block renders each one.
- Emails — order confirmations and the sender address. Send yourself a test order before launch.
Demo copy mentions demo policies
The imported pages are written for an imaginary Lisbon studio. Read through Shipping & Returns, FAQ, Privacy and Terms and replace them with your own terms — nothing there is generated from your WooCommerce settings.
Magazine.
The magazine is the WordPress blog. The imported Magazine page is set as your posts page under Settings → Reading, and it is rendered by home.php: a masthead, a featured story and the editorial grid. Articles are ordinary posts rendered by single.php.
Publish a story
- Write itPosts → Add New. Set a featured image — it is the cover on the index and the top of the article.
- File itThe demo ships four categories: Journal, Materials, Cities and Studio Notes. Use your own instead.
- Feature it (optional)The masthead highlights one post: the theme looks for the post meta
_is_featuredset toyes, and falls back to your newest post. Most sites can simply leave it alone.
The six imported journal posts — On Object Permanence, The Mills of Normandy, A Week in Porto, Why We Mend, Linen Explained and Slow Thursdays — are demo writing. Keep one as a formatting reference while you write your first piece, then delete them.
Lookbook.
Two lookbook pages are imported: Lookbook, a scrolling series of looks, and Lookbook Interactive, where each photograph carries shoppable hotspots. Both are ordinary pages using the RIVISTA Demo Full Width template, so you edit them in the WordPress editor.
Edit a look
- Open the pagePages → Lookbook → Edit. The layout is one HTML block; each look is a clearly commented section.
- Swap the photographyUpload yours to the Media Library and replace the image URLs. Portrait crops sit best.
- Link the piecesPoint each “shop the look” link at the matching product permalink, for example
/product/your-product-slug/.
Let WooCommerce print the products
Instead of hand-writing product cards, drop the shortcode [rivista_products limit="4"] into the page (registered by the bundled RIVISTA Core plugin). It renders real products — image, name, live price, add to bag — in the same editorial card as the shop.
Inner pages.
Beyond the homepages and the shop, the import creates a full set of supporting pages. Each is an ordinary WordPress page — edit the ones you want, move the rest to the trash.
Around the shop
Collections, Category, Shop List, Product Editorial, Shop The Look, Gift Cards, Fit Finder, Wishlist, Compare and a Confirmation mock-up.
Account layouts
Account, Orders, Order detail, Addresses, Settings and Sign in — design references. The working one is WooCommerce’s My account.
Story pages
Lookbook, Lookbook Interactive, Style Quiz, Archive, Events, Drops, Members and Makers.
Brand & help
Studio, Our Materials, Stores, Careers, Press, FAQ, Shipping & Returns, Size Guide, Contact, Track Order, Privacy and Terms.
A handful more are utility layouts: Search (a results mock-up — real searching is handled by the theme’s own search template), Coming Soon, Sliders (twelve slider patterns) and the Style Guide.
Layouts, not features
Pages such as Gift Cards, Track Order, Sign in, Drops and the account screens are designed layouts with demo data. They do not create gift cards, track real shipments or log anybody in — connect a plugin, or point people at WooCommerce’s own My account and order pages.
Add a page in the RIVISTA style
Create the page, choose the RIVISTA Demo Full Width template, and build with blocks or with the shortcodes in section 18. Per-page demo stylesheets are attached to the imported pages only, so a new page inherits the shared editorial styling rather than a specific demo’s.
Child theme.
Edit RIVISTA through a child theme and your work survives every update. No child theme is bundled — here is the whole recipe, two files.
/*
Theme Name: RIVISTA Child
Template: rivista
Version: 1.0.0
Text Domain: rivista-child
*/
<?php
add_action( 'wp_enqueue_scripts', function () {
// The parent style.css, plus its RTL mirror.
wp_enqueue_style(
'rivista-parent-style',
get_template_directory_uri() . '/style.css',
array(),
wp_get_theme( 'rivista' )->get( 'Version' )
);
wp_style_add_data( 'rivista-parent-style', 'rtl', 'replace' );
// Your own rules, loaded after the last theme stylesheet.
wp_enqueue_style(
'rivista-child-custom',
get_stylesheet_directory_uri() . '/custom.css',
array( 'rivista-custom-cards' ),
'1.0.0'
);
}, 20 );
- Put your CSS in
custom.css, not in the child’sstyle.css— WordPress loads that one early, so overrides there lose tomain.cssat equal specificity. - Copy any template into the child to change it, including the
woocommerce/overrides and the parts undertemplate-parts/. rivista_setup()and the four template tags ininc/template-tags.phpare wrapped infunction_exists, so a child theme can redefine them.
Import the demo first
If you run the demo import while a child theme is active, page templates that do not exist in the child folder are reset to the default. Import with RIVISTA active, then switch to your child theme.
Hooks & filters.
RIVISTA exposes its editorial decisions as WordPress filters. Add these to your child theme’s functions.php. The eleven below are every rivista_-prefixed hook in the theme — everything else the shop does runs on WooCommerce’s own actions and filters, which RIVISTA leaves firing.
| Filter | What it controls | Where it fires |
|---|---|---|
rivista_home_chips |
The homepage chip strip. Each chip is array( 'label', 'url', 'style' ); style is one of sky, butter, ink, rose or outline, and url is optional — set it and the chip becomes a link. Defaults to the strip built from your own WooCommerce settings and published pages. |
front-page.php |
rivista_home_season_label |
The kicker above the homepage hero; plain text, tags are stripped. Defaults to The Edit. |
front-page.php |
rivista_home_editorial_text |
The editorial teaser paragraph on the homepage. Defaults to the studio paragraph. | front-page.php |
rivista_home_model_shots |
The four model photographs in the homepage hero, as file names inside demo-content/media. Defaults to four bundled photographs. |
front-page.php |
rivista_mega_feature_heading |
The heading on the mega-menu feature card. Defaults to The new collection. |
template-parts/header/ |
rivista_shop_story |
The editorial tile inside the shop grid; return an empty array to drop it. Defaults to the Lookbook tile, which appears only on the first page of the main shop, when a Lookbook page is published and the grid holds at least eight products. | woocommerce/ |
rivista_trust_badges |
The store guarantees under the buy box. Each row is array( 'icon', 'title', 'sub', 'url' ); icon is one of shield, truck, refresh, heart, compare, eye or check. Defaults to three guarantees: shipping, returns and secure checkout. |
inc/ |
rivista_shipping_returns_url |
The policy link inside those guarantees; an empty string prints them without a link. Defaults to your Shipping & Returns page, when one is published. | woocommerce/ |
rivista_free_shipping_threshold |
The mini-cart free-shipping meter, in your store currency; return 0 to hide it. Defaults to the smallest minimum order amount among your enabled WooCommerce free-shipping methods — and to 0, meaning no meter, when you have none. |
inc/ |
rivista_hide_compare_bar |
Whether the sticky compare tray is suppressed. Defaults to true on cart, checkout, account and the order endpoints. |
inc/ |
rivista_content_width |
The global $content_width WordPress uses for embeds and media. Defaults to 1200. |
inc/ |
// Rewrite the guarantees shown under the add-to-bag button.
add_filter( 'rivista_trust_badges', function ( $badges ) {
return array(
array(
'icon' => 'truck',
'title' => __( 'Shipped from our studio', 'rivista-child' ),
'sub' => __( 'Rates are calculated at checkout', 'rivista-child' ),
'url' => home_url( '/shipping-returns/' ),
),
array(
'icon' => 'refresh',
'title' => __( '30-day returns', 'rivista-child' ),
'sub' => __( 'Unworn, with tags', 'rivista-child' ),
),
);
}, 20 );
The homepage chip strip
The strip under the hero is computed, not written: a free-shipping chip appears only when WooCommerce actually has a free-shipping method (printed at its real minimum, in your currency), and the linked chips appear only when the pages they point at exist. Nothing on the homepage advertises a policy your store has not set up. Use rivista_home_chips to add, reorder or replace the whole strip.
// Append one chip of your own, keeping the computed ones.
add_filter( 'rivista_home_chips', function ( $chips ) {
$chips[] = array(
'label' => __( 'Made in Portugal', 'rivista-child' ),
'url' => home_url( '/about/' ), // optional
'style' => 'outline', // sky | butter | ink | rose | outline
);
return $chips;
} );
// Retitle the kicker and the mega-menu feature card.
add_filter( 'rivista_home_season_label', function () {
return __( 'New arrivals', 'rivista-child' );
} );
add_filter( 'rivista_mega_feature_heading', function () {
return __( 'The linen edit.', 'rivista-child' );
} );
Content shortcodes
Four shortcodes render the shared editorial sections anywhere. Both the tags and the sections’ render code live in the bundled RIVISTA Core plugin (installed with this demo), so the content keeps rendering even after a theme switch — the plugin adds a small base stylesheet under other themes, while RIVISTA styles the sections in full. Keep it active on pages that use them, or the tags print as plain text. Each accepts tone="dark" for an inverted band.
| Shortcode | What it renders |
|---|---|
[rivista_products limit="4"] |
A row of real WooCommerce products in the editorial card |
[rivista_journal limit="3"] |
Your latest journal posts |
[rivista_values items="Made slowly~in Portugal|…"] |
The values band |
[rivista_newsletter action="…"] |
The signup band; point action at your provider’s form URL |
Adding your own scripts
Analytics, chat widgets and pixels belong in a plugin or in your child theme — never pasted into a template. Enqueue or print them on the standard WordPress hooks, and remember that your privacy policy has to mention anything that phones home.
CSS variables.
Every visual decision in RIVISTA is driven by a custom property declared in assets/css/_shared.css. Override one in your child theme’s custom.css and it changes everywhere it is used.
Most-edited variables
| Variable | Default | Purpose |
|---|---|---|
--ink |
#14130f |
Primary text colour |
--ink-2 |
#4a4842 |
Secondary text |
--paper |
#ffffff |
Page background |
--paper-2 |
#f7f5f0 |
Panels, cards and quiet bands |
--line |
#e9e6dc |
Hairline rules and borders |
--terra |
#c4452a |
Brand colour |
--accent |
#c4452a |
Accent for text: links, prices, dots |
--display |
"Space Grotesk" |
Display font |
--serif |
"Instrument Serif" |
Italic accent font |
--sans |
"Inter" |
Body font |
--shell |
1320px |
Maximum container width |
--pad-x |
clamp(24px, 4vw, 56px) |
Horizontal page padding |
--ease |
cubic-bezier(.2,.7,.2,1) |
Default easing |
--dur |
360ms |
Default transition duration |
One rule, no rebuild
There is no build step to run. Stylesheets are plain CSS, cache-busted from each file’s modification time, so an edit is live on the next reload.
RTL & languages.
RIVISTA is fully right-to-left ready. Every front-end stylesheet with directional rules has a mirrored -rtl.css sibling, and WordPress serves it automatically when the site runs right to left — there is no HTML tag to edit.
Switch to RTL
- Set the site languageSettings → General → Site Language. Arabic, Hebrew, Persian and Urdu switch the front end to right-to-left on their own.
- Or force itCustomizer → RIVISTA Settings → Header Settings → Site layout direction — Automatic, Left to right, or Right to left. This controls the public site only, so your dashboard can stay in another language.
- Check after importingThe demo import sets the direction to Left to right, because the demo copy is English. Set it back to Automatic once your own content is in.
In right-to-left mode the layout, spacing and directional arrows mirror, while prices, SKUs and counters are deliberately kept left-to-right so numbers read correctly.
Translate the theme
Every user-facing string in the theme is translatable under the text domain rivista. The template languages/rivista.pot ships with the theme — open it in Poedit or a translation plugin and save your .po/.mo pair into wp-content/languages/themes/ so it survives updates. The demo content is English copy in the page editor; translate it there, or replace it with your own.
Arabic and Hebrew typefaces
The three bundled faces cover Latin only. Add a self-hosted Arabic or Hebrew WOFF2 in your child theme and point --sans and --display at it inside a [dir="rtl"] rule — self-hosted, so the theme keeps its no-remote-assets promise.
Changelog.
The complete history ships with the theme in readme.txt. The most recent release:
Version 1.4.0
- Honest store copy by default. The homepage chip strip is now built from your own settings — a free-shipping chip only when WooCommerce really has a free-shipping method (at its real minimum, in your currency), plus chips linking to the shipping & returns, size guide, gift card and journal pages only when those pages exist. The whole strip is filterable through
rivista_home_chips. - The trust badges, values marquee, newsletter band and product-page guarantees lost their hard-coded euro thresholds and policy promises, and the mini-cart free-shipping meter now reads the threshold from WooCommerce instead of assuming 80 — it stays hidden when no free-shipping method is set up.
- The demo importer writes the announcement ticker in your store’s own currency at import time. Edit it in Customizer → RIVISTA Settings → Header Settings.
- Homepage hero: each look’s bottom-bar tag is now unique (product category, else the short product name), and the frozen “Spring 2026 / FALL EDIT / Tuesday May 19” stamps are gone — dates print live and the kicker is filterable through
rivista_home_season_label. - The Magazine index takes its lede from the blog page excerpt or the site tagline, and its byline from the page author, instead of a fictional editor and a weekly publishing promise.
- The demo template scripts (gift card, style quiz, shop the look, order tracking) no longer hard-code a currency symbol.
- The theme’s own script no longer declares jQuery as a dependency, so a site without WooCommerce loads no jQuery for the theme at all. Every theme script is vanilla JavaScript; the only jQuery touch points are guarded calls that fire WooCommerce’s own cart-fragment refresh event where WooCommerce has already loaded it.
- Mega menu: “Our materials” points at the Our Materials page, and the feature-card heading is seasonless and filterable through
rivista_mega_feature_heading. - Rebuilt the bundled documentation, and corrected the photography and minimum-WordPress notes in
readme.txtandTHIRD-PARTY-CREDITS.md. - Full RTL: every front-end stylesheet with directional rules now ships a generated mirror, plus
rtl.css; prices, SKUs and counters stay left-to-right. - WooCommerce templates fire the standard hooks; the product page uses the core gallery (zoom, lightbox, thumbnails), tabs, reviews and upsells; variable products get a styled attribute picker.
- New “Outfit of the day” editorial front page built from your real products and the bundled local imagery.
- Restored the front-end style switcher, branded preloader, scroll-progress bar and back-to-top button — rewritten without any animation library. The style switcher is off by default.
- Restored the header mega menu with a local featured image.
- Added the Typography font-pairing control, using system-safe stacks.
- Automatic SVG icons for social menu links, and inline-SVG header icons.
- A custom search form matching the header overlay.
- Fixed the preloader stacking below the sticky header, and the dark demo losing contrast under a light colour pack.
Earlier releases
- 1.3.3 — version synced across the package, ABSPATH guards on include and template files, hardened front-end layout direction.
- 1.3.0 — language-aware layout direction and per-locale body classes; better cart fragments and mini-cart handling; template-specific asset loading with file-based cache busting.
- 1.2.0 — the RIVISTA Complete Demo one-click import: portable local demo media, page layouts, products, posts, forms and menus.
- 1.1.0 — WordPress core feature support and marketplace-compliance work; Elementor widgets moved into the companion plugin; accessibility and translation readiness improved.
- 1.0.0 — initial release.
Get support.
Support is handled through the marketplace item page for RIVISTA — open a comment or a ticket there, and include your purchase code. The terms and duration of support are whatever the marketplace states on that page.
Before you reach out
- Update to the latest versionCheck your marketplace downloads — an issue is often already fixed in a newer release.
- Deactivate other pluginsSwitch them off one at a time. Conflicts with third-party plugins are the most common cause of odd behaviour.
- Open the browser consoleMost front-end problems announce themselves clearly there (F12 → Console). Include the message when you ask.
- Save your permalinksIf demo links return 404, Settings → Permalinks → Save Changes fixes it.
- Search this pagePress ⌘K or Ctrl K. Most questions are answered above.
What to include
- Your WordPress, WooCommerce, PHP and RIVISTA versions.
- The page or screen where it happens, and a screenshot.
- Whether it also happens with all plugins deactivated.
Licence & credits.
The RIVISTA theme code is released under the GNU General Public License v2 or later, as WordPress themes must be — see the LICENSE file in the theme folder. The package as a whole is sold under the marketplace’s own licence terms, which are shown on the item page.
Bundled credits
- Space Grotesk — Florian Karsten, SIL Open Font License 1.1
- Instrument Serif — Instrument, SIL Open Font License 1.1
- Inter — Rasmus Andersson, SIL Open Font License 1.1
- TGM Plugin Activation — unmodified upstream, GPL-2.0-or-later
- Demo photography — supplied under the Pexels License, credited photograph by photograph in
THIRD-PARTY-CREDITS.md
Bring your own photography
The demo photographs are licensed for the demo, not resale, and they are not part of the GPL code. Replace them with your own product photography — or properly licensed stock — before you launch. Full credits are listed in THIRD-PARTY-CREDITS.md.
Still stuck.
Check the changelog first — then open a ticket on the marketplace item page, quoting your purchase code, your WordPress and WooCommerce versions and the page where it happens.