Mirror Widgets
4 min read Updated
Mirror Widgets lets you build content once and show it in many places. You build each Mirror Widget in Page Builder. When you update it, every place that shows it updates too. Use it for content that repeats across your site, such as a banner, a call to action, contact details or social media icons.
Requirements
- SiteOrigin Premium
- Page Builder by SiteOrigin
- Optional: SiteOrigin Widgets Bundle. It adds the SiteOrigin Mirror Widget widget and block. Without it, you can show Mirror Widgets with the shortcode only.
Go to SiteOriginPremium Addons and activate Mirror Widgets. A Mirror Widgets item then shows in the WordPress admin menu. The Manage Mirror Widgets button on the addon card also opens the list.
Create a Mirror Widget
- Go to Mirror Widgets and click Add Post.
- Enter a title. The title identifies the Mirror Widget in the admin. It doesn’t show on your site.
- Build the content in Page Builder. You can add rows, columns and widgets, and use row, column and widget styles, the Live Editor, History and Layouts, as on a page.
- Click Publish.
Only published Mirror Widgets show in the list of the SiteOrigin Mirror Widget.
You can’t add a SiteOrigin Mirror Widget inside a Mirror Widget. It isn’t in the Add Widget list when you edit a Mirror Widget.
Show a Mirror Widget
You can show a Mirror Widget in four ways.
Page Builder: Add the SiteOrigin Mirror Widget widget to a Page Builder layout in the Classic Editor or in the SiteOrigin Layout block. Choose the Mirror Widget from the drop-down list.
Block Editor: Add the SiteOrigin Mirror Widget block. It is in the SiteOrigin category of the block inserter. Choose the Mirror Widget from the drop-down list.
Widget areas: Add the SiteOrigin Mirror Widget to any theme or plugin widget area.
Shortcode: Paste the Mirror Widget’s shortcode into any content that runs shortcodes.
The widget and the block need the SiteOrigin Widgets Bundle. The shortcode doesn’t.
Shortcode
Each Mirror Widget has a shortcode with its post ID. For example:
[mirror_widget id="123"]
You can copy the shortcode from two places:
- The Shortcode column on the Mirror Widgets list.
- The Mirror Widget Shortcode box in the sidebar when you edit a Mirror Widget.
Click the shortcode field to select the shortcode, then copy it.

Update a Mirror Widget
Go to Mirror Widgets and open the Mirror Widget. Change the content and click Update. Every widget, block and shortcode that shows this Mirror Widget shows the new content.
Don’t change the slug. The SiteOrigin Mirror Widget widget and block save the slug of the Mirror Widget you choose. If you change the slug, they lose the link and show nothing. When you click the slug’s Edit button, this warning shows: “Warning! Editing this slug will dissociate any Mirror Widgets using this layout.” Click Cancel to keep the slug. Shortcodes use the post ID, so a slug change doesn’t affect them.
Copy a Mirror Widget
You can start a new Mirror Widget, or a page, from the layout of an existing Mirror Widget.
- Create a new Mirror Widget, or edit the page.
- In Page Builder, click Layouts.
- Click the Clone: Mirror Widgets tab.
- Choose the Mirror Widget and click Insert.
The copy is a separate layout. Later changes to the original don’t change the copy.
A Mirror Widget That Shows Itself
A Mirror Widget can’t show inside itself. This can happen, for example, when a Mirror Widget holds a text widget with its own shortcode.
- When you save a Mirror Widget that contains a SiteOrigin Mirror Widget set to itself, a notice shows: “This Mirror Widget references itself and won’t loop-render on the front end.”
- On your site, this message shows in place of the repeated Mirror Widget: “This Mirror Widget can’t be displayed here because it would repeat inside itself.”
To fix it, remove the widget or shortcode that points back to the same Mirror Widget.
Advanced Customizations
Add PHP snippets with a plugin such as Code Snippets, or in a child theme’s functions.php file.
Sort the Mirror Widget list
The siteorigin_premium_mirror_widget_names filter changes the list in the SiteOrigin Mirror Widget. The filter gets an array. Each key is a Mirror Widget slug. Each value is its title. A Mirror Widget with no title shows as so_mirror_widget_ followed by its slug, for example so_mirror_widget_footer-banner. By default, the newest Mirror Widget is first. This example sorts the list by title:
add_filter( 'siteorigin_premium_mirror_widget_names', function( $mirror_widgets ) {
asort( $mirror_widgets );
return $mirror_widgets;
} );