Switcher – Frontend theme customizer for WordPress (Miscellaneous)

Switcher is set out to solve one problem; persistent theme changes that lasts until the user closes the browser while having as few HTTP transfers as possible. Why is it needed? Only a few days ago from writing this, I wanted to see how a theme would look with certain settings, the problem was that every time I changed page to see how a new one would look with certain settings, all the settings were removed and I had to do it all over again. It was frustrating so I set out to create a very advanced theme customizer.

Persistent Stylechanges
Your potential buyer doesn’t need to redo the stylechanges on page change to see how your page would look like using the settings that he/she wants

Multiple stylesheetchanges independently
Show the user how your site would look like with a different skin or with different fonts.

Minimize HTTP footprint
Sessionstorage is used locally if the user has a modern browser to avoid sending cookies with every HTTP request. If the user is running an old browser cookies will be used.

Set view permission [new]
If you only want to show the switcher for your client you can now do so. See the new settings page under “Settings” in the WordPress admin.


  • Enable, disable, load and unload stylesheets on demand, without ever removing the stylesheets themselves (to minimize the requests). You can have multiple groups of stylesheets that are changed independently, one set for colored skins, one set for fonts etc.
  • Change backgrounds and remove backgrounds easily, supports different styles of backgrounds, repeated backgrounds, like patterns (in different ways) or pagewide cover background.
  • Change classes based on elements and ids so the user can see how your site would look with a different header, on a phone, without breadcrumbs, footer etc.
  • Switcher uses sessionstorage (if there is support for it), which improves performance because cookies doesn’t need to be sent to the server every time. If the user doesn’t support sessionstorage (introduced 2009), then switcher falls back and uses cookies to save settings. Sessionstorage doesn’t ask for permission unlike localstorage so there are no disturbing interruptions in the UI.
  • Switcher supports by default three positions, left, right, and on top. If you want to place it in any other way it just requires some css editing (which should be easy to edit, since I’ve commented the CSS file).
  • Styles can be reset (IE7 resets everything but the background), but if you know your default background you can use that to make it work in IE7 as well.
  • The script is loaded in wp_footer() template tag so it doesn’t impact the loading of the site.
  • Switcher can be open or closed on pageload.
  • Beautiful flat UI which goes well with todays trends.
  • Supports retina screens (all icons are available @2x).
  • Switcher runs as a plugin so it doesn’t impact your workflow and/or new editions of your theme.
  • Extensive documentation included.


Version 1.03

* New feature, roles, you can now choose to only display styleswitcher
to a user with a particular role (Everyone, Subscriber, Contributor,
Author, Editor, and Administrator).
* You can change who you want to display switcher for by going to
Settings > Switcher, in the wordpress admin
* Three new skins; blue, coral, and white
* Homogenized dropdowns and improved aesthetics across all browsers
* Corrected margin for title on smaller devices (969px-768px)

Version 1.02
Changed the way how coloured boxes, backgrounds, and patters are showed.
They now have a visual default style that has a 100% opacity. So you can
see which one is selected. This requires a change in how they are called
by adding the attribute:

“selector” : selector

in the constructor of the jQuery object for the corresponding types. For
older jQuery versions < 1.9 so could I’ve used .selector but its now removed,
deprecated since 1.7, and I want this plugin to be future safe for
many years ahead.

Version 1.01

New feature Callbacks
* See documentation

Version 1.0

Initial (private) release

Leave a Reply

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