Giter Site home page Giter Site logo

happyprime / network-template-parts Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 984 KB

Render template parts in a site or network context.

Home Page: https://wordpress.org/plugins/network-template-parts/

JavaScript 44.99% PHP 55.01%
multisite site-editor wordpress wordpress-plugin dotorg-plugin

network-template-parts's Introduction

Network Template Parts

Render template parts in a site or network context.

Description

When managing a brand across many sites, it is often necessary to ship changes to the look and feel with the certainty that they will be applied immediately.

In its current iteration, the WordPress site editor allows individual site administrators to make changes to a theme's templates and template parts. Once a template or a template part has been edited on an individual site, it no longer receives updates from the theme automatically, which may in turn cause unintended consequences.

This plugin provides a way for site administrators to edit parts of the site without accidentally overwriting pieces that should remain consistent.

Network Template Parts works in tandem with Restrict Network Templates, which restricts the editing of templates on individual sites.

Assumptions

Templates provided by the theme should not be edited.

A theme's core structure is defined by templates. (e.g. templates/home.html)

It should be possible to set a structure in these templates and assume that they will not be overridden on individual sites.

Network-level template parts are managed by network administrators.

Parts of a theme's structure rely on data from the main site on a network. (e.g. global navigation)

It should be possible for a template to specify that a section of a page is rendered in the context of the main site.

Site-level template parts are managed by site administrators.

Parts of a theme's structure rely on data from individual sites on a network. (e.g. site navigation, content)

It should be possible to override site-level template parts from an individual site.

Block

The Network Template Part block renders a selected template part in either a "site" or "network" context.

Attributes:

  • slug determines which template part to load. Template parts are located in a theme's parts/ directory.
  • context determines the context in which the part should render.

Examples

Often, a network will provide common header and footer areas while leaving the site content between to site administrators. With Network Template Parts, this can be accomplished as so:

A templates/index.html file may contain:

<!-- wp:ntp/network-template-part {"slug":"header","context":"network"} /-->
<!-- wp:ntp/network-template-part {"slug":"main-index","context":"site"} /-->
<!-- wp:ntp/network-template-part {"slug":"footer","context":"network"} /-->

This loads parts/header.html from the main site on the network, parts/main-index.html from the current site, and parts/footer.html from the main site on the network.

The parts/header.html file main contain:

<!-- wp:ntp/network-template-part {"slug":"header-top","context":"network"} /-->
<!-- wp:ntp/network-template-part {"slug":"header-main","context":"network"} /-->

This defines two areas in the header to be managed at the network level. The parts/header-main.html may contain something like:

<!-- wp:group -->
<div class="wp-block-group">
	<!-- wp:group {"tagName":"header"} -->
	<header class="wp-block-group">
		<!-- wp:ntp/network-template-part {"slug":"header-main-network-logo","context":"network"} /-->
		<!-- wp:ntp/network-template-part {"slug":"header-main-site-navigation","context":"site"} /-->
	</header>
	<!-- /wp:group -->
</div>
<!-- /wp:group -->

This provides some common HTML structure, loads a network-level logo, and also provides a site-level navigation in parts/header-main-site-navigation.html.

Now, an individual site administrator can make changes to a navigation menu while also receiving updates from the theme and the network if the look and feel of the broader network changes.

Changelog

1.0.3

  • Adjust deployment scripting.

1.0.2

  • Update @wordpress/scripts dependency to 26.8.0.
  • Include built files so that the block actually works.

1.0.1

  • Update @wordpress/scripts dependency to 26.6.0.
  • Add POT file.
  • Initial wp.org release.

1.0.0

  • Consolidate into one block: Network Template Part.
  • Add "context" attribute.

0.1.1

  • Provide a select interface for site and network template parts.
  • Improve plugin documentation.
  • Update @wordpress/scripts dependency to 26.3.0.

0.1.0

Initial release

network-template-parts's People

Contributors

jeremyfelt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

network-template-parts's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.