- 2.33.1: Avatars are circular again on block-template pages. The rounding rule was scoped to the classic .site wrapper, which block templates don't output, so comment avatars, the author box avatar and other avatars had reverted to square. The rule now also applies inside .wp-site-blocks, staying scoped so the admin bar avatar is unaffected.
- 2.33.0: The author box on pages and link posts is now core's Post Author block (avatar, "Published by", the author's name linking to their posts, and bio), styled to match, instead of the classic author-bio.php partial, which is removed. It still shows only when the author has a bio. The "View all posts by" link is now the linked author name.
- 2.32.0: Removes the classic PHP templates the block templates replaced: index (now only a silence guard), single, page, archive, search, 404 and comments, and the content, content-event, content-gallery, content-link, content-none, content-page, content-search and content-video parts. header.php, footer.php and author-bio.php stay: plugins that render a PHP template still use the first two, and the block templates' author box uses author-bio.php.
- 2.31.0: LH 2015 is now a block theme: it has an index block template, so every page, including BuddyPress, WooCommerce and plugin pages, renders through block templates, and the Site Editor manages all of the theme's templates. BuddyPress pages use the page template without plugins' hooked blocks (such as the Webmention form). Shop, product, cart and checkout pages use WooCommerce's own block templates; the theme no longer adds its classic shop wrappers. The theme's own front-end custom CSS bridge is removed, since core now prints the site's custom CSS itself.
- 2.30.0: Product pages now use WooCommerce's own single product template: the theme's copy, whose only difference was the post footer links (Like, Share and the rest), is removed, so products no longer show them. The theme's enquiry template is removed too, since LH CRM registers its own.
- 2.29.1: LH 2015 2.29.1 (task #149859): removed single-gatherpress_event.php and archive-gatherpress_event.php (deletions lhcp_e1572ebb and lhcp_633d973d, released here). GatherPress events now use the block templates registered by LH Gatherpress Extender 1.1.0+ (lh-gatherpress-extender//single-gatherpress_event and //archive-gatherpress_event), built on this theme's skeleton classes; the archive heading text moves to that plugin's text domain. Docblock in includes/block-template-support.php records where the event templates come from.
- 2.29.0: Attachment pages are turned off: a one-off upgrade sets each site's wp_attachment_pages_enabled option to 0, so an attachment URL now redirects to the file itself. The image attachment template (image.php) and its keyboard navigation script are removed. Also removes the classic templates that block templates or plugins now cover: the game, roster and place single templates, and the Plain, Plain No comments, Plain with template notices and Page no breadcrumb page templates.
- 2.28.0: The four classic custom page templates are replaced by two block templates, chosen in the page's Template panel. Plain (templates/plain.html) is a page without breadcrumbs or the author box, with the BuddyPress template notices container in its header; it replaces Plain, Page no breadcrumb and Plain with template notices. Plain, no comments (templates/plain-no-comments.html) is the same without comments, replacing Plain No comments. Each site moves its pages to the new templates automatically the first time it loads (schema 5).
- 2.27.0: The posts index and archives now use block templates. templates/home.html replaces index.php for the latest posts (PPT's front page) and templates/archive.html replaces archive.php for category, tag, date, author and taxonomy archives. Each post in a list is drawn by a card template part chosen by its format: parts/post-card.html for standard posts, and post-card-gallery (tags above the content), post-card-video (no image, tags) and post-card-link (no image or meta, title linked to the post's URL) for those formats, matching the classic content-{format}.php cards. The cards are listed by name in the Site Editor, and a site can add one for another format. Archives keep their breadcrumbs, archive title, description and template notices; the index keeps its pagination above the list from page 2 and below it. "Continue reading" links keep their classic wording. The title of a single link post links to the URL in the post again. Plugins' hooked blocks (related posts and so on) are not added to cards.
- 2.26.0: Post formats now have their own block templates. The single post hierarchy gains a single-format-{format} step just before single, so a post with a format uses templates/single-format-{format}.html when one exists. The theme ships three, matching the classic content-{format}.php templates: gallery (tags above the content), video (no featured image, tags above the content) and link (no featured image or meta line, author box after the content). Every post format appears by name in the Site Editor (for example "Single Video Post"), so a site can add or change a format's template there. single.html is now the standard post only, and the format handling that hid blocks in PHP has been removed, so what the Site Editor shows is what visitors see.
- 2.25.0: Single posts now use a block template, templates/single.html, in place of single.php. It reproduces the classic post: the card with its featured image, the title and the "Posted on … by …" meta line with categories, the post content, the footer links (likes, share, repost, More), the comments, and the Previous/Next post navigation with its background images. Post formats keep their classic differences: gallery and video posts list their tags above the content, video and link posts have no featured image, and link posts have no meta line. Breadcrumbs stay off single posts. Plugins that hook blocks into block templates now also show on posts (related posts, Fediverse reactions). Other post types without a template of their own also use single.html; post types with their own single-{type}.php keep it.
- 2.24.1: Fixes for comments in block templates. Pages whose comment count includes items the comment list does not show, such as likes, no longer get a heading like "10 responses" above an empty list: the heading is now shown only when there are comments to list, as in the classic templates, and when comments are also closed nothing is shown. The comments area no longer gets a second id="comments" when its heading already carries one. Lh-tasks #148021.
- 2.24.0: Comments in block templates now use core's Comments block with its own inner blocks (comments title, comment template, comments pagination and comment form) rather than legacy mode, which ran the theme's comments.php and loaded core's old Post Comments stylesheet. The block keeps the classic #comments anchor that comments links point to and the comments-area card, and prints nothing when comments are closed and there are none, or when the post is password protected, as the classic templates did. The look of the comment list and form in block templates will be brought into line in a later release. Pages and posts using the classic PHP templates are unchanged. Lh-tasks #148021.
- 2.23.0: Prepares LH 2015 for its page block template. Two new block-template filters: a Group with the class lh-2015-entry becomes the classic post card (the post's id and post_class() with the theme's card layout classes), and the Post Author block with the class author-info prints the theme's classic author box (author-bio.php: Published by, avatar, name, bio and View all posts link), or nothing when the author has no biographical info. The search-only footer rules are now limited to search results, as in content-search.php: elsewhere the like, share and repost links show for every post type, and the comments link follows lh_2015_entry_footer_meta() (not on single posts, otherwise when comments are open or there are comments). No visible change on its own: no template uses these until templates/page.html.
- 2.22.5: Featured images on search result cards that are narrower than the card now show at their own size even when they are lazy-loaded, and the browser downloads the matching smaller file. The 2.22.3 fix (CSS width: auto) also cancelled the image's own width attribute, so for lazy images, where WordPress adds sizes="auto", the browser could not tell the image's width before loading, chose the card-width file and stretched it. The Featured Image block with the class post-thumbnail now gets an inline width from its own width attribute in block templates, which overrides core's 100% width as the attribute did on the classic pages; the stylesheet only caps it at the card width. sizes="auto" is kept.
- 2.22.4: On wide screens, short pages rendered through block templates (a search with no results, the 404 page) no longer leave a large empty gap above the footer. The theme's sidebar script only pins the sidebar when the page is taller than it, and it measured block-template pages by their outer wrapper, which did not contain the floated footer, so the sidebar stayed in the flow and pushed the footer below it. That wrapper now clears its floats, as the classic page wrapper does, so its height includes the footer and the sidebar behaves as on classic pages.
- 2.22.3: Featured images on search result cards are no longer stretched: an image narrower than the card (for example a 640px-wide photo) now shows at its own size again, as on the classic pages, instead of being scaled up to the full card width. Core's Featured Image block sets its image to 100% width; the Query Loop stylesheet sets card images back to their natural width, still capped at the card width.
- 2.22.2: Search result cards are back in the theme's sans-serif type: titles, excerpts and footers had switched to the serif body font, because LH 2015 sets its card font on the article element and Query Loop cards are list items. The Query Loop stylesheet now gives each card the same font as a classic article.
- 2.22.1: Search results now show the same excerpt as before, ending "… Continue reading" with a link to the post, and their post cards line up with the page edges and sit the right distance below the search header on every screen size. The Post Excerpt block in LH 2015's block templates now prints the classic excerpt (the_excerpt(), with the theme's Continue reading link) inside the block's own wrapper, and a new stylesheet for Query Loop lists (css/blocks/core/post-template.css) removes the list margins that inset the cards by 20px on phones and spaces the first card below a page header as on the classic archive pages.
- 2.22.0: The search results page is now a block template, templates/search.html, built from core blocks and the post footer blocks from LH Buddypress Post Likes, LH Web Share, LH Buddypress Repost and LH More Modal (the hidden lh-2015/hidden-search pattern). It looks and works as before: the search box with the post type dropdown and the "N Search Results for: X" heading at the top, post cards with image, title, excerpt and footer, the same numbered pagination, and the Nada Found message when nothing matches. Behind it, the theme now adds the classic card layout classes to Query Loop items, gives the search Query Title its result count, renders the Comments Link block and the main query's pagination with the classic markup and wording, keeps the like, comments, share and repost links to posts only (as content-search.php did; filter lh_2015_entry_footer_post_types), and drops a post footer with nothing in it.
- 2.21.1: The 404 page's search box shows the post type dropdown again (All or a single post type), as the classic 404 page did, when LH Search Page 1.1.0 or later is active. The 404 pattern turns on that plugin's opt-in Search block setting; without the plugin the setting is ignored and the search box is a plain core Search block.
- 2.21.0: The 404 page is now a block template, the first of LH 2015's own block templates on the way to becoming a block theme. templates/404.html keeps the classic layout (div#content.site-content around main#main.site-main), so the page looks as before, and its text comes from a hidden, translatable pattern, lh-2015/hidden-404 (patterns/hidden-404.php), with the same heading, message and search box as the old 404.php. The theme no longer applies the 404_the_title, 404_the_content and 404_show_search_form filters: LH Membership (2.87.0) and LH IP Blocker (1.41.0) now render their no-access and blocked pages through their own block templates. Adds index.php guards to the new patterns/ and templates/ directories.
- 2.20.0: Tidy-up after the header moved to core blocks, with no visible change. Removed the styles for the dropdown toggles that classic menus used (Navigation blocks bring their own submenu toggles), the old sticky-header rules for the #sidebar id, and the small script that held the toggles' screen reader labels, which nothing loads any more. Also completes 2.19.0's removal of the theme's sidebar block by deleting its two leftover files, sidebar.php and scripts/blocks-editor.js. Corrects the spelling of WordPress in a stylesheet comment.
- 2.19.0: The header is now built entirely from core blocks, and the theme's own sidebar block is retired. The default header template part is a Group with the class sidebar holding: a site-header and site-branding Group with the Site Logo, a site-summary Group with the Site Title (class site-title) and Site Tagline (class site-description), and a Buttons block whose Button (class secondary-toggle, rendered as a button) is the small-screen Menu button; then a Group with the class secondary holding two empty Navigation blocks, the main menu (class main-navigation) and social links (class social-navigation). Fill the menus in the Site Editor (Patterns > Header). Sites that have saved their own header part keep it. Removed: the lh-2015/site-sidebar block, its editor script, lh_2015_render_sidebar_column(), lh_2015_get_sidebar_blocks(), lh_2015_get_custom_logo() and sidebar.php (deleted after this release), which also clears Theme Check's plugin-territory finding for the block. Includes css/blocks/core/site-logo.css, added since 2.18.1, which makes core's Site Logo block sit and size in the header like the classic logo did. The sticky sidebar script now finds the column by its sidebar class only.
- 2.18.1: The sidebar column is hidden when printing whether it comes from the LH 2015 sidebar block or is built from core blocks: the print stylesheet now hides it by its sidebar class instead of its #sidebar id, which a core-block header does not have.
- 2.18.0: Prepares the sidebar header to be built from core blocks, with no change to how current sites look. The small-screen Menu button script now works by class instead of id: every button with the class secondary-toggle shows and hides the menu area (class secondary) in its own sidebar column (class sidebar), so the same script serves the existing sidebar block and a header built from core Group, Site Logo, Site Title, Site Tagline, Buttons and Navigation blocks. A core Button block with the class secondary-toggle (set to render as a button) becomes that Menu button: the class moves onto the button itself and core's button styling classes are dropped, so it keeps the theme's menu icon. A Site Title block with the class site-title renders as a heading on a blog-posts front page and as a paragraph everywhere else, as the classic header did. The custom logo from core's Site Logo block gets fetchpriority low, so it never takes the high-priority hint meant for the page's main image. The sticky sidebar script falls back to the first .sidebar when there is no #sidebar.
- 2.17.0: Menus are now Navigation blocks only. The default header template part gives the sidebar two menu slots inside the LH 2015 sidebar block: a main menu (class main-navigation) and a social links menu (class social-navigation), each a Navigation block. The classic Primary Menu and Social Links Menu locations, their wp_nav_menu() output in sidebar.php, the menu description filter and the script that added dropdown toggles to classic menus have been removed. Saved classic menus are not deleted: fill each slot in the Site Editor (Appearance > Editor > Patterns > Header) by choosing the saved menu under Import Classic Menu. Until a slot is filled it shows WordPress's fallback menu. Social links are shown as icons, so give each social link an icon class (for example icon-facebook or icon-twitter) under Advanced > Additional CSS class(es). Sites with their own customised header part are unaffected. The small-screen Menu button now hides when the sidebar has no menu items.
- 2.16.5: Main menu Navigation block: the submenu toggle buttons can be clicked again. Core gives navigation links position: relative and z-index: 1, which stacked each parent link over its absolutely positioned toggle, so a click on the toggle landed on the link and followed it instead of opening the submenu. The toggle now has z-index: 2.
- 2.16.4: Main menu Navigation block: submenus now open and close only with their toggle buttons, as in the classic menu, and no longer on hover. The Navigation block's hover mode adds Interactivity API directives that open a submenu on pointerenter and close it on pointerleave and focusout; the theme now removes just those three directives from Navigation blocks with the class main-navigation when they render (includes/block-template-support.php), so core's own click toggle, Escape handling and the rest of the Interactivity API stay in place. The client-side event blocking added in 2.16.2 is removed from scripts/functions.js; it stopped mouseenter but this version of the block listens for pointerenter, so hovering still opened submenus.
- 2.16.3: Main menu Navigation block: submenu links now line up with the classic menu. Core gives submenu links 0.5em 1em padding with a more specific selector than the theme's, which indented them an extra 1em; the theme's submenu link rules are now one class stronger, so they keep the classic vertical padding, no side padding, and room for the toggle on items that have their own submenu.
- 2.16.2: Main menu Navigation block in the sidebar now looks and behaves like the classic main menu. A Navigation block with the class main-navigation gets the classic presentation: full-width items with the same separators, the sidebar text colour on wide screens, square expand/collapse toggle buttons on the right using the theme's expand and collapse icons, and submenus as an indented accordion rather than dropdowns. Submenus open and close only with their toggle, as in the classic menu: the block's open-on-hover and close-on-focus-loss behaviour is switched off for this menu in scripts/functions.js. The section containing the current page starts open and its link is bold. Styles are in css/blocks/core/navigation.css, so they load only with Navigation blocks.
- 2.16.1: The social menu as a navigation block now matches the classic one on desktop too: its icons take the sidebar text colour (the navigation block's own link colour no longer overrides it), items keep their size instead of shrinking, and a Log in / Log out block no longer splits the menu into separate rows; at desktop widths every item, including Log in / Log out, takes a fifth of the row as classic menu items do.
- 2.16.0: Blocks can now be placed inside the sidebar column block in the header template part, and are shown in the sidebar's menu area below the classic menus, so a navigation block can run beside the classic social menu while it replaces it. A social menu built as a navigation block gets the classic menu's icon-only look: icons by the same icon-* classes, labels kept for screen readers only, the navigation block's own gaps and padding removed, and a log-out icon for the Log in / Log out block when logged in.
- 2.15.2: The side menu column on member and group pages is a shade darker (#eaeaea, Twenty Fifteen's border grey) so it stands out clearly from the white page beside it, and now reads as one even block from the top of the menu to the bottom of the page (with BP LocalHero template pack 0.1.30 or later).
- 2.15.1: Member and group pages get back the pale grey side menu column they had before 2.13.9: on wider screens, where the BuddyPress menu sits beside the page, the menu column is Pale Gray for the full height of the page, with a thin divider before the page area. It comes from two more theme.json settings read by the BP LocalHero template pack (settings.custom.buddypress.sideNavBackground and sideNavBorder, pack 0.1.29 or later), so a site can recolour it with the other BuddyPress greys. Phones and tablets, where the menu shows as tabs, are unchanged.
- 2.15.0: Brings back the BuddyPress look sites had before 2.13.9, through theme.json rather than a theme stylesheet: a dark current tab on a pale grey tab bar, pale grey boxes behind activity header lines, and lightly tinted comment threads. Two palette colours are added for them, Medium Gray (#555) and Pale Gray (#f7f7f7), and the post footer band now uses Pale Gray too, so a site can recolour all of them in Appearance > Editor > Styles > Colours. The colours reach BuddyPress through the BP LocalHero template pack's theme.json hooks (settings.custom.buddypress, pack 0.1.28 or later). A site whose saved Styles palette predates these colours gets the same greys from built-in fallbacks.
- 2.14.1: On desktop, featured images and full-width blocks such as galleries are back to the width of Twenty Fifteen's content card (five sixths of the content column), centred, instead of running to the edges of the wider card introduced in 2.14.0. Phones, tablets and wide blocks are unchanged.
- 2.14.0: Posts and pages now use WordPress's own content layout. On desktop the white post card fills the content column, the text stays in a centred column of the theme's content width (660px), and blocks set to wide or full width get the room they ask for: wide up to 900px, full to the card's edges. BuddyPress pages are wide enough again for the BP LocalHero pack's side menu. Phones and tablets look as before, apart from breadcrumbs now lining up with the text. The site footer, archive headers and comments follow the wider card. Blocks inside posts are no longer split into separate content wrappers, so anything a plugin appends to post content stays inside it. Pages rendered through a block template, such as governance documents, match. Sites can change the widths in Appearance > Editor > Styles > Layout. For developers: theme.json sets wideSize 900px, useRootPaddingAwareAlignments and a root padding of –lh-2015-card-padding; templates take their layout classes from lh_2015_get_entry_part_classes() (filterable) and lh_2015_entry_part_class(); lh_2015_wrap_content() is removed.
- 2.13.9: Removes the BuddyPress companion stylesheet (buddypress/css/lh-2015.css), a copy of BP Legacy's Twenty Fifteen stylesheet kept from when LH 2015 was a Twenty Fifteen child theme. BuddyPress pages now follow the theme's normal page width, and the BP LocalHero template pack (0.1.27) lays them out to fit: a member's or group's menu as tabs above the page, and the messages inbox as cards. The sheet's wider BuddyPress pages, desktop side menu, grey header boxes and tinted comment threads go with it; the side menu returns by itself once LH 2015 gives BuddyPress a wider layout.
- 2.13.8: Activity comment lists keep the theme's own faint background tint. 2.13.7 gave them the BP LocalHero pack's neutral surface colour, which is slightly darker, and the theme's grey comment details (name links, time) fell just short of readable contrast on it.
- 2.13.7: BuddyPress screens follow the BP LocalHero template pack's theme-following styles. In the BuddyPress companion stylesheet (buddypress/css/lh-2015.css): neutral backgrounds and borders (tab bars, the account and group side panels, activity headers, comment areas, message bodies, form fields and search boxes) now use the pack's –bp-localhero-* colours, falling back to the theme's previous values, so they look the same here and follow any site-level override; the profile field visibility buttons and the directory search buttons no longer override the theme's button colours and type, so every BuddyPress button looks the same; text in unread message rows uses the full text colour, as muted grey on the blue unread tint fell below readable contrast; and the comment form's old submit and Cancel styles are removed, as the template pack no longer outputs that markup. Theme design is unchanged: white panels, dark section headings and link colours stay as they were.
- 2.13.6: lh-tasks #151390: print.css hides all navigation (nav elements), controls ([role="button"]) and anything marked with the shared .no-print class, so plugins no longer need their own print CSS: they either output semantic markup (nav, role="button") or add class="no-print" to their wrapper. Replaces per-plugin print hides in PPT's Additional CSS.
- 2.13.5: lh-tasks #151390. Move the scrollbar rules from PPT's Additional CSS into css/sidebar-colours.css: thin rounded WebKit scrollbar everywhere, thumb in the sidebar-background palette colour on wide screens. Adds the standard scrollbar-width/scrollbar-color for browsers without ::-webkit-scrollbar (Firefox), guarded by @supports not selector(::-webkit-scrollbar) because in Chromium the standard properties, when set, replace the ::-webkit-scrollbar styling and would change the current look.
- 2.13.4: lh-tasks #151390. index.php: the blog index wrapped the BuddyPress #template-notices element in its own header.page-header, which rendered as an empty white card on every blog index page (PPT hid it with Additional CSS). Output the notices element on its own instead; also drop a stray that sat inside the screen-reader page-title header in . css/print.css: print the content only – hide the sidebar (site header, menus, widgets), site footer, comments area, author box and per-post meta/actions (.cat-links, .metainfo, .like-form, .share-link, .repost-link), and remove the now-dead print layout rules for those elements. These hides were previously in PPT's Additional CSS.
- 2.13.1: Stop core's default presets being output (lh-tasks #151390). theme.json's defaultPalette/defaultGradients/defaultDuotone/defaultFontSizes: false only hide the defaults in the editor; core still prints their CSS vars and has-* classes. After 2.13.0 removed the theme's own font sizes, core's default small/medium/large/x-large (13/20/36/42px) took over the same slugs, so has-*-font-size classes still worked (at different sizes). Filter wp_theme_json_data_default to drop the default palette, gradients, duotone and font sizes. Verified zero PPT content uses any core default colour, gradient or duotone.
- 2.13.0: Trim global-styles presets (lh-tasks #151390). Typography: remove all font-size presets and disable custom font sizes, so no has-*-font-size classes or –wp–preset–font-size–* vars are generated and the editor has no font-size control; font size is determined only by element/tag and DOM position. Replace the button element's var:preset|font-size|small with the literal clamp value it resolved to. Colour: remove all 12 gradient presets (zero use in PPT content or LH 2015 code) and the 10 palette colours with zero use; keep dark-gray and light-gray (used by includes/block-patterns.php) and sidebar-background/sidebar-text (used by css/sidebar-colours.css). Theme is active only on princesparktouch.com and dev.lhero.org.
- 2.12.1: Fixes page scrolling on small screens while the header is pinned. With the 2.12.0 headroom header pinned at the top, a scroll or swipe that started on the header itself did not move the page, because the header stopped the scroll passing through to the page. The header now passes those scrolls on to the page as normal; an open menu taller than the screen still scrolls within the header first.
- 2.12.0: The site header now uses the header block template part on every page, and gets a headroom effect on small screens. header.php prints the header part (the theme's parts/header.html, or a site's own edited copy from the Site Editor) inside a header element, instead of calling the sidebar render function directly, the same way the footer has worked since 2.5.0. Classic pages and block-template pages now share one header that a site can edit in the Site Editor; the part still holds the LH 2015 sidebar column block, so the header looks the same, and the new wrapper is the banner landmark on every page. Below 955px wide, where the header is a bar across the top of the page, it now scrolls away with the page when the visitor scrolls down and slides back in, pinned to the top, when they scroll up, returning to its normal place at the top of the page. It stays in view while the menu is open or focus is inside it, the open menu scrolls within the pinned header if it is taller than the screen, it allows for the admin bar, and it appears without animation for visitors who prefer reduced motion. This replaces lh-headroom, which can be deactivated. Previously the small-screen header scrolled away on classic pages but stayed stuck on block-template pages; both now behave the same. The sidebar script no longer forces an inline position on the sidebar below 955px, matching Twenty Fifteen's original behaviour. Wide screens are unchanged. Also in this release: the completed schema 4 upgrade step (removal of the stale widget assignments theme setting, added in 2.11.2) has been removed now that every site using the theme has run it; the stored schema version stays at 4.
- 2.11.2: Removes the stale widget assignments left in the theme's settings. Widget areas were removed in 1.29.0, but each site still carried a sidebars_widgets entry in its LH 2015 theme settings. A new one-off upgrade step (schema 4) deletes that entry the first time each site loads after this release; the separate sidebars_widgets site option is not touched. The completed schema 3 step (removal of the old footer pattern setting and Footer Menu location assignment, added in 2.11.1) has been removed now that every site using the theme has run it.
- 2.11.1: Each site running the theme removes the settings left behind by the old footer the first time it loads after this release: the Content footer pattern choice and the Footer Menu location assignment. 2.11.0 moved the footer to a block template part and removed both settings, so the stored values were no longer used or editable. The menus themselves and the synced pattern are kept. Also deleted includes/footer-pattern.php, the Content footer setting's code, which 2.11.0 already stopped loading. Nothing changes on screen.
- 2.11.0: The site footer is now built from core blocks. The default footer template part (parts/footer.html) is a group holding a Navigation block with a Log in/Log out link and, from their plugins, the Register and Sitemap links; each site edits its own copy in the Site Editor, adding a synced pattern or other links as it likes. The LH 2015 site footer block (lh-2015/site-footer), the Footer Menu location and the Content footer pattern setting in the Customizer are removed; a site that used them rebuilds that content in its footer template part (Princes Park Touch and dev.lhero.org already have). New css/blocks/core/navigation.css styles a Navigation block inside the footer (.site-info) like the classic footer menu: inline links in the body font separated by vertical bars, with the Log in/Log out link included. The LH 2015 sidebar column block and header are unchanged.
- 2.10.2: Removed the stylesheet rules for WordPress Multisite's sign-up and activation pages (wp-signup.php and wp-activate.php), which do not use LH 2015 on this network. A measured check of which rules are used, across logged-in and logged-out pages at phone, tablet and desktop widths, found the rest of the stylesheet is in use or styles content that can appear on any site. The stylesheet is now 87 KB. Nothing changes on screen.
- 2.10.1: Phone links in the social links menu (tel: links) now show a telephone handset icon instead of a mobile phone outline, which looked almost the same as the install-app icon. The handset comes from Dashicons, WordPress's own icon set (GPL v2 or later), and is available to sites as –lh-icon-handset.
- 2.10.0: Icons are now SVG images drawn in the text colour instead of the Genericons icon font, which removes one render-blocking stylesheet (27 KB) from every page. Icons stay sharp at any size, no longer break when a reader overrides fonts, and are no longer announced by screen readers. Each icon is a CSS custom property (–lh-icon-{name}) that a site can use in its Styles custom CSS; the available icons are listed on the theme's Icons documentation page. Added icons for X, Mastodon, Bluesky, Threads and WhatsApp links. Links to services that no longer exist (Google+, Path, StumbleUpon, Pocket, Skype) and to Digg and Polldaddy now show the share icon.
- 2.9.1: Removed the stylesheet rules for widgets and widget areas, which LH 2015 has not had since 1.29.0 (sidebar, bottom and page-top widget areas, and every widget type's styling). The stylesheet is now 61 KB, down from 100 KB before 2.9.0. Nothing changes on screen.
- 2.9.0: The theme stylesheet is about a third smaller (from 100 KB to 69 KB). Text, headings, buttons, menus and spacing now scale smoothly with the screen width instead of jumping at seven fixed breakpoints: sizes grow between 620px and 880px on tablets, and again between 955px and 1240px once the sidebar column appears, matching Twenty Fifteen's sizes at those widths and only differing slightly in between. The shared sizes are CSS custom properties (–lh-2015-size-text, –lh-2015-size-small, –lh-2015-size-title and others), set once for each layout, so a site or child styling can adjust them in one place. Font sizes stay in rem, so text still follows the reader's browser font-size setting. The old pixel fallbacks for Internet Explorer 8 have been removed.
- 2.8.2: Moved the installed-web-app loading bar's styles out of the theme: LH Navigation Listener 1.1.0 now carries them itself, so the bar works with any theme. Removed three rules for markup nothing outputs any more: the copy-to-draft link, the web application status bar and the LH login page button. The share, repost and like link icons are unchanged. Removed the two completed one-off upgrade steps (the 2.2.0 page template move and the 2.8.1 Customizer colour clean-up), which every site running the theme has already run. Nothing changes on screen.
- 2.8.1: Tidies up after 2.8.0: each site running the theme removes its old Customizer colour settings (Base Color Scheme and the header and sidebar background and text colours) the first time it loads after this release. 2.8.0 moved these colours to the site's Styles and removed the settings, so the stored values were no longer used or editable. Nothing changes on screen.
- 2.8.0: The header and sidebar colours now come from the site's Styles instead of the Customizer. Two colours are added to the theme palette, Header and Sidebar Background (default white) and Header and Sidebar Text (default dark grey), and a site changes them in Appearance > Editor > Styles > Colours > Palette; the header, sidebar, menus and widgets take their colours and lighter tints from them through the new css/sidebar-colours.css. With the default palette a site looks as it did before. Removed Twenty Fifteen's Customizer colour settings (Base Color Scheme and the header and sidebar background and text colours), the six preset colour schemes, the CSS the theme generated from them and the colour-scheme script, and the desktop scrollbar colour, which a site can set in its Styles Additional CSS. Sites that used the Customizer colours need them set in Styles; Princes Park Touch's are moved there with this release.
- 2.7.1: Removed Princes Park Touch's colours from the theme stylesheet so every site starts from neutral defaults: tables no longer have an orange background, and a.button links and the web-app status bar are now charcoal (#333) with white text instead of navy and orange. Sites that want their own colours set them in Appearance > Editor > Styles, which Princes Park Touch now does, so it looks the same as before.
- 2.7.0: Sites can now keep their own custom CSS in Appearance > Editor > Styles > Additional CSS, the standard block-theme place for site-specific styling, and it now appears on the front end. On a hybrid theme WordPress already applied a site's Styles colours and block styles and showed its custom CSS in the editor, but only printed the custom CSS on the front end for block themes; the new includes/global-styles.php adds it to the global styles stylesheet when the theme is not a block theme. It covers Styles Additional CSS and per-block custom CSS. Nothing changes on sites that have no Styles custom CSS. This is the first step in moving Princes Park Touch's site-specific styling out of the theme, the Customizer and a site plugin into its own Styles. The file should be removed when LH 2015 becomes a block theme.
- 2.6.13: Removed the block editor typography rules inherited from Twenty Fifteen, about 270 lines of fixed body and heading sizes at five screen widths. They targeted editor markup from before 2020 that the current editor no longer uses, so they no longer applied; checking the editor confirmed that headings and paragraphs already match the site. The block editor now loads a smaller stylesheet, with no visible change.
- 2.6.12: Pullquotes no longer have the thick rules above and below them, on the site or in the block editor. WordPress's default pullquote style draws 4px top and bottom borders; LH 2015 now removes them so pullquotes show as centred text only. A border set on an individual pullquote in the editor still shows.
- 2.6.11: The theme's serif, sans-serif and monospace system font stacks are now defined once, as font-family presets in theme.json, so the block editor offers them as font choices and blocks can use them. The theme's own styles and the button style point at the presets, and posts and navigation use the sans-serif preset instead of a separate hard-coded font list. No web fonts are downloaded and the site looks the same.
- 2.6.10: Enlarged the post footer links (Like, Comment, Share and other footer links) and the category links in post headers to at least 24px, and put each post's date and author on their own line below the title instead of running on after it, so the title and meta links no longer overlap. Resolves the Lighthouse touch-target accessibility failure on mobile.
- 2.6.9: Fixed 2.6.8's logo change so the browser's high fetch priority reaches the page's main image. 2.6.8 marked the site logo fetchpriority="auto", but WordPress treats auto as the page's priority image without printing the hint, so no image got fetchpriority="high" at all. The logo is now marked low priority, the value WordPress treats as not a candidate, so WordPress gives the single high-priority hint to the page's main image: the first featured image on the homepage and archives, or the first content image on single pages. The logo is still not lazy-loaded.
- 2.6.8: The browser's high fetch priority now goes to the page's main image instead of the site logo. WordPress gives fetchpriority="high" to the first large enough image it renders, and in LH 2015 that was the logo in the sidebar, which renders before the content. The logo now declares an ordinary (auto) priority, so WordPress gives the hint to the next qualifying image, typically the first post's featured image, which is what browsers measure as the largest contentful paint.
- 2.6.7: Stops loading the Dashicons icon font for every visitor. The theme enqueued WordPress's Dashicons stylesheet, which embeds the whole icon font, on every front-end page, but nothing in the theme uses it: its own icons come from Genericons. Logged-in users still get Dashicons wherever WordPress needs it, because the admin bar and other features declare it as a dependency. Sites whose Additional CSS draws icons with the Dashicons font should switch those rules to Genericons glyphs, which the theme already loads.
- 2.6.6: Reviewed the theme's block styles against WordPress's own and removed those that no longer earn their place, so most blocks now use WordPress's default styling. Measured on Princes Park Touch content, WordPress's defaults were as good or better: tables get a crisp full grid instead of pale lines that faded on coloured backgrounds; pullquotes get WordPress's top and bottom rules with a small uppercase citation; separators are WordPress's short 2px line; captions use WordPress's centred grey caption style. The per-block styles for table, quote, pullquote styling, cover, paragraph drop caps, separator, audio, code, preformatted, media and text, archives, categories, latest posts and latest comments are removed; the quote rules had been making emphasis inside quotes invisible. What remains only fixes conflicts with the theme's main stylesheet: button and file button links keep white text on hover and no content-link underline border, pullquotes do not pick up the theme's blockquote left border, and left- and right-aligned blocks keep a 1em gap from the text beside them.
- 2.6.5: The block editor now shows buttons, captions, quote and pullquote citations, file buttons, comment dates, separators, media and text blocks and palette colours the same way as the site. The theme's editor stylesheet (css/editor-blocks.css) still carried its own copies of these styles with Twenty Fifteen's fixed breakpoint sizes, which overrode theme.json and the per-block stylesheets that the editor now loads itself. Those copies are removed; the rules that only concern the editor (typography, content width, links, lists, right-to-left text, the classic block, quote body text, table cell padding and centred archive lists) are unchanged.
- 2.6.4: Restored the theme's styles for block captions (grey sans-serif text at the small font size, with its padding) and the 1em side margin on left- and right-aligned blocks, which 2.6.3 had moved into theme.json's custom CSS. WordPress only outputs that custom CSS for block themes, so on this hybrid theme the rules were not applied. They are now in css/block-globals.css, which the theme enqueues with its file path so WordPress prints it inline in the page rather than as a separate request, and which is also added to the block editor. The unused custom CSS is removed from theme.json.
- 2.6.3: Block styles are now loaded per block, only on pages that use each block, instead of in one blocks.css file on every page. Each block's styles live in one place: in theme.json when everything it needs can be expressed there (the gallery's spacing), otherwise in its own file under css/blocks/core/, registered with wp_enqueue_block_style() by a small loader that picks up any css/blocks/{namespace}/{block}.css file, so a style for any block, including plugin blocks, is added by dropping in a file. WordPress inlines these small files, adds them to the block editor too, and skips them on pages without the block. Captions and the left and right alignment margins, which apply across blocks, move to theme.json's custom CSS with their original selectors. Twenty Fifteen's five fixed breakpoint sizes for captions, quote and pullquote citations, file buttons and comment dates become fluid sizes (the small preset, or 15px to 19px for citations). Editor-only quote rules that targeted a class the editor no longer uses are dropped. blocks.css is no longer loaded and is removed.
- 2.6.2: Fixed two regressions from 2.6.0 and 2.6.1. The small, medium, large and x-large font sizes, including the button text, stayed at their smallest size at every screen width. WordPress's fluid font size formula assumes a 16px root font size, and this theme's root is 10px (62.5%), so the scaling never started. The sizes are now written as clamp() values in pixels, which do not depend on the root size, and WordPress's own fluid calculation is turned off for this theme; they scale as intended from 320px to 1400px screens (small 13 to 16px, medium 17 to 20px, large 22 to 29px, x-large 29 to 39px). Button text also turned grey on hover and focus, because the theme's general link hover colour in style.css outranked the button hover colour; button links now keep white text on hover and focus.
- 2.6.1: Button styles now come from theme.json as the button element style, so block buttons, file block buttons and the comment form's submit button share one definition in the editor and on the site. Buttons keep the Twenty Fifteen look: white bold uppercase sans-serif text on #333, turning to a translucent #333 on hover and focus. Their text uses the theme's small font size, which scales from 13px to 16px with the screen width instead of stepping between 12px and 16px at five breakpoints. The block button's #333 background now comes from the theme rather than from the order of the stylesheets, and the unused 1.125em button font size added in 2.5.3 is removed. The duplicate colour and gradient classes at the end of blocks.css are also removed: WordPress generates these classes from the theme's palette, and the gradient ones no longer matched any gradient's class name.
- 2.6.0: The colour palette, gradients and font sizes are now defined in theme.json, with a fluid type scale. The theme's 12 colours and 12 gradients move there from add_theme_support() in PHP, keeping their slugs, so existing content and the .has-*-color and -background-color classes core generates are unchanged; the Dark Gray gradient's slug is corrected from dark-gray-gradient-gradient to dark-gray-gradient. WordPress's default colours, gradients and font sizes are no longer offered, so the editor shows only the theme's own. The small, medium, large and x-large font sizes keep their slugs and now scale with the screen width between 320px and 1400px: small 13 to 16px, medium 17 to 20px, large 22 to 29px and x-large 29 to 39px, in line with Twenty Fifteen's type. The viewport range is set explicitly because the theme's 660px wide size would otherwise stop the scaling at 660px.
- 2.5.4: Core block styles now load per block, only for the blocks on each page, instead of the whole block library stylesheet on every page. LH 2015 had forced should_load_separate_core_block_assets to false, which overrode the on-demand loading WordPress 6.9 and later turn on for classic themes and registered wp-block-library as the full 138 KB style.min.css. That override is removed, along with the redundant should_load_block_assets_on_demand filter, so core's own classic-theme setup applies: a small common stylesheet plus a separate stylesheet for each block rendered, moved into the page head by core's template output buffer.
- 2.5.3: Stopped loading core's classic-themes.min.css, removing one render-blocking stylesheet request from every page. LH 2015 re-enqueued that file because core drops it once a theme has a theme.json, but core's default theme.json button styles, printed in the inline global styles, already cover the button colour, background, padding and text decoration, and the core/button block's own stylesheet supplies the pill-shaped border radius. The one rule the file still added, a 1.125em font size on button block links, now lives in theme.json under styles.blocks core/button, scoped to the button block so search and comment form buttons are unaffected.
- 2.5.2: Fixed a PHP warning logged when a page showed the breadcrumbs block. LH 2015 removes the inline style attribute that core adds to the breadcrumbs block, and did so by loading the block's HTML into DOMDocument, whose HTML parser predates HTML5 and warned that the nav element was invalid. That approach also risked garbling non-ASCII characters in breadcrumb titles, since no character encoding was declared. The style attribute is now removed with WordPress's own HTML API (WP_HTML_Tag_Processor), which understands HTML5, leaves the rest of the markup untouched and logs nothing.
- 2.5.1: Fixed the main stylesheet going missing on front-end pages requested with a JSON content type. LH 2015 registers its stylesheet early, on wp_loaded, and skipped that step for requests that looked like API calls; a page request sent with a JSON content type (such as a bot probing /graphql and getting the 404 page) still rendered the theme, but without the stylesheet, and WordPress 6.9.1 and later logged a notice that lh-2015-inline-style depended on the unregistered lh-2015-style. The stylesheet is now also registered when the page's styles are enqueued if the early step was skipped, so every rendered page has it. Also removed an is_robots() check from that early step, which could never be true at that point.
- 2.5.0: The site footer is now a block template part on every page, not only on block templates. LH 2015 declares block-template-parts support, and footer.php renders the footer part with block_template_part() inside the same footer element core uses for block templates, so classic templates and block templates share one footer. Site admins can see and edit the Header and Footer parts under Appearance > Design; a part edited there is saved per site and overrides the theme's copy. WooCommerce adds its Mini-Cart and Checkout Header parts to that list but otherwise behaves as before. The footer looks the same; #colophon is now a div inside the footer element rather than the footer element itself.
- 2.4.1: Restored the BuddyPress and WooCommerce styling that Twenty Fifteen used to provide. As a standalone theme LH 2015 is no longer detected as Twenty Fifteen, so BuddyPress (BP Legacy) stopped loading its Twenty Fifteen companion stylesheet and WooCommerce stopped applying its Twenty Fifteen support. The theme now ships buddypress/css/lh-2015.css, which BP Legacy loads automatically as the companion for LH 2015 (a copy of BuddyPress 14.5.2's Twenty Fifteen stylesheet, using the theme's system fonts). It also declares WooCommerce support itself, with the same content wrappers, product gallery zoom, lightbox and slider, and image widths WooCommerce used for Twenty Fifteen.
- 2.4.0: Reorganised and trimmed LH 2015's code. functions.php now only loads the theme's files from the includes folder: the theme class (main stylesheet and scrollbar colour), content and meta template functions, front-end styles and scripts, small theme settings, and last the setup code that came from Twenty Fifteen. Unused code is gone: the html_tag_schema and lh_2015_return_text functions, the Archive Settings section in the Customizer (its layout and excerpt length settings were never used), the unused custom logo wrapper, the wp_body_open fallback for WordPress before 5.2, the tag cloud widget filter and widget selective refresh support, the call to the retired LH Better Navigation plugin on the posts page, duplicated theme supports and a second comment-reply enqueue. All files now use Unix line endings. Pages look the same.
- 2.3.0: LH 2015's code now uses its own names throughout instead of Twenty Fifteen's. Functions, filters and the category cache that were prefixed twentyfifteen_ are now prefixed lh_2015_ (the entry footer meta function becomes lh_2015_entry_footer_meta, since lh_2015_entry_meta already prints the header meta). Stylesheet and script handles are now lh-2015-*, with the Customizer colour CSS carried by lh-2015-inline-style. The block pattern category and patterns are now lh-2015, every translatable string uses the lh-2015 text domain, and the bundled setup code lives in includes/theme-setup.php. The theme's main class is now LH_2015_Theme. Existing lh_2015_ filters used by site plugins keep their names. Anything hooking the old twentyfifteen_ filters needs updating. Pages look the same.
- 2.2.0: Tidied the theme's file structure. Page templates now live in a page-templates folder, and pages already using Plain, Plain No comments, Plain with template notices or Page no breadcrumb are moved to the new paths automatically the first time each site loads after updating. The unused Full Width, Menu, Plain No Image and Single Loop page templates have been removed. The code and scripts that came from Twenty Fifteen now sit alongside the theme's own in the includes and scripts folders. Unused files are gone: the jQuery versions of the menu and image navigation scripts (replaced by the theme's own), the old Internet Explorer stylesheets and HTML5 shim, and Twenty Fifteen's check for WordPress versions older than 4.1. Pages look the same.
- 2.1.0: LH 2015 no longer bundles or loads any fonts. The Noto Sans, Noto Serif and Inconsolata files Twenty Fifteen shipped are gone, along with the code that loaded them on the site and in the editor. Text uses each device's own system fonts through three CSS variables (–lh-2015-font-serif, –lh-2015-font-sans and –lh-2015-font-mono), which a site can override to use fonts of its own. Most visitors see no change, since these fonts were not being loaded; devices that have Noto installed locally now show their own system font instead. Print styles moved out of the main stylesheet into css/print.css, which browsers only download when printing. The theme download is about a third of its previous size.
- 2.0.2: Tidied how LH 2015 loads its stylesheets and scripts now that it is a standalone theme. The main stylesheet is registered as lh-2015-style instead of lh-2015-child-style. The Twenty Fifteen code bundled in the theme no longer enqueues the stylesheet a second time only for the theme to hide it again; its inline colour and header CSS now attaches to a style-free handle. Scripts that were enqueued and then removed are no longer enqueued at all: Twenty Fifteen's jQuery menu script, its empty IE stylesheets, and a second copy of Genericons. On image attachment pages the old jQuery keyboard navigation script no longer loads alongside the theme's own version. The skip-link script loads once, deferred, from the theme. The theme's main class is no longer wrapped in a class_exists() check, and the bundled Twenty Fifteen code now always loads, since every site running LH 2015 has been switched to it as a standalone theme. The bundled code's remaining strings now use the lh-2015 text domain. Nothing changes on screen.
- 2.0.1: Fixes a fatal error on sites where WordPress still recorded Twenty Fifteen as LH 2015's parent theme after 2.0.0. On those sites WordPress kept loading Twenty Fifteen's own functions alongside LH 2015's bundled copy of them. LH 2015 now only loads its bundled copy once WordPress treats it as a standalone theme, so those sites keep working unchanged until their theme setting is updated.
- 2.0.0: LH 2015 is now a standalone theme and no longer a child of Twenty Fifteen. Everything it used from Twenty Fifteen is now part of the theme: the stylesheet, the fonts, Genericons, the scripts, the Customizer colour schemes and custom header, the template tags and the templates LH 2015 did not already override. Sites keep their menus, logo, colours and Customizer settings, and pages look the same. Twenty Fifteen's widget area is no longer registered at all, the theme loads a single stylesheet instead of a parent and child pair, and all translatable strings use the lh-2015 text domain. The unused Responsive Banner Ads template for single lh-advertisement posts, which loaded scripts from googlecode.com, has been removed; any such posts now use the standard single template.
- 1.31.2: Theme Check clean-up. The stylesheet header now declares Requires at least (6.7), Tested up to (7.1) and Requires PHP (8.0), and carries a copyright notice. It drops the colour and layout tags that wordpress.org has deprecated, along with accessibility-ready, which the theme has never been reviewed for. Every translatable string now uses the theme's own lh-2015 text domain: the templates copied from Twenty Fifteen still used twentyfifteen, and the footer menu location used twentysixteen-footer-menu. The events archive and archived posts index headings and descriptions are now translatable too. The Archive Settings Customizer options (archive layout and excerpt length) now sanitise what is saved. Nothing changes on screen for English-language sites.
- 1.31.1: Removed the old LH email template (lh_email-template.php), which nothing loaded and which carried Princes Park Touch styling. The email signature documentation now describes the one context the theme uses, bp for its BuddyPress email templates.
- 1.31.0: Tidy-up release. Princes Park Touch's email signature no longer lives in the theme: the BuddyPress, plain BuddyPress and LH email templates now print a generic signature built from the site's name, tagline and address, which a site can replace through the new lh_2015_email_signature filter (ppt-site-specific now supplies PPT's signature, so PPT's emails are unchanged). The small-screen menu button is labelled Menu rather than Menu and widgets. The unused Header Logo Customizer setting is gone (the header uses the standard site logo). Stylesheet paths no longer assume the theme folder names. Two dead files were removed, and several faults found by static analysis were fixed: an excerpt fallback that could never run, an unreachable post-format label, a PHP 8.2 dynamic-property deprecation in the stylesheet loader, stray arguments to remove_filter() and sprintf(), a dead call to the retired LH Cookieless Domain plugin, and trailing whitespace at the end of the events archive template.
- 1.30.1: Appearance > Widgets now really disappears when no widget areas are registered. The 1.30.0 check called WordPress's remove_theme_support(), which deliberately refuses to remove widget support and silently does nothing, so the Widgets screen stayed. It now uses the lower-level _remove_theme_support(), which WordPress provides for exactly this case. Sites where a plugin still registers a widget area keep the Widgets screen.
- 1.30.0: Finished removing widgets from LH 2015. When no widget areas are left registered, the theme now also drops WordPress widget support, so Appearance > Widgets disappears; if a plugin still registers an area of its own, widget support and that screen stay. The email templates (the BuddyPress email template, the plain BuddyPress email template and the LH email template) no longer look for the retired LH Email Footer widget area; each now offers an lh_2015_email_footer filter instead, which outputs nothing unless a site plugin adds content. The editor descriptions of the LH 2015 sidebar column and site footer blocks no longer mention widgets.
- 1.29.0: LH 2015 no longer has any widget areas. The Sidebar Top Widget Area, the Bottom Widget Area and Twenty Fifteen's own sidebar widget area are no longer registered or shown, so the Widgets screen no longer lists them. Content below the page now comes only from the Content footer pattern chosen in the Customizer; with no pattern chosen, nothing is shown there. The sidebar column keeps its primary and social menus. Sites that still had content in a widget area should move it into a synced pattern and choose it as the Content footer pattern.
- 1.28.0: Each site can now choose a synced pattern to show below the content on every page, above the footer menu, using the new Content footer pattern setting in the Customizer (Content footer section). The setting lists the site's own published synced patterns and is stored per site, so the theme holds no organisation-specific content. While no pattern is chosen, the Bottom Widget Area is shown exactly as before, so sites can move their content into a pattern at their own pace and remove the widgets afterwards. The same content footer appears on pages rendered through a block template.
- 1.27.2: Renamed the class that keeps page and event titles flush with the content below them, from a name left over from the retired LH Better Navigation plugin to lh-2015-title-flush. Page and event titles look exactly as before.
- 1.27.1: Removed leftovers from the retired LH Better Navigation plugin. The Page Top Widget Area is no longer registered, since no template has output it since 1.27.0 and its breadcrumbs widget has been deleted; the theme's own breadcrumbs replace it. The stylesheet no longer carries the rules for LH Better Navigation's breadcrumb and related-pages lists, which nothing outputs any more. The rule that removes the bottom margin from page titles is kept for now, because page and event templates still add its class and removing it would change the spacing under their titles.
- 1.27.0: Breadcrumbs now come from the theme instead of a widget. Pages and events used to get them from a Breadcrumbs block placed in the Page Top Widget Area, and archives, the events archive, games, enquiries and rosters called a function from LH Better Navigation, which is no longer active, so those views showed no breadcrumbs at all. Every one of these templates now calls the theme's own breadcrumbs, which render the core Breadcrumbs block in the same place as before, so archives, games, enquiries and rosters show breadcrumbs again. Pages rendered through a block template, such as governance documents, get the same breadcrumbs above their title. Pages using the Page no breadcrumb template still show none, and the new lh_2015_show_breadcrumbs filter can turn them off anywhere else. The Page Top Widget Area is no longer output by any template, so its Breadcrumbs widget can be removed.
- 1.26.0: LH 2015 is now a hybrid theme. It stays a child theme of Twenty Fifteen and keeps all of its PHP templates, but it now declares block-templates support, so any post type with a bound block template uses it: a template registered by a plugin (such as the single governance document template from LH Governance Documents), a templates/single-{post_type}.html file in the theme, or one saved from the template editor. Every other view is unchanged. Block templates get the same site chrome through header and footer template parts built from two new theme blocks, LH 2015 sidebar column and LH 2015 site footer, which render the same markup as header.php and footer.php; both templates now call the same shared functions, so there is one source for the chrome. A layout stylesheet, loaded only on block-template pages, gives the main content the same card layout as the classic templates at every screen width, and post titles and content in block templates pick up Twenty Fifteen's entry-title and entry-content styling. The theme now has a minimal theme.json (660px content width, no block gap, no default duotone presets, palette and font sizes still from Twenty Fifteen), and re-adds the classic theme button styles that WordPress drops once a theme has a theme.json, so existing pages look the same. The sticky sidebar script now also works on block-template pages, and the dead IE 8 html5.js shim was removed from header.php.