Lexmora documentation

A WordPress theme for law firms and attorneys: personal injury, family, criminal defense, business and immigration law. Six demos, a free consultation form with a conflict check, case results, attorney profiles, practice areas with fees, office locations and a filing deadline checker.
Thank you for choosing Lexmora. This guide takes you from a fresh WordPress site to a copy of the demo with your own details. If something is not covered here, write to support@codememory.com — we answer within one working day.
- Version1.0.0
- WordPress6.5 or later
- PHP7.4 or later
- Live demoOpen the demo
Highlights
- Six law firm demos imported in one click
- Free consultation form with legal matter, court date and conflict check, saved in your dashboard
- Filing deadline checker with your own claim types and time limits
- Case results with verdicts, settlements, the court and a client quote
- Attorney profiles with title, years in practice, bar admissions, education and office
- Practice areas with fee, typical timeline and how you help
- Practice groups and result types to group practice areas, attorneys and case results
- Office locations with address, phone, hours and directions
- Office hours with an "Open now" badge
- Attorney advertising disclaimer in the footer, set in the Customizer
- 19 Elementor widgets (free Elementor)
- Every section also works as a shortcode
- Call / free review bar on phones
- Light and dark mode
- Colours and fonts from the Customizer
- Block patterns and every core block styled
- Self-hosted fonts, nothing loaded from Google
- Translation ready, right-to-left support
- Child theme included
What is in the download
themeforest-lexmora-wordpress-theme/ ├── lexmora.zip ← the theme: upload this in WordPress ├── lexmora-child.zip ← child theme, for your own code changes (optional) ├── plugins/lexmora-core.zip ← the theme's plugin (also installed from inside the theme) ├── demo-content/ ← demo files for a manual import ├── documentation/ ← this guide, as HTML and PDF └── licensing/ ← GPL licence, font licences and credits
lexmora.zip, not the whole download. Uploading the download zip gives the error
"The package could not be installed. The theme is missing the style.css stylesheet."Requirements
- WordPress 6.5 or later (tested up to 7.1).
- PHP 7.4 or later (8.2 or later recommended).
- For the demo import: PHP
memory_limit256M,max_execution_time300, upload size 32M. Most hosts already allow this; if an import stops half-way, ask your host to raise these values.
Every plugin the theme uses is free from wordpress.org. Nothing needs a paid licence.
Installing the theme
- In your dashboard, go to Appearance → Themes → Add New Theme → Upload Theme.
- Choose
lexmora.zipand click Install Now, then Activate. - Optional: install and activate
lexmora-child.zipthe same way (see Child theme).
Upload by FTP instead: unzip lexmora.zip and copy the lexmora folder to
wp-content/themes/, then activate it under Appearance → Themes.
Plugins
After activation, a notice at the top of the dashboard lists the plugins the theme uses. Click Begin installing plugins (or go to Appearance → Install Plugins), select them all, choose Install, then activate them.
| Plugin | What it adds | |
|---|---|---|
| Lexmora Core | Required | Practice areas, attorneys, case results, practice groups, result types, reviews, the free consultation form, the filing deadline checker, office locations and hours, widgets, shortcodes and the demo import. Included with the theme. |
| Elementor | Recommended | The free page builder used for the demo pages. The theme's own widgets appear in Elementor's Lexmora group. |
| One Click Demo Import | Recommended | Imports a demo in one click. You can remove it after the import. |
The theme works without any plugin: posts, pages, menus, widgets and search are styled the same. The plugin is needed for the firm features (practice areas, attorneys, case results, consultation form, deadline checker…).
Importing a demo
The import gives you the demo site: pages, practice areas, attorneys, case results, reviews, posts, menus, widgets and the Customizer settings. Use it on a new site: it adds content next to what you already have.
- Install the plugins above.
- Go to Appearance → Import Demo Data.
- Pick a demo and click Import. It takes one to three minutes; keep the page open.
- Done: visit your site. The home page, menus and blog page are already set.
| Demo | Home page | Accent |
|---|---|---|
| Full-service firm | /home-firm/ | #946a2c |
| Personal injury | /home-injury/ | #8e2433 |
| Family law | /home-family/ | #5b3a6e |
| Criminal defense | /home-criminal/ | #c0913f |
| Business law | /home-business/ | #1f3a5f |
| Immigration | /home-immigration/ | #2f6b4f |
All six home pages are imported with every demo; the demo you pick decides which one is the front page and which colours and header the Customizer uses. To switch later, go to Settings → Reading and choose another home page.
Manual import
If the one-click import is blocked by your host, use the files in demo-content/:
- Tools → Import → WordPress (install the importer when asked) → upload
content.xml. - Install Widget Importer & Exporter → Tools → Widget Importer & Exporter → upload
widgets.wie. - Install Customizer Export/Import → Appearance → Customize → Export/Import → upload
customizer-<demo>.dat. - Appearance → Menus → Manage Locations: set the main, top bar and footer menus. Settings → Reading: choose the home and blog pages.
After the import: your details
The demo uses a made-up phone number, addresses, office hours and filing periods. Replace them with yours, in this order:
- Phone number and top bar: Appearance → Customize → Lexmora options → Header and top bar. Set Phone number, Top bar text (a short line such as your office hours) and the Label next to the phone. Every "Call" button on the site uses this number.
- Logo and site icon: Appearance → Customize → Site Identity. Without a logo the header shows a round monogram with the first letter of your site title.
- Colours: Appearance → Customize → Colors. The six demo home pages each have their own accent colour (see Page options); clear it there to use the Customizer colour.
- Disclaimer: Appearance → Customize → Lexmora options → Footer → Disclaimer line. Many bar rules ask for an "attorney advertising" note; check the rules where you practise and write your own.
- Office hours, filing periods and consultation emails: Settings → Lexmora Core (see Office hours, Filing deadline checker and Consultation requests).
- Footer widgets: Appearance → Widgets → Footer column 1–4: edit the Contact details widget (address, phone, email).
- Your content: edit the practice areas, attorneys, case results and reviews in the dashboard menus of the same names, and replace the grey placeholder photos with your own.
Practice areas, attorneys, case results and reviews
The Lexmora Core plugin adds four content types, a Practice groups list and a Result types list to the dashboard. Each content type has a Details box under the editor.
| Menu | Used for | Details |
|---|---|---|
Practice areas/practice-areas/ | One page per practice area (car accidents, divorce, DUI defense…). Shown by the Practice areas widget and on the practice areas archive. | Icon, fee ("No win, no fee", "From $2,400"), fee note, typical timeline, how you help (one item per line). |
Attorneys/attorneys/ | Partners, associates and counsel. | Title, years in practice, bar admissions, education, office and an optional email. The featured image is the portrait (a tall photo works best; the cards show it in black and white). |
Case results/case-results/ | Verdicts, settlements, dismissals and approvals. Shown by the Case results widget. | Matter, court, results (one per line as value|label, for example $4.2M|jury verdict; the first one is the headline on the card), an optional client quote and who said it. |
| Reviews | Client reviews shown by the Reviews widget (no page of their own). | Rating, client location, the practice area they had, where the review was left (Google, Avvo…). The title is the client's name; the text is the review. |
Practice groups (under Practice areas) group practice areas and attorneys, for example Personal injury or
Family law. Each practice group has its own page at /practice-group/<name>/, a practice area page lists
the attorneys of its practice group, and the Practice areas and Attorneys widgets can show one practice group only.
Result types (under Case results) group case results, for example Jury verdicts or Settlements, with a
page at /result-type/<name>/; the Case results widget can show one result type only.
Case result cards show the headline result instead of a photo. Turn on Show photos on the cards in the widget to add the featured image, and keep the note under the cards ("Past results do not guarantee a similar outcome in your case") unless your bar rules say otherwise. Use landscape photos at least 1600 × 760 px for practice areas, case results and posts.
Consultation requests
The Consultation form widget (or the [lexmora_consultation] shortcode) asks for the
visitor's name, phone and email, the legal matter, the date it happened or a deadline, whether there is a court date,
the name of the other party, how they would like to talk (phone, video call or at your office), the best time to call and
an optional message. Before sending, the visitor ticks a box confirming that the form does not make them a client and that
they should not send confidential details yet. Name, a phone number or email and that box are required. Spam protection is
built in (a hidden field and a limit on repeated sends) and no other plugin is needed.
- Every request is saved under Consultation requests in the dashboard, with a counter of new ones. Open a request to see the details and set its status: New, Contacted, Consultation booked, Not taken on.
- Use the Other party field for your conflict check before you call back.
- When the visitor says the court date is within 30 days, the email subject starts with "Court date soon:".
- The legal matters in the form come from your Practice areas, so they stay up to date.
- Settings → Lexmora Core → Consultation requests: turn email alerts on or off, choose the address (empty = the site admin email), and edit the thank-you message and the privacy note under the form.
- Emails are sent by WordPress. If they do not arrive, install an SMTP plugin such as WP Mail SMTP; requests are saved in the dashboard either way.
The form is a request, not a calendar: your team confirms each consultation by phone or email. Check the privacy and advertising rules that apply to your firm before you go live.
Prefer an online scheduling service or a form plugin? Put its shortcode in a Text Editor widget instead. Everything else keeps working.
Filing deadline checker
Settings → Lexmora Core → Filing deadline checker: list the claim types, one per line as
Claim type|period. The period is a number followed by y (years), m (months) or
d (days), for example Personal injury|2y, Property damage|36m or
Discrimination charge|300d. Use the periods that apply where you practise, and edit the note shown under the
result.
The Filing deadline checker widget (or [lexmora_deadline]) lets a visitor pick a claim type
and the date it happened. It shows the usual last day to file and how many days are left, a warning when fewer than 90 days
remain, or that the usual deadline has passed. It is worked out in the browser: nothing is sent or stored. Turn on
List the claim types and time limits in the widget to show every claim type and its period beside the checker. Keep the note that
the result is a general guide, not legal advice.
Offices
The Office locations widget (or [lexmora_offices]) shows one card per office. In the widget, add
one office per line as City|Address|Phone|Email|Hours|Directions link; in the shortcode separate the offices with
||. The directions link is optional: paste the link from your map service and the card shows Get directions.
Office hours
Settings → Lexmora Core → Office hours: set an opening and a closing time for each day. Leave both empty on days you are closed, and add an optional note (for example "Urgent matters: call any time").
- The Office hours widget (Elementor) or
[lexmora_hours]shortcode shows the hours beside your address and phone number. The Lexmora: Office hours widget shows them in the sidebar or footer. - Today's row is highlighted, and a badge says Open now (with the closing time) or Closed now. The badge uses the time zone in Settings → General, and it is worked out in the visitor's browser, so it stays right even when your pages are cached.
- The week starts on the day set in Settings → General → Week Starts On; times use the time format set there.
Page options
Each page has a Page options box in the editor sidebar:
- Accent colour for this page: overrides the Customizer accent on this page only. The demo uses it to give each demo home page its own colour.
- Colour scheme: light or dark for this page only (the Criminal defense demo is dark).
- Header layout: classic, centered or contact, for this page only.
Leave them empty to follow the Customizer.
Page templates
| Template | Use |
|---|---|
| Default | Page title band, content and no sidebar. |
| Full width, no title | For pages built with Elementor: the content fills the screen and you add your own hero. All demo pages use it. |
| Full width with title band | The title band, then full-width content. |
Customizer settings
Appearance → Customize. Colours are in the Colors section; everything else is in the Lexmora options panel. Changes show in the preview before you publish them.
| Setting | Type | Default |
|---|---|---|
| Colors | ||
| Accent colour (buttons, links, icons) | color | #946a2c |
| Ink colour (text, header, footer) | color | #1d1b19 |
| Paper colour (page background) | color | #f2eee6 |
| Style and fonts | ||
| Colour scheme | select | Light |
| Show a light/dark switch in the header | checkbox | On |
| Heading font | select | Brygada 1918 |
| Body font | select | Public Sans |
| Body text size (px) | number | 17 |
| Corner rounding (px) | number | 0 |
| Header and top bar | ||
| Header layout | select | Classic: logo left, menu right |
| Keep the header visible while scrolling | checkbox | On |
| Show the search button | checkbox | On |
| Header button text | text | empty |
| Header button link | url | empty |
| Show the top bar | checkbox | On |
| Top bar text (for example your office hours) | text | empty |
| Phone number | text | empty |
| Label next to the phone (for example "Available 24/7") | text | empty |
| Footer | ||
| Widget columns | select | 4 |
| Footer text (links allowed). Leave empty for the site name and year. | textarea | empty |
| Disclaimer line above the footer bottom (for example "Attorney advertising. Past results do not guarantee a similar outcome.") | textarea | empty |
| Show a back-to-top button | checkbox | On |
| Blog | ||
| Post list layout | select | Grid of cards |
| Sidebar | select | Right |
| Show the author on posts | checkbox | On |
| Show the date on posts | checkbox | On |
| Show related posts under each post | checkbox | On |
| Mobile call bar | ||
| Show a call / book bar at the bottom of phone screens | checkbox | On |
| Second button text (the first button calls your phone number) | text | empty |
| Second button link | url | empty |
The site title, tagline, logo, site icon, background and homepage settings are WordPress's own, in Site Identity, Background image and Homepage Settings.
Widgets
Appearance → Widgets. Areas: Blog sidebar and Footer column 1 to Footer column 4 (set the number of footer columns in the Customizer). The plugin adds three widgets, named Lexmora: … in the widget list:
- Contact details — phone, email, address, each with a link.
- Office hours — your hours from Settings → Lexmora Core, with an "Open now" badge.
- Practice areas list — links to your practice areas, optionally from one practice group.
Building pages with Elementor
All demo pages are built with the free Elementor plugin and the theme's widgets.
- Create a page, set its Template to Full width, no title, and click Edit with Elementor.
- Search for the widget or open the Lexmora group in the left panel and drag a widget onto the page.
- Edit its text and options in the left panel. Every widget has a Background option (light, paper, dark or accent colour) so sections alternate like the demo.
The widgets fill themselves from your content: Practice areas, Attorneys, Case results, Reviews
and Latest posts show the items you add in the dashboard. List fields (prices, steps,
questions…) take one item per line, with the parts separated by |, as the help text under each field shows.
Elementor's own Google Fonts loading is switched off by the demo import, so the site keeps using the theme's self-hosted fonts.
Without Elementor: shortcodes
Every widget is also a shortcode, so you can build the same sections in the block editor: add a Shortcode block and type, for example:
[lexmora_practices count="6" columns="3"] [lexmora_deadline title="Is it too late to file a claim?"] [lexmora_consultation title="Request your free consultation"]
Options are the same as in Elementor. In list options, separate items with || and parts with
|. Images take an attachment ID (Media → Library → the number in the address) or a full URL.
Hero — [lexmora_hero]
| Option | What it does |
|---|---|
layout | Layout Choices: split, cover |
primary_label | Button text |
primary_url | Button link |
show_phone | Show the phone number (from the Customizer) |
secondary_label | Second button text (when the phone is hidden) |
secondary_url | Second button link |
badges | Trust points, one per line |
image | Photo |
rating | Rating (for example 4.9/5) |
rating_text | Rating note (for example "from 240 client reviews") |
card_title | Floating card title |
card_text | Floating card text |
Also: eyebrow, title, text.
Practice areas — [lexmora_practices]
| Option | What it does |
|---|---|
count | How many |
group | Only this practice group (slug, optional) |
only | Only these practice areas: names, separated by commas (optional) |
style | Style Choices: cards, icons |
show_price | Show fees |
more_label | Button under the grid |
more_url | Button link |
Also: eyebrow, title, text, columns, tone.
Reviews — [lexmora_reviews]
| Option | What it does |
|---|---|
summary | Summary line (for example "4.9 average from 240 reviews") |
count | How many |
only | Only these reviews: reviewer names, separated by commas (optional) |
Also: eyebrow, title, text, columns, tone.
Attorneys — [lexmora_attorneys]
| Option | What it does |
|---|---|
count | How many |
only | Only these people: names, separated by commas (optional) |
group | Only this practice group (slug, optional) |
Also: eyebrow, title, text, columns, tone.
Numbers — [lexmora_stats]
| Option | What it does |
|---|---|
items | Numbers as Value|Label, one per line |
Also: tone.
Why choose us — [lexmora_features]
| Option | What it does |
|---|---|
items | Features as icon|Title|Text, one per line. Icons: scale, gavel, columns, seal, shield, lock, document, briefcase, handshake, family, home, car, cross, hardhat, passport, key, globe, building, users, clock, phone, calendar, chat, star, badge, check, target, lightbulb, heart, tag. |
image | Photo (optional) |
Also: eyebrow, title, text, columns, tone.
How it works — [lexmora_steps]
| Option | What it does |
|---|---|
items | Steps as Title|Text, one per line |
Also: eyebrow, title, text, tone.
Prices — [lexmora_pricing]
| Option | What it does |
|---|---|
items | One price per line: Name|Price|Note|Feature; Feature; Feature|yes (to highlight)|Button text|Button link |
note | Small print under the prices |
Also: eyebrow, title, text, tone.
Questions — [lexmora_faq]
| Option | What it does |
|---|---|
items | Questions as Question|Answer, one per line |
Also: eyebrow, title, text, tone.
Call to action — [lexmora_cta]
| Option | What it does |
|---|---|
button_label | Button text |
button_url | Button link |
show_phone | Show the phone number |
Also: title, text, tone.
Trust strip — [lexmora_trust]
| Option | What it does |
|---|---|
items | Badges as icon|Text, one per line |
Also: tone.
Filing deadline checker — [lexmora_deadline]
| Option | What it does |
|---|---|
button | Button text |
show_list | List the claim types and time limits (from Settings → Lexmora Core) |
Also: eyebrow, title, text, tone.
Office locations — [lexmora_offices]
| Option | What it does |
|---|---|
items | One office per line: City|Address|Phone|Email|Hours|Directions link |
Also: eyebrow, title, text, tone.
Case results — [lexmora_cases]
| Option | What it does |
|---|---|
count | How many |
outcome | Only this result type (slug, optional) |
only | Only these case results: titles, separated by commas (optional) |
photos | Show photos on the cards |
note | Small print under the cards |
more_label | Button under the grid |
more_url | Button link |
Also: eyebrow, title, text, columns, tone.
Latest posts — [lexmora_posts]
| Option | What it does |
|---|---|
count | How many |
category | Only this category (slug, optional) |
Also: eyebrow, title, text, tone.
Call-back banner — [lexmora_emergency]
| Option | What it does |
|---|---|
phone | Phone (empty = the Customizer phone) |
Also: title, text, tone.
Text and photo — [lexmora_about]
| Option | What it does |
|---|---|
image | Photo |
badge_value | Badge number (for example 30) |
badge_label | Badge text |
points | Points, one per line |
button_label | Button text |
button_url | Button link |
reverse | Photo on the right |
Also: eyebrow, title, text, tone.
Free consultation form — [lexmora_consultation]
| Option | What it does |
|---|---|
layout | Layout Choices: split, stacked |
points | Points beside the form, one per line |
button | Button text |
show_phone | Show the phone number |
Also: eyebrow, title, text, tone.
Office hours — [lexmora_hours]
| Option | What it does |
|---|---|
address | Address |
map_url | Directions link (for example a map link) |
show_phone | Show the phone number |
Also: eyebrow, title, text, tone.
Shortcodes: [lexmora_hero], [lexmora_practices], [lexmora_reviews], [lexmora_attorneys], [lexmora_stats], [lexmora_features], [lexmora_steps], [lexmora_pricing], [lexmora_faq], [lexmora_cta], [lexmora_trust], [lexmora_deadline], [lexmora_offices], [lexmora_cases], [lexmora_posts], [lexmora_emergency], [lexmora_about], [lexmora_consultation], [lexmora_hours].
Block editor and patterns
Posts and simple pages use the WordPress block editor. Every core block is styled to match the theme, and the editor shows the theme's fonts and colours. Click + → Patterns → Lexmora for ready-made sections: hero with case review button, three practice areas, call to action band, questions and answers, three reviews, fee table and contact details. The theme also adds block styles: Card (Group), Check marks (List), Eyebrow (Paragraph) and Framed (Image).
Blog
Settings → Reading → Posts page sets the page that lists your posts (the demo uses "Blog"). Choose a grid or list layout and the sidebar position in Customize → Lexmora options → Blog. Posts show the author, date, category, share links (turn them off in Settings → Lexmora Core) and related posts.
Light and dark mode
Customize → Lexmora options → Style and fonts → Colour scheme: Light, Dark or Follow the visitor's device. With Show a light/dark switch on, visitors can switch with the moon button in the header; their choice is remembered on that device. A single page can be forced to light or dark in its Page options.
Child theme
If you want to change the theme's code, install lexmora-child.zip and activate Lexmora Child.
Put your CSS in the child theme's style.css and your PHP in its functions.php; copy a
template file from lexmora into the child theme to override it. Theme updates replace the parent theme
only, so your changes are kept.
Small style changes do not need a child theme: use Customize → Additional CSS.
Translation and right-to-left
Every text in the theme and the plugin can be translated. The templates are
lexmora/languages/lexmora.pot and lexmora-core/languages/lexmora-core.pot.
- Easiest: install Loco Translate → Loco Translate → Themes → Lexmora → New language, and translate in your browser. Do the same under Plugins for Lexmora Core.
- Or use Poedit: open the .pot file, translate, and save the files as
lexmora-fr_FR.po/.moinwp-content/languages/themes/.
Right-to-left languages (Arabic, Hebrew, Persian…) are supported: when WordPress runs in such a language, the layout mirrors automatically.
Updating
When a new version is released, download it from your ThemeForest Downloads page. Then either:
- Appearance → Themes → Add New Theme → Upload Theme → choose the new
lexmora.zip→ Replace current with uploaded; or - replace the
wp-content/themes/lexmorafolder by FTP.
When the theme comes with a newer Lexmora Core, the dashboard notice offers to update the plugin. Your content, menus, widgets and Customizer settings are kept. Changes you made to the parent theme's files are lost: keep them in the child theme.
Questions
"The package could not be installed. The theme is missing the style.css stylesheet."
You uploaded the whole download. Unzip it first and upload lexmora.zip only.
The import stopped or shows an error.
Your host stopped the import early. Ask them to raise max_execution_time to 300 and memory_limit to 256M, then run the import again: items already imported are skipped.
The pages look plain after the import.
Activate Elementor and the theme's plugin, then reload. Without Elementor, the pages show the same sections through shortcodes.
Consultation request emails do not arrive.
Requests are always saved under Consultation requests. For email, check the address in Settings → Lexmora Core and install an SMTP plugin such as WP Mail SMTP; many hosts block WordPress's default mail.
Where are the demo photos?
They are licensed for the live demo only, so the import uses placeholders. Add your own photos in Media → Library and set them as featured images.
How do I change the font?
Customize → Lexmora options → Style and fonts → heading and body font. All fonts are included in the theme; no Google Fonts requests.
How do I remove the top bar or the phone bar on mobile?
Customize → Lexmora options → Header and top bar → Show the top bar, and Mobile call bar.
Can I use the theme on more than one site?
A Regular licence covers one site (one end product). Buy one licence per site.
Support
Support is included with your purchase and covers questions about the theme's features and fixing bugs. It does not cover custom changes or problems caused by other plugins.
Email support@codememory.com with your purchase code and your site address. See the changelog for what changed in each version and third-party materials for credits.