Let us show you how to make your WordPress multisite a headless CMS to publish content from one website automatically on several sites.
How can I publish content on several websites?
Hi, my name is Sandra, and in this video I’m going to show you how you can synchronize assets and content, and partially synchronize them across any number of websites with Global Content. Here I got two websites of a typical Global Content case. In that case, it’s a fitness franchise with several studios, each of which has their own website. And you can see that some parts of the content, for example this headline here, or also the overall structure of the pages, they look the same. You can also see that even those elements that are synchronized, they automatically adapt to each website’s design, so they kind of look a little bit differently. Then we can see parts where the layout and template are the same, but with different content. For example, here we have dynamically inserted the website title, which is different here, or also this here thinks the subtitle of the website is also different here. Then we have some fully synchronized sections here, and then we have parts like these ones that are super interesting. Here again, the entire layout structure, the element itself seems to be synchronized. We have it here as well. We also have some contents that are available on both pages, but then again we have some content that is only available on this website. For example, you can’t see it here. So this is a synchronized part where you can locally add content. And then we have some elements where, the overall layout and template is synchronized, but the content differs. So here we have different trainer information. Same here in the contact section. The template itself is synchronized, but the contact details and opening hours stay different.
This can all be done with Global Content. Global Content is available in all our subscription licenses, and depending on which license you have, you can either use it to synchronize assets on a multisite level or even across different installations. So if you have the Site Connector, you can connect single sites, multisites to one network, and then you can also use Global Content to synchronize assets across all these installations. What you have to do in both cases is, you have to activate the plugin. And as soon as you have done that, you will see a Global Content section on the menu. Let me move my image here. So here’s a new Global Content section, and here you can see that you can manage Global Content either on this site or on a network site.
We will now take a look at this site first. So here you have an overview of all assets, on all contents that have been made global in your website network and are available for this site. You can sort this by post type, for example. You can also sort this and filter by status, post type. You have the link to the source post, you have some information on language, the way how this element has been made global, etc. etc.
Let’s start with the status. Some contents say “not imported”. This means that those contents, they come from a different website, have been made global, so they are available for this website, but you have not imported them. You can see here where this comes from. So this is a different installation. This is the Helpcenter site, we’re here in the Tutorial site, so I could now import this post. We’re going to take a look at this later, or we can open the original post.
Then we have some elements that are marked as “exported”. That’s the other way around. So this post here was created on this website and was exported to be used on other websites as well. And now let’s just move to one of those posts here, that are available, but not imported yet. We’ll just import it now. There’s an automatic check whether there are any conflicts. So, for example, if there are any elements that already exist on your site, you’re going to be asked: okay, what do you want to do? Do you want to keep both, do you want to replace it, or do you want to cancel this?
In this case, none of this happened, so I can import it now. And now it says “imported”, so I can now use it on my website and I have some different options here. I can edit the post — we’ll look at this later. I can unlink it. This means I’m going to cut the connection to this original post here. I will still be able to use the post, but it will then be static. This means that there’s no synchronization to the source post anymore. So changes that I make here will only be reflected on this page. I can also delete the posts, but if I do this on a site level, it will only be deleted here on this page, with no effect on any other connected pages. And I can go to the original post as well.
For elements that have been exported — let’s just see the features here — I can also edit a post. I can also unconnect it here. If I do that here, and it’s an exported post, those posts will still be available on all connected sites, but they will become static, so no connection to the source post anymore.
Then let’s go to network level. Here we have a similar overview with all available posts on the entire network. There’s some additional information. So, for example, here again I can see the source URL, but I can also see where the posts have been used. So I can see, okay, this comes from the Helpcenter Fitness franchise and was imported and is also used on the Helpcenter Global Content site, for example. I can also delete post from here, but be aware that if you do that on a network level, then you are really going to delete those posts. So it’s not about making them static anymore or just deleting them from one site. Then you will delete them everywhere.
In the settings here on the left, the Global Content settings, you can also define what exactly should happen if you trash a global post on network level. You can either actually trash it, or you can define that instead of trashing, you make them local or static everywhere.
Okay, so now let’s actually work with Global Content. So let me go back to my local stage, and then we will just select a template. Let’s go with this one — yeah, it’s a nice one. So this is just the regular template that I created on the stage, and I now want to make it global, so I can also use it on other websites. I do this by clicking “convert to Global Content” here. Depending on which kind of post type or post or asset you are going to make global, you will then be asked different questions. For example, if you make an entire post type global, you will be asked whether you want to include the posts that are part of this post type. If you try to make a post global that has translations, you will be asked whether you want to include those translations as well. If links are involved, you are going to be asked how you want to handle those links. If you want to make them dynamic so for example, if you have a link going to your privacy, site, do you want to change that to the privacy site of the other installation, or do you want to have it as a local link?
And this question here is very important: do you want to include nested content? So, in this case, it’s just a dummy image, but I have an image included, and of course, I want this image to be synchronized as well. Same goes if you have a form included, or a nested template, or anything, any other elements in this element. Then you want to synchronize this as well, and you have to activate this. And then you don’t have to worry about anything. So even if you have a form that comes with a thank-you page, the thank-you page as well will be synchronized. The only situation in which you have to do an extra step is when you have, for example, query loops in the template that you want to make global, and you want the posts to be synchronized as well. Then you have to additionally make the post type or the posts global. But here, we’re just going to make this global here now.
And now I can directly see up here that this is now a global source page. I can also directly see whether it’s in use on other websites as well. So whenever I make any changes here, I will directly see: okay, all this is in use here, here, and here — so I have to be careful what I do. Same here. I can also unlink it here. And I have some additional settings here, again whether I want to use or not the nested content. And then a global canonical URL, which is important for SEO optimization, because you don’t want to run into issues with duplicated content. And to prevent that, automatically the source URL will be used as a global canonical URL, and you can change that here if you want to.
Now let’s go back. So this is our Highlight Tile New. Let’s go back to our Global Content overview and see what’s changed.
So, this was the template. Here we have it. You can now see it’s exported. And now let’s just go to another website and import it there. So let’s go to this one, open Global Content → Dynamic templates, and here it is. I can see it’s available but not yet imported. I’m going to import it now.
Here I’m now asked: okay, this image is already available on this stage. Do I want to replace it, skip it, or keep both? In this case, I’m going to replace it. And now we can also take a look at how it looks like if I try to edit a post that was created on a different site. So here I can see this is my template – it’s the same template as this one. Let’s go back.
Here it’s the same template, so the same structure, but it automatically changed to the grid and style settings of this website. So it looks a little bit different, but the structure is the same. I can also see that I can see all the elements and contents, but I cannot do anything. I cannot click anything. And this is because this is not the source post – it’s just the synchronization. So I can see: okay, this comes from the tutorial site. I can either now make it a static post, so I can edit it and there’s no connection to the source post anymore. I can go to the original post, and here as well, I can see some information on that. So now let’s use this template on both sites and create a page with this template and see what happens.
We don’t need anything beautiful – just test a template. Here it is – publish. And let’s do the same here. Create a page – test page, and that’s the template. Here it is – publish.
So now let’s take a look at the sites. Okay, here we have the tile and here we have the tile. It automatically adapted to each site’s grid and design settings, but it is the same tile. And now let’s see what happens if I make changes to this template. So let’s go to the original template and change something.
I can now see: ah, this is distributed to another site. I can also see here to which one. And now let’s just make a simple change. I change this headline to “Headline Two”. And of course, this change will obviously work here – yeah, we can obviously see it’s changed on the source page – but we can also see that it has changed on the connected page as well, without me touching that page at all. Now let’s take some more detailed look at those examples of the fitness site, which looks a little bit more like an actual website. Let’s take a look at the different forms of conditional Global Content here. So this is the source page, this is the synchronized version. So let’s see how this looks like in the backend. We don’t need these tabs anymore.
Okay, so here we can see the entire site – the entire page is a globally synchronized post. So I cannot make any changes here on a local level. However, we did see that some elements do differ on this site compared to this one. So how is this possible? Let’s take a look at the original post.
This has been made possible, for example, with dynamic tags. So here, for example, we can see there are some static elements – “Welcome to” is the same here and it’s also here – but the name here is dynamic, because here we dynamically inserted the site title. Same here – the website subtitle is automatically inserted here. So we automatically have different content on those websites without doing anything, because it’s dynamic information that just differs on both sites.
And here we have some synchronized content. And then let’s take a look at this section here that we discussed earlier with the global posts and the additional local posts. So in this case here – let’s take a look – here again, this part is static, and here we have a query loop. So the query loop as well is synchronized and automatically displays – let’s see – the posts of the post type “Program”. The entire post type has been made global, including all its posts. So all posts that I create here on my global source page, like this one, will automatically also be available on this one.
However, on a local level, I’m still able to add local posts as well. So let’s just check out this post type. Here we have the “Program” post type, and we can see we have some posts that are global, but we also have some that are local. And if we move further down – here again, this is some query loop – let’s take a look at it here. So here again, this is a query loop automatically displaying posts from – I can only see it in the template – let’s see it here. So this is a query automatically displaying the posts of the post type “Trainer”. However, this post type has been made global without including the individual posts. So the post type itself – the entire structure, the fields, and all that – is synchronized to both pages, but the posts themselves, they differ. So on this page, I have Sarah Johnson and Marcus and Daniel, and on the other page, I have different trainers, because the posts are created locally on this page.
Same here – here it’s even more interesting. We have a globally synchronized template with dynamically inserted contact details. Again, if we take a look at it in the backend – here too we have those Dynamic Tags that we’ve seen before. They refer to a post type as well, but here we didn’t even need a query loop, because we have used our Global Dynamic Tag feature.
Let me just quickly show that to you. So this is the “Trainer” post type – let’s look at it here – this is the “Trainer” post type. We can see it has been exported, so it is a global post. Excuse me, not the “Trainer” one – the “Franchise Data”. So “Franchise Data” – the opening hours, contact details, and all that – the post type itself has been made global, again without including a post. And we have this global dynamic tag feature, which basically is only one setting here and makes the data from the latest post available globally on the entire website without the need to use a query loop. And basically, in this “Franchise Data” post type, we only have one post with just those fields – where the opening hours and the address are. So the post type is available on both websites, but the information can be changed locally.
And here too you can see a very big benefit of Global Content and all this dynamic architecture. Filling in these contents is super easy – it’s just some fields to fill out, images to upload – so you can’t really do anything wrong. You don’t need to be a WordPress expert or designer to do that. And the information automatically gets displayed in the way it is supposed to be on the website.
And you can even combine that with conditional content, for example, and create a situation where, for example, in this post type, you include some radio buttons to select from option A, B, or C – and then on a page level, you have a conditional section that, in relation to this post meta data, displays different content. So the content editor in the backend only has to click “Do I want to have A, B, or C?” – and in the frontend, automatically different content is displayed.
And this content can also again be managed globally.
And you can go even further and restrict the backend access in a way that each user can only see those parts they can actually edit in the backend. So you can create a super intuitive and restricted environment for your customers, for example.
So this was the overview of Global Content. As you see, it’s a very powerful feature with lots and lots of opportunities. And as always with powerful features and lots of opportunities, this also comes with a little bit of risk – because if you change something here, you might also change it on 50 connected websites. And maybe you don’t know what you’re doing.
Was this article helpful?