Copy a menu, or several menus, from a source blog to one or more target blogs.

Generally, menu items are all converted to custom (static) URLs that will point to the source blog. There are two options to modify this behaviour: child post ID translation and taxonomy translation.



If you wish to give access to the add-on to more than just network admins, use theĀ broadcast_menus_access filter.

Child post ID translation

If a menu item on the source blog points to a broadcast post, and the post exists as a child on the target blog, then the menu item URL is modified to point to the child post.

The the broadcasted post has not been broadcasted to the target blog, the menu item is converted to a custom URL pointing to the source blog.


The cleanup tab can be used to delete duplicate items, or invalid items.

Duplicate a menu

If you wish to duplicate a menu, in the menu item manipulation tab: select the item you wish to duplicate, select the same blog you are on and choose the rename action.

Do not change URL in menu item

There is a snippet to prevent the add-on from automatically modifying the item’s URL, keeping the original URL.

Item manipulation

This feature is used when one wants to insert / remove broadcasted menu items from lots of child blogs. The menu item will be broadcasted and its place in the menu, parent and order wise, will be exactly duplicated on each child blog.

Taxonomy translation

Similarly, if a taxonomy (category, tag, etc) on the source blog exists on the target blog, the URL is modified to point to the taxonomy on the target blog.

If no taxonomy with the same slug is available on the child blog, the menu item is converted to a custom URL pointing to the taxonomy on the source blog.

The link you followed has expired

If you see this error message when copying or manipulating menus, you’ve got a conflict with a theme or plugin. If the fix snippet doesn’t solve your problem, you’re going to have to debug the problem by selectively disabling plugins or themes until the error disappears. Then contact me to see if I can make the fix permanent.


If you are using UberMenu menu segments or dynamic posts, you might want to look at the Broadcast UberMenu add-on.


If your menu does not come out the way you want it, try disabling WPML? There seems to be a conflict with that plugin when copying menus as of 2020-05-28.

Where to buy

This add-on is a part of the following packs:


    1. I am unfamiliar with UberMenus, but if we assume that UM uses normal WordPress menus then it should work fine.

  1. Not working if broadcast needs more than 30 secs (or whatever your default timelimit on that server ist). Please set_time_limit(0) and restore afterwards. Thanks.
    1. Interesting suggestion. I’ll add it in the next version of the add-on.

    1. Could you e-mail me a debug dump of the menu sync so that I can see what Broadcast is doing and what need to be done to replicate and fix it on my end?

  2. Works great!! I have a multisite with 15 blogs and 10 menus/blog. The Menus add-on together with the UberMenu add-on saved me incredibly much time. I could simply copy the Uber menus to the other blogs. Amazing!
  3. The “Override the position” is not working for me.
    I have a menu with sub menus like
    1 2 5 6
    3 7
    4 8
    If I choose to add my page at position 3 or 4 It will automatically be added in the menu between 2 and 5.
    1. From what I understand, you wanted to add the item as a subitem of 1, but it ended up on the same menu level.

      This is usually due to item 1 not being a broadcasted and linked page.

      If you would like further help, enable Broadcast debug mode, manipulate the menu item and send me the debug text so we can look at it together to figure out what’s wrong.

Leave a Reply

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