Skip to content

White-Label

Rebrand the ThemePlus options panel with your own theme or agency identity.

Rebrand the ThemePlus options panel with your own theme or agency identity.

Overview

ThemePlus is designed to disappear into your theme. Every visible reference to “ThemePlus” in the admin panel — the menu label, page title, admin bar link, and menu icon — can be replaced with your own theme’s name and branding using themeplus_framework_config(). Your end users will see your theme’s own settings panel and never know ThemePlus is powering it.

White-label configuration is part of the standard themeplus_framework_config() call — there is no separate branding API.

Complete White-Label Example

📄<code>php
add_action( 'after_setup_theme', function () {

    if ( ! function_exists( 'themeplus_framework_config' ) ) {
        return;
    }

    $theme = wp_get_theme();

    themeplus_framework_config([
        // Identity — generates menu/page title automatically if not set explicitly
        'display_name'    => $theme->get( 'Name' ),
        'display_version' => $theme->get( 'Version' ),

        // Database — must be unique per theme
        'opt_name'        => 'nijhum_options',

        // Admin menu — fully renamed to your theme
        'menu_slug'       => 'nijhum-settings',
        'menu_title'      => __( 'Nijhum Settings', 'nijhum' ),
        'page_title'      => __( 'Nijhum Theme Options', 'nijhum' ),
        'menu_icon'       => 'dashicons-admin-appearance',
        'menu_position'   => 61,
        'capability'      => 'edit_theme_options',

        // Features
        'admin_bar'       => true,
        'show_search'     => true,

        // i18n
        'text_domain'     => 'nijhum',
    ]);

} );

What Gets Rebranded

When configured, the following elements reflect your theme’s identity:

ElementWhat changes
Admin sidebar menu labelShows your menu_title
Admin page browser tabShows your page_title
Admin menu iconShows your menu_icon (Dashicon or custom SVG)
Admin bar linkShows your display_name — visible when admin_bar: true
Menu positionPlaced at your menu_position in the sidebar
Database keyOptions stored under your opt_name

The underlying framework, field behavior, REST API, and all PHP functions remain unchanged — only the visible identity is replaced.

Using a Custom SVG Icon

The menu_icon key accepts a base64-encoded SVG data URI — the same format WordPress core uses for custom menu icons:

$svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="black" d="..."/></svg>';

themeplus_framework_config([
    'menu_icon' => 'data:image/svg+xml;base64,' . base64_encode( $svg ),
    // ...
]);

Use fill="black" in your SVG — WordPress automatically recolors it to match the admin color scheme. A transparent or white fill will not be recolored correctly.

Auto-generated Titles

If you provide display_name but omit menu_title and page_title, ThemePlus generates them automatically:

  • menu_title → "{display_name} Settings"
  • page_title → "{display_name} Options"

Both strings are translatable via the themeplus text domain. If you need full control over the wording — or need them in your own text domain — pass them explicitly as shown in the complete example above.

i18n Convention

ThemePlus translates its own internal fallback strings using the themeplus domain. Every string you pass into themeplus_framework_config() — including menu_titlepage_title, and any field title strings — should be wrapped in __() with your theme’s own text domain. The plugin never translates your theme’s config strings.

📄<code>php
// Correct — your theme translates its own strings
'menu_title' => __( 'Nijhum Settings', 'nijhum' ),

// Wrong — ThemePlus domain should not be used for your theme's strings
'menu_title' => __( 'Nijhum Settings', 'themeplus' ),

Capability and Access

The capability key controls who can access the panel and all ThemePlus REST API endpoints — they always use the same configured value:

📄<code>php
// Administrators only (WordPress default for options)
'capability' => 'manage_options',

// Administrators + users with Theme Editor role
'capability' => 'edit_theme_options',

Default is manage_options. Change to edit_theme_options if your theme is designed to be managed by non-admin users.

ThemeForest and Commercial Themes

For ThemeForest themes, the recommended approach is:

  1. Set display_name to $theme->get('Name') so it automatically matches whatever the theme author named their theme
  2. Set a unique opt_name using the theme slug to avoid collisions: 'opt_name' => sanitize_title( $theme->get('Name') ) . '_options'
  3. Require ThemePlus via TGM Plugin Activation so buyers install it from your theme package
  4. Never hardcode theme-specific strings with the themeplustext domain — use your theme’s own domain throughout

Notes

  • White-label configuration does not affect option storage — values are always stored under your opt_name, completely independent of any display names.
  • All ThemePlus PHP functions, action hooks, and filter names remain prefixed with themeplus_ regardless of white-label configuration — the white-label applies to the visible UI only.
  • The admin_bar link label uses display_name — keep it concise so it fits comfortably in the WordPress admin bar.
  • Always set a unique opt_name per theme. If two themes share the same key their settings will collide in the database, regardless of how differently their white-label is configured.

On This Page