Franchising with WordPress and Broadcast


You have a franchise with several chain stores.

A lot of the content is the same for the chain stores: services offered, terms of service, etc.

The chain store owners should be spending their time building the brand, not administering the site.

Broadcast makes franchise content controllable!

  1. Set up a blog for each store / location.
  2. Broadcast the common content.
  3. Update the content when necessary.

That’s it!

You’ve now freed up time for your franchisees to go work with more important things than keeping the site updated.

But wait! There’s more!

Broadcasting content common to a lot of blogs is simple enough, but there are nuances to franchising with Broadcast.

Handling lots of blogs / stores / locations

If you have a lot of blogs, several thousands, perhaps, you’re going to encounter PHP timeouts that limit how many blogs you can broadcast to at the same time.

To solve this problem, the Queue add-on will do as the name says and put the broadcasts into a queue that can be processed in the background. The add-on has been used to broadcast posts to over 3000 blogs (overnight), so just imagine the time savings there. Especially if you made a typo and need to correct it afterwards.

Another problem you might encounter when you have enough blogs is forgotten to select some when broadcasting new content. Here, the Blog Groups 2 add-on will help you efficiently group and select blogs.

Group selector in the broadcast meta box

Locking content

If you have content that only admins should be allowed to edit, then the Lock Post add-on can help.

Lock Post checkbox in the meta box

It protects the child post from being edited by anyone other than network admins and yourself.

Allow franchisees to make local changes

If you have a page that is common to all blogs.

  • Generally, the page is the same for everybody and needs to stay updated.
  • But some admins want to edit the page and customize it locally.

Here is where the Protect Child Properties add-on comes into play. It allows content to be broadcasted and kept updated only on those blogs that haven’t updated the content themselves.

Settings in the meta box

If the last checkbox in the protect list is not checked, the selected content will be protected on each child blog.

If checked, the selected content will only be protected only if there have been local changes made. If not, the content is replaced with that from the parent post.

This can be shown in the illustration below:

The Terms of Service page is broadcasted to several franchise locations. Most of the franchise owners, 1, 2 and 65000 are fine with the terms sent from central.

Two of the locations prefer this own version, so when a new version of the Terms page is broadcasted, the content on location 3 and 562 is kept unchanged.

This protection is also useful when using the Menus add-on to broadcast menus.

Menu copy options


  1. Can this be used for this scenario:

    Franchiser site is the main site / brand.

    Each Franchisee site needs to be able to have their own logo, about us, and contact page, but the rest of the site, including the home page (except for the logo) should remain the same as the Franchiser main site.

    Each time content is changed or new content / pages are added to the main franchiser site, the content automatically changes on all the franchisees’ sites.

    Let me know.

    Thank you,


    1. Sounds about right. The content in linked posts / pages are updated when the parent post is updated. New content can also be broadcasted to the child blogs, ready for use.

    2. Hello, my use case is pretty much like the Chris case. I would like to confirm if the shared content is only between blogs or it works in multiple sites network as well. If I us multiple sites, when I update the “master site” it will display the new content just in the the site that I select to display that page? Please confirmed if it works in multiple sites or just in blogs.
    3. Broadcast requires a WordPress network to function. The content is sent between blogs/sites on the network.

      The reason I use sites/blogs interchangably is because WordPress itself does so: they first used the term “blogs”, and that’s what their source code says too, then they started switching over the documentation to “sites” – but it’s all still the same network install.

      Does that answer your question?

  2. Hello, In the above example from Chris, what is the capacity this solution/approach can handle? What if the franchisee has 2,000 locations (how much time will it take to make updates/changes? As well, they have active marketing campaigns that is creating a consistent flow of traffic. We really are concerned about scale and latency.

    Thank you,

    1. Broadcasting a page 2000+ times could take a while. Hours, depending on your server configuration. Using the queue and looping http processing (see the queue notes for this) would be the fastest way to broadcast a page, and it can be fired and forgotten instead of having to wait on the editor page for the queue to process.

      But except an update to take an hour or so – but it’s exponentially faster than going to all 2000 dashboards and editing the page yourself.

      And for the queue add-on, whether broadcasting a page to 10, 100, 1000 or 10000 subsites doesn’t matter, resource wise. It’s just going to take longer.

      If that answers your question.

  3. Understood, I really appreciate that. Question that has come up…will this plugin work on sites that are part of a network and individual sites simultaneously? Can we publish and control the same content in both scenarios? Similar to an RSS.
    Thank you,
  4. Hi – need to confirm that Broadcast works for Pages as well as Posts.

    The application I am developing only includes pages — there are no posts — and this functionality is precisely what I need.

    Thanks in advance.


    1. Yepp.

      Posts, pages, other custom post types. To WordPress, they’re all basically the same.

Leave a Reply

Your email address will not be published. Required fields are marked *