Dynamic Template Parts
Transform the way you manage templates on your WordPress site with Dynamic Template Parts. This powerful plugin extends the Full Site Editor, letting you swap headers, footers, and other Template Parts dynamically based on the content you’re editing — say goodbye to managing multiple templates for every layout variation. With Dynamic Template Parts, you gain the freedom to swap Template Parts directly within the block editor, whether it’s for posts, pages, or custom post types. The user-friendly interface allows you to preview changes in real-time, giving you complete control over the look and feel of each piece of content without needing custom code. Key Features: Dynamic Template Part Swapping: Replace headers, footers, sidebars, or any template part within the block editor. Flexible Swapping Options: Define whether to swap within the same type, any type, or curated parts. Template Part Previews: Preview Template Parts before selecting, ensuring your content looks perfect. Supports All Content Types: Works with posts, pages, and custom post types. User-Friendly Interface: Simple setup—no coding required.” Get Started: To implement an alternative Header Template Part using the Full Site Editor, please follow the example workflow below: Create an Alternative Header Template Part: Design and save a new Header Template Part within the Full Site Editor to serve as an alternative to your default header. Edit the Single Posts Template: Navigate to the Single Posts template and select the Header Template Part, and view the block sidebar. Enable the Dynamic Template Part Option: In the Template Part attributes panel, enable the Dynamic Template Part setting. Configure Swapping Preferences (Optional): Adjust your swapping preferences according to your requirements (choose to swap your Template Part with differnt Template Part types, or use a curated list of Template Parts). Edit a Post and Access the Dynamic Template Part Sidebar: Open a post for editing and select the Dynamic Template Part sidebar from the editor interface. Select the Alternative Header Template Part: Choose the alternative Header Template Part you created to replace the default header in this specific post. Save and Preview the Post: Save your changes and preview the post to verify that the alternative header is displayed correctly. Confirm Default Header on Other Posts: Ensure that all other posts without specific configurations continue to display the default header as intended. Unlock the power of dynamic templating and take control of your site’s design like never before! Hooks and Filters Dynamic Template Parts provides filters to allow developers to customise its behaviour. Below are the available filters and how to use them. Show Deselected Template Part The dynamic_template_parts_show_deselected_template_part filter lets you control whether a previously selected template part that is no longer available for selection should still be displayed. By default, the plugin keeps the part visible to avoid unintended changes, but you can override this to automatically remove unavailable template parts. Example: If you want to ensure that unavailable template parts are removed and replaced with the default template part, you can use the following code: add_filter( 'dynamic_template_parts_show_deselected_template_part', function( $show_deselected, $template_parts, $selected_part ) { // Always hide deselected template parts and fall back to the default. return false; }, 10, 3 ); Parameters: $show_deselected (bool): Whether to show the deselected template part. Defaults to true. $template_parts (array): The list of available template parts. $selected_part (string): The currently selected template part. User Permissions The dynamic_template_parts_user_can_switch filter lets you customise which users are allowed to switch template parts. By default, any user with the edit_posts capability can access this functionality, but you can restrict it to specific roles or capabilities. Example: If you want to restrict template part switching to administrators only, you can use the following code: add_filter( 'dynamic_template_parts_user_can_switch', function( $can_switch ) { // Allow only administrators to switch template parts. return current_user_can( 'manage_options' ); } ); Parameters: $can_switch (bool): Whether the current user has permission to switch template parts. Defaults to checking the edit_posts capability. Roadmap Support for additional content types: Support additional content types such as authors, terms and archive pages. Requirements WordPress version 5.8 or higher. PHP version 7.4 or higher. Known Issues See the Roadmap section for known issues.
Syntax-highlighting Code Block (with Server-side Rendering)
This plugin extends the Code block in WordPress core to add syntax highlighting which is rendered on the server. Pre-existing Code blocks on a site are automatically extended to include syntax highlighting. Doing server-side syntax highlighting eliminates the need to enqueue any JavaScript on the frontend (e.g. Highlight.js or Prism.js) and this ensures there is no flash of unhighlighted code (FOUC?). Reducing script on the frontend improves frontend performance, and it also allows for the syntax highlighted code to appear properly in AMP pages as rendered by the official AMP plugin (see also ampproject/amp-wp#972) or when JavaScript is turned off in the browser. This extended Code block uses language auto-detection to add syntax highlighting, but you can override the language in the block’s settings sidebar. (There is currently no syntax highlighting of the Code block in the editor, but see #8.) The plugin supports all programming languages that highlight.php supports (being a port of highlight.js). The Code block also is extended to support specifying lines to highlight which get marked up with mark elements (including in RSS feeds). There is also a checkbox for whether to show line numbers on the frontend (with the numbers being non-selectable). Lastly, given inconsistencies across themes regarding whether lines in a Code block should be wrapped, this plugin adds styling to force them to no-wrap by default, with a checkbox to opt in to wrapping when desired. For advanced usage, please see the plugin wiki. This plugin is developed on GitHub. See list of current issues with the plugin. Please feel free to file any additional issues or requests that you may come across. Pull requests are welcome. See contributing information. Credits This is a fork of Code Syntax Block by Marcus Kazmierczak (mkaz), which is also available on WordPress.org. Copyright (c) 2018 Marcus Kazmierczak. Licensed under GPL 2.0 or later. highlight.php is released under the BSD 3-Clause License. Copyright © 2006-2013, Ivan Sagalaev (maniac@softwaremaniacs.org), highlight.js (original author). Copyright © 2013, Geert Bergman (geert@scrivo.nl), highlight.php