The Goal: To replace the sidebar on all sites across my network with content loaded from a plugin, across all themes.

I need a way of over-riding the sidebar/main widget area on all sites across my network.

I have written a plugin which generates the sidebar with a function call, but how can I get this content to completely replace the sidebar? At present I can only call a hook as get_sidebar() happens, not replace that action.

add_action('get_sidebar', 'my_get_sidebar', 11);

Additionally, this makes my sidebar appear on all sidebars on the page, I only want it to overwrite the main one (sidebar-one?) and have the others left blank.

2 Answers 2


You should look into having your sidebars utilize the remove action function.

Then you can remove a sidebar and replace it in a function any number of ways.

For instance (this examples using a conditional based on a page called some-page.

function change_sidebar_yay() {
    if ( is_single('some-page') ) {
        remove_action( 'old_sidebar', 'your_function' ); //this is sidebar you want removed
        add_action('get_sidebar', 'my_get_sidebar', 11);


The old_sidebar and your_function is the name and the function name of the sidebar you want removed, you will have to look in your theme to find the actual values the theme author used ( usually in functions.php but not always).

Also if the theme is hardcoded or does not create sidebars using hooks/actions this will not work.

  • Could you define what 'old_sidebar' and 'your_function' should be? I essentially want to stop get_sidebar()
    – Dunhamzzz
    Commented Apr 13, 2011 at 15:09
  • Updated the answer to be more clear
    – Wyck
    Commented Apr 13, 2011 at 15:14
  • I need this to work across all themes, meaning I can't pick and choose from a theme file, is it impossible in this case?
    – Dunhamzzz
    Commented Apr 13, 2011 at 15:18
  • It's not impossible but you will have to create a network wide plugin, so it will effect all network themes even if they are different.
    – Wyck
    Commented Apr 13, 2011 at 16:16
  • That's exactly what I want, for i to happen network-wide, but all themes have different names for widgets so it will be impossible?
    – Dunhamzzz
    Commented Apr 14, 2011 at 8:56

not sure, but perhaps can the plugin Widget Logic be a good starting point to develop your function from?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.