PHPackages                             rarst/toolbar-theme-switcher - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. rarst/toolbar-theme-switcher

ActiveWordpress-plugin[Utility &amp; Helpers](/categories/utility)

rarst/toolbar-theme-switcher
============================

Adds WordPress toolbar menu that allows users to switch theme for themselves

1.5(9y ago)208.0k↓47.3%91MITPHP

Since May 16Pushed 9y ago4 watchersCompare

[ Source](https://github.com/Rarst/toolbar-theme-switcher)[ Packagist](https://packagist.org/packages/rarst/toolbar-theme-switcher)[ Docs](https://github.com/Rarst/toolbar-theme-switcher)[ RSS](/packages/rarst-toolbar-theme-switcher/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (1)Versions (5)Used By (1)

Toolbar Theme Switcher — for WordPress
--------------------------------------

[](#toolbar-theme-switcher--for-wordpress)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/5e69a0840667ef3b03efaba3ca9ffe2f5baeee3046b5d8a2b34d546285636006/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f52617273742f746f6f6c6261722d7468656d652d73776974636865722f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/Rarst/toolbar-theme-switcher/?branch=master)

Plugin provides toolbar (admin bar) menu to quickly switch between available themes.

Theme choice is individual for user, saved in cookies and doesn't affect current theme of the site.

Plugin is multisite-aware — it will only list themes allowed for site and save choice for each site separately.

Installation
------------

[](#installation)

Download plugin archive from [releases section](https://github.com/Rarst/toolbar-theme-switcher/releases).

Or install in plugin directory via [Composer](https://getcomposer.org/):

```
composer create-project rarst/toolbar-theme-switcher --no-dev

```

Frequently Asked Questions
--------------------------

[](#frequently-asked-questions)

### I switched to a broken theme!

[](#i-switched-to-a-broken-theme)

You can reset via special URL parameter `example.com?tts_reset` or by clearing browser’s cookies for the site.

### I don't want all themes to show...

[](#i-dont-want-all-themes-to-show)

Filter `tts_allowed_themes` and unset unwanted themes.

Example code (removes Twenty Ten theme from the list):

```
add_filter( 'tts_allowed_themes', 'hide_twenty_ten' );

function hide_twenty_ten( $themes ) {

	unset( $themes['Twenty Ten'] );

	return $themes;
}
```

### Who can see and use the menu?

[](#who-can-see-and-use-the-menu)

Users with `switch_themes` capability (administrators by default).

Filter `tts_capability` (capability name) or `tts_can_switch_themes` (boolean) to customize.

### I don't want theme name in toolbar? | I want something else in toolbar?

[](#i-dont-want-theme-name-in-toolbar--i-want-something-else-in-toolbar)

Filter `tts_root_title` to control what it says.

### I have a lot of themes and it's becoming sluggish...

[](#i-have-a-lot-of-themes-and-its-becoming-sluggish)

Plugin needs to build full list of available themes, which isn't typically needed on each page load and can be relatively slow with a lot of disk access.

When using Object Cache, caching theme data in WordPress can be enabled via:

```
add_filter( 'wp_cache_themes_persistently', '__return_true' );
```

Since it doesn't handle invalidation (will need to wait or flush cache when themes are added/removed), plugin isn't enabling it and leaves choice up to the user.

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~308 days

Total

4

Last Release

3506d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/689ddc4f33541ac4a001d247e560f8805d219a95e7e42a16e0d22b9409f385cb?d=identicon)[Rarst](/maintainers/Rarst)

---

Top Contributors

[![Rarst](https://avatars.githubusercontent.com/u/737584?v=4)](https://github.com/Rarst "Rarst (43 commits)")

---

Tags

wordpresswordpress-pluginwordpress

### Embed Badge

![Health badge](/badges/rarst-toolbar-theme-switcher/health.svg)

```
[![Health](https://phpackages.com/badges/rarst-toolbar-theme-switcher/health.svg)](https://phpackages.com/packages/rarst-toolbar-theme-switcher)
```

###  Alternatives

[roots/bedrock

WordPress boilerplate with Composer, easier configuration, and an improved folder structure

6.5k463.8k2](/packages/roots-bedrock)[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.5k10](/packages/helsingborg-stad-municipio)[roots/wp-stage-switcher

WordPress plugin that allows you to switch between different environments from the admin bar

383469.2k3](/packages/roots-wp-stage-switcher)[vinkla/wordplate

The WordPlate boilerplate

2.2k5.3k](/packages/vinkla-wordplate)[mediawiki/maps

Adds various mapping features to MediaWiki

84152.3k3](/packages/mediawiki-maps)[civicrm/civicrm-drupal-8

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

19251.4k3](/packages/civicrm-civicrm-drupal-8)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
