{"id":16,"date":"2026-04-10T17:49:09","date_gmt":"2026-04-10T17:49:09","guid":{"rendered":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/2026\/04\/10\/mega-menu-schema\/"},"modified":"2026-04-10T17:49:09","modified_gmt":"2026-04-10T17:49:09","slug":"mega-menu-schema","status":"publish","type":"post","link":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/2026\/04\/10\/mega-menu-schema\/","title":{"rendered":"Mega-Menu &#038; Schema.org Pro"},"content":{"rendered":"<p>Two features for sites that have outgrown the basic five-link top nav and want stronger search-engine visibility: a multi-column mega-menu, and Schema.org Pro markup that emits structured data for each counsel, an FAQ block, and the firm&#8217;s testimony.<\/p>\n<h2>Mega-Menu<\/h2>\n<p>The default Legal theme uses a single-row top navigation. That works well for firms with 4\u20136 navigation items, but breaks down for firms with deep practice areas \u2014 where you might want to expose every practice category on hover from the &#8220;Practice&#8221; item.<\/p>\n<h3>Enabling the mega-menu<\/h3>\n<ol>\n<li>Go to <strong>Appearance \u2192 Customize \u2192 Legal Pro \u2192 Mega-Menu<\/strong>.<\/li>\n<li>Enable <strong>Mega-Menu on Primary Nav<\/strong>.<\/li>\n<li>Set <strong>Columns per Mega Panel<\/strong> \u2014 between 2 and 4. Three is the default and reads well at most viewport widths.<\/li>\n<\/ol>\n<h3>Building the menu<\/h3>\n<p>Mega-menus work with WordPress&#8217;s standard menu editor \u2014 no custom UI to learn.<\/p>\n<ol>\n<li>Go to <strong>Appearance \u2192 Menus<\/strong>.<\/li>\n<li>Open your Primary menu.<\/li>\n<li>For top-level items that should have a mega-panel (typically &#8220;Practice&#8221; or &#8220;Services&#8221;), add child items directly under them \u2014 drag-and-drop indents them.<\/li>\n<li>Save.<\/li>\n<\/ol>\n<p>The mega-menu walker takes over rendering. Top-level items with children get a wide multi-column panel on hover. Top-level items without children render as plain links \u2014 no panel.<\/p>\n<h3>Featured items<\/h3>\n<p>Each mega-panel can have one &#8220;featured&#8221; item \u2014 typically a calls-to-action like &#8220;Latest case study&#8221; or &#8220;Schedule a consultation&#8221;. The featured item:<\/p>\n<ul>\n<li>Spans all columns at the top of the panel<\/li>\n<li>Renders the menu item&#8217;s <em>description<\/em> field as a lede paragraph below the title<\/li>\n<li>Shows in italic Fraunces, oxblood-accented<\/li>\n<\/ul>\n<p>To mark an item as featured:<\/p>\n<ol>\n<li>In the Menus editor, click the menu item to expand its details.<\/li>\n<li>If <strong>Description<\/strong> isn&#8217;t visible, click <strong>Screen Options<\/strong> at the top right and check &#8220;Description&#8221;.<\/li>\n<li>Tick the new checkbox <strong>Mega: Featured (highlights this item with its description text as a lede)<\/strong>.<\/li>\n<li>Add description text \u2014 this becomes the lede paragraph.<\/li>\n<li>Save the menu.<\/li>\n<\/ol>\n<h3>Mobile behavior<\/h3>\n<p>On mobile (under 768px), mega-panels collapse into a single-column accordion. The featured item still renders with its lede, but as a stacked block rather than a header.<\/p>\n<h2>Schema.org Pro<\/h2>\n<p>The free Legal theme outputs <strong>LegalService<\/strong> structured data in <code>&lt;head&gt;<\/code> on the front page \u2014 basic firm name, URL, and address if configured. Pro extends this with three additional schema types: <strong>Attorney<\/strong> (per counsel), <strong>FAQPage<\/strong>, and <strong>Review<\/strong> (from the testimony block).<\/p>\n<p>Search engines use this structured data to enrich how your site appears in results \u2014 counsel names with photos in knowledge panels, FAQ snippets with expandable answers, star-rating displays, and so on.<\/p>\n<h3>Attorney schema (per counsel)<\/h3>\n<p>Automatically emitted for each counsel filled in under <strong>Customize \u2192 Counsel<\/strong>. For each counsel with a name, the plugin emits a JSON-LD block like:<\/p>\n<pre><code>{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Attorney\",\n  \"name\": \"Ana\u00efs R. Mehta\",\n  \"jobTitle\": \"Founding Partner\",\n  \"description\": \"Civil litigation, with a focus on contracts and commercial disputes...\",\n  \"worksFor\": {\n    \"@type\": \"LegalService\",\n    \"name\": \"Lex & Co.\",\n    \"url\": \"https:\/\/example.com\"\n  }\n}<\/code><\/pre>\n<p>If you&#8217;ve uploaded a counsel image, it&#8217;s added as an <code>image<\/code> property. If you&#8217;ve set a counsel URL (like a longer profile page), it&#8217;s added as <code>url<\/code>.<\/p>\n<h3>FAQPage schema<\/h3>\n<p>Pro lets you author up to six question\/answer pairs in the Customizer. They emit as a single FAQPage block with all six entries.<\/p>\n<ol>\n<li>Go to <strong>Customize \u2192 Legal Pro \u2192 Schema.org Pro<\/strong>.<\/li>\n<li>Enable <strong>FAQPage Schema<\/strong>.<\/li>\n<li>Fill in pairs Q1\/A1 through Q6\/A6.<\/li>\n<\/ol>\n<p>The FAQs you author here are <em>schema-only<\/em> \u2014 they don&#8217;t render anywhere on the front-end. They exist purely to feed search engines structured FAQ content. If you want to display the FAQs visually, do it via the block editor on a page (separately).<\/p>\n<p>Common FAQs for legal practice sites:<\/p>\n<ul>\n<li>&#8220;What is the consultation process?&#8221;<\/li>\n<li>&#8220;How are fees structured?&#8221;<\/li>\n<li>&#8220;Do you take cases on contingency?&#8221;<\/li>\n<li>&#8220;What&#8217;s the geographic scope of your practice?&#8221;<\/li>\n<li>&#8220;How do I prepare for an initial consultation?&#8221;<\/li>\n<li>&#8220;What&#8217;s covered under attorney-client privilege?&#8221;<\/li>\n<\/ul>\n<h3>Review schema<\/h3>\n<p>If you&#8217;ve configured the testimony block in the Customizer, Pro automatically emits a Review schema block:<\/p>\n<pre><code>{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Review\",\n  \"reviewBody\": \"When our shareholder dispute went sideways...\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Founder & CEO \u2014 GROWTH-STAGE FINTECH \u00b7 MUMBAI \u00b7 2024\"\n  },\n  \"itemReviewed\": {\n    \"@type\": \"LegalService\",\n    \"name\": \"Lex & Co.\",\n    \"url\": \"https:\/\/example.com\"\n  },\n  \"reviewRating\": {\n    \"@type\": \"Rating\",\n    \"ratingValue\": \"5\",\n    \"bestRating\": \"5\"\n  }\n}<\/code><\/pre>\n<p>The review rating is hard-set to 5 of 5 \u2014 testimony on your own site is by definition a positive review. If you have specific concerns about misrepresentation, disable Review schema in the Customizer settings.<\/p>\n<h3>Where schema appears<\/h3>\n<p>All three Pro schema types output on:<\/p>\n<ul>\n<li>The front page<\/li>\n<li>Any page using the <code>template-firm.php<\/code> template<\/li>\n<\/ul>\n<p>They don&#8217;t output on regular pages, single posts, or archives \u2014 keeping the schema scoped to the firm-info page where it makes sense.<\/p>\n<h3>Validating schema<\/h3>\n<p>Use Google&#8217;s Rich Results Test: <code>https:\/\/search.google.com\/test\/rich-results<\/code>. Paste your home page URL and run the test. You should see Attorney entries, optionally FAQPage and Review depending on what you&#8217;ve configured.<\/p>\n<p>If something fails validation, the most common cause is a malformed customizer value \u2014 for example, an unclosed HTML tag in a counsel bio. The schema generator strips most HTML, but bad input can still produce malformed JSON.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Multi-column primary navigation for firms with deep practice areas, plus Attorney\/FAQPage\/Review structured data for richer search results.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[31,12,32,33],"class_list":["post-16","post","type-post","status-publish","format-standard","hentry","category-pro-features","tag-mega-menu","tag-pro","tag-schema","tag-seo"],"_links":{"self":[{"href":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/wp-json\/wp\/v2\/posts\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/wp-json\/wp\/v2\/comments?post=16"}],"version-history":[{"count":0,"href":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/wp-json\/wp\/v2\/posts\/16\/revisions"}],"wp:attachment":[{"href":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/wp-json\/wp\/v2\/media?parent=16"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/wp-json\/wp\/v2\/categories?post=16"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/docs.fasterthemes.com\/legal-wordpress-theme\/wp-json\/wp\/v2\/tags?post=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}