Plugin Directory

Child Theme Configurator

When using the Customizer is not enough - Create a child theme from your installed themes and customize styles, templates, functions and more.


  • Fixes related to testing if CTC Pro is installed.


  • change packer class to use standard < 5.4 array syntax


  • Loading dictionaries on demand
  • Reversed key/value dictionary structure for huge memory improvement
  • Added packer class to flatten multidim arrays for huge memory improvement
  • Reduced key name lengths throughout
  • Improved data validation on inputs
  • Require minimum Pro version ( Pro users only )
  • Move html output to separate view includes
  • Move theme mod routines to own functions


  • Fix: preview not parsing parent styles correctly when minimized.
  • Fix: cast argument to array in sort functions.
  • Updated Child Theme Configurator language template.


  • Updated child theme preview class to use is_theme_active and other methods to eliminate conflicts with Jetpack and any other plugin that references the customize manager.


  • Updated child theme preview class to send origin headers and run customize_preview_init action along with some other actions.


  • Added logic conditions in preview class to help prevent Analyzer from failing in some cases
  • Enabled theme zip file export for any selected theme independent of theme currently loaded in Configurator
  • Fixed bugs present with servers not running Apache with SuExec
  • Fixed issue with Windows servers that do not return C: with filesystem paths


  • Automatically set priority of enqueue hook based on value from parent theme
  • Made file scan routine more efficient
  • Support for background-image as base64 data
  • Tweaked analyzer signals


  • Updated language template and de_DE files
  • Fix: case where child stylesheet link was not being added resulting in "This child theme does not load a Configurator stylesheet" notice
  • Fix: fatal error in debug mode
  • Minor bug fixes


  • New Theme Analyzer automatically checks for issues and determines correct settings
  • Step by step setup of Parent/Child settings
  • Simplified parent stylesheet handling options
  • Option to write new child theme styles to a separate stylesheet
  • Uses WordPress style dependencies to ensure correct child theme stylesheet load order
  • Automatically repairs themes that use outdated stylesheet handling methods
  • Parses parent theme files and only displays templates that can be be overridden by child themes
  • Numerous minor bug fixes

  • Fix: regression bug in 1.7.9 causing new property menu to fail


  • Fix: use nonce when retrieving front-end html to parse default additional stylesheets
  • Refactored classes to make Child Theme Configurator more lightweight on front end


  • Fix: disable autoload on configuration data options
  • Fix: normalize media query and add to menu when added via raw css


  • Fix: Margin and Padding shorthand generated incorrectly.

  • Addressed case where parent or child theme is in subdirectory.
  • Minimized admin CSS.


  • Sanitize child theme slug
  • Remove cascade load order comments from generated CSS
  • Set admin background to prevent theme override

  • Refactored background normalization function to better follow CSS specification.
  • Check child theme exists function case-insensitive.
  • Changed chldthmcfg.init() call to fire on load instead of .ready() to prevent JS conflicts


  • Uses spectrum color picker to support transparency and named colors.
  • Refactored entire system to support fallback values for any property.
  • Fix path when duplicating child theme on first run
  • New Feature: "delete child values" button - easily revert custom styles in child theme stylesheet

  • Will not write child theme stylesheet if error detected in functions.php

  • Fixed minified JS


  • Restored multisite admin menu link under Tools by popular demand
  • Automatically Network enables new child theme on creation
  • Fix for FTP notice - now uses PHP_OS constant to detect win vs nix
  • Added duplicate child theme feature


  • added dismiss option to warnings by popular demand.
  • Changed @import tab to "Web Fonts." @import statements are automatically converted to enqueued external links.
  • Added "Enqueue both parent and child stylesheets" option to enable child theme overrides without using @import.
  • Added checks for hard-coded link tags in header template to help resolve incorrect stylesheet load order.
  • Fix: "Enqueue child stylesheet" now passes correct value.

  • Fix: hide called before iris init
  • Fix: @import not being written on rebuild/configure
  • Fix: min height on property/value panel
  • Only prune child theme selectors on rename


  • Removed conflicting wistia javascript link


  • New Feature: Enqueue child theme stylesheet option for themes that do not load it.
  • New Feature: Child Theme and Author website, description and tag fields.
  • Fix: Redesigned UI Javascript using jQuery objects for better browser memory management.
  • Fix: Child Theme Stylesheet version is timestamped to force browser reload after changes.

  • Fix: Empty functions file created causing inserted markers to be output to browser.
  • Fix: check for closed PHP tag in functions file prior to inserting markers

  • Fix: undefined constant LILAEAMEDIA_URL
  • Fix: logic to determine whether to display config notice


  • Fix: incorrect path generation and validation on Windows servers
  • Added error handling and notification to prevent jQuery conflicts and out of memory conditions
  • Fix: removed max-height on property/value overlay
  • Added debug option


  • New Feature: Copy selector button for Raw CSS textarea on Query/Selector tab.
  • Fix: Menus rendering incorrectly for RTL locales
  • Fix: Border-top etc. not being written correctly to stylesheet
  • Fix: Refactored ajax semaphore logic and flow


  • New Feature: Better child theme handling for multisite. Moved interface to Themes menu and check for network enabled.
  • Fix: Restrict child theme configurator access to install_themes capability
  • Fix: Preview links to Themes admin if not network enabled to prevent 'Cheatin, uh?' error.
  • Fix: only users with "install_themes" capability have access to Child Theme Configurator. This resolves permission issues with both multisite and single site installs. MULTISITE USERS: The Admin HAS MOVED to Network Admin > Themes > Child Themes for better handling for multisite (network) installs.

  • Fix: Regular expression introduced in version 1.6.2 parses selectors incorrectly.


  • Fix: replaced wp_normalize_path with class method to support legacy WP versions
  • Fix: support for multiple layered background images
  • Fix: background:none being parsed into gradient origin parameter
  • Fix: support for data URIs
  • Fix: support for *= and ^= notation in selectors


  • Fix: add check if theme uses hard-wired stylesheet link and alert to use @import instead of link option
  • Fix: conflicts with using jQuery UI from CDN - using local version of 1.11.2 Widget/Menu/Selectmenu instead
  • Fix: using wp-color-picker handle instead of iris as dependency to make sure wpColorPicker() methods are loaded
  • Fix: copy parent theme widgets logic is different when child theme is active


  • New Feature: option to load parent stylesheet using wp_enqueue_style (link), @import or none.
  • Thanks to cmwwebfx and Shapeshifter3 for pushing me on this
  • New Feature: automatically-generated slug and name
  • New Feature: restore from backup and reset options
  • New Feature: backup files to "Child Theme Files" on Files Tab so they can be deleted
  • New Feature: Added new theme chooser select menu with screenshot, theme info and link to live preview.
  • Fix: Admin scripts now only load when CTC page is being viewed.
  • Fix: parent CSS preview to correctly display all parsed parent stylesheets in sequence
  • Fix: Refactored throughout for maintainability


  • New Feature: Load imported stylesheets into the CTC admin so web fonts can be previewed.
  • Set preview swatch to z-index -1 to prevent it from covering up the controls
  • Spread config data across multiple option records to prevent out of memory errors with large stylesheets.
  • Do not automatically select Bootstrap CSS files as additional stylesheets to (greatly) reduce overhead.
  • Add jQuery UI styles that are no longer being loaded by default in the WP admin (autoselect menus).


  • Fixed a bug in the way zero values are handled that was breaking css output in certain situations
  • Added regex filter for non-printable (e.g., null) characters in input strings

  • Fixed a bug introduced in v1.5.2(.1) that copied all of the parent styles to the child theme stylesheet. This should only be an issue for 'background-image' styles that reference images in the parent theme and do not have child theme overrides.
  • Rolled back changes to the javascript controller that introduced a number of type errors.
  • Tweaked preview ajax call to handle ssl.

  • Automatically set additional stylesheets to parse based on parent theme links in head.
  • Render parent CSS including additional stylesheets


  • Added copy option to Parent/Child tab to assign menu locations, sidebars/widgets, custom header, background, and other options to new Child Themes.


  • Refactored CTC to use the WP_Filesystem API.
  • Non suExec configurations will now require user credentials to add, remove or update Child Theme files.
  • Added the ability for you to make the files writable while editing and then make them read-only when you are done.
  • You can also set your credentials in wp-config.php: http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants


  • Removed backreference in main CSS parser regex due to high memory usage.


  • Fixed uninitialized variable in files UI.


  • Feature: export child themes as zip archive
  • Added transform to list of vendor properties
  • Bug fixed: parser not loading multiple instances of same @media rulesets
  • Refactored uploader to use wp core functions for compatibility and security
  • Increased CHLD_THM_CFG_MAX_RECURSE_LOOPS to 1000 to accommodate complex parent frameworks

  • Fix: javascript bug

  • Fix: regression bug - sanitizing broke raw input selectors


  • Fix: escape quotes in text inputs. This has bugged me for a while now.
  • Fix: Escape backslash for octal content values. Thanks Laurent for reporting this.
  • Fix: Normalize colors to lowercase and short form when possible to prevent duplicate entries in the data


  • Refactored the way CTC caches updates and returns them to the UI controller to reduce memory consumption.
  • Prevent out of memory fatals when generating new child themes.
  • Changed "Scan Parent for Additional Stylesheets" to individual checkbox options for each file with a toggle to show/hide in the Parent/Child tab.
  • Added automatic update of form when Parent Theme is changed.
  • Pre-populate Parent/Child form when parent slug is passed to CTC options.


  • updated parser to match selectors containing parentheses and empty media rulesets


  • Tweaked the Files tab options and added check for DISALLOW_FILE_EDIT
  • Removed automatic @import rules for additional stylesheets that are loaded.
  • Fixed bug caused by new jQuery .css function handling of empty css values (preview swatch).


  • New Feature: Theme Files tab:
  • Copy parent templates to child themes to be edited using the Theme Editor.
  • Remove child theme templates.
  • Upload child theme images.
  • Remove child theme images.
  • Upload child theme screenshot.


  • Fixes a bug with the way the @import data is stored that threw errors on php 5.3 and corrupted v1.3.2 @import data.


  • New Feature: option to scan parent theme for additional stylesheets. This allows CTC to be used with themes such as "Responsive" by CyberChimps.
  • New Feature: automatically copies parent theme screenshot to child.


  • Fixed unquoted regex pattern in file path security check function. Thanks to buzcuz for reporting this.


  • Updated help tab content. Added additional sanitization of source and target file paths.


  • Changed CSS preview to retrieve directly from WordPress Admin instead of remote http GET to prevent caching issues.
  • Added loading icon for CSS preview.
  • Fixed JS type error on backup toggle.
  • Improved extensibility throughout.


  • Replace PHP short tags with standard codes.


  • New Features: You can now rename selectors in place from the Query/Selector panel. Made stylesheet backup optional. Bugs fixed: Incorrect parsing of background position when '0', fixed type error when background image url value is removed.


  • Bugs fixed: "star hack" properties no longer throwing js error. Important flag now works on borders and gradients.


  • New features: Link to Query/Selector tab from specific Property/Value selector, new property focus on adding new property. Bugs fixed: clear Query/Selector inputs when loaded selector is empty, use latest min.js script.


  • Added check for writability before attempting to create child theme files to avoid fatal error on servers not running suEXEC. Fixed a bug in the ctc_update_cache function that was throwing a fatal JS error when new media queries were saved via the Raw CSS input. Configurator now adds functions.php file to child theme when it does not exist.


  • Added reorder sequence and important flag functionality. Fixed bug where multiple inputs with same selector/property combo were assigned the same id. Fixed bug in the shorthand encoding routine.


  • Added tutorial video to help tabs.


  • Added call to reset_updates() before update_option() to prevent serialization errors.


  • Query/Selector panel now defaults to 'base'
  • Fixed bug causing background-image with full urls (http://) to be parsed as gradients
  • Fixed bug causing property menu to throw error when selector has no properties


  • Fixed sort bug in shorthand parser that was returning properties in wrong order


  • Fixed bug that assumed lowercase only for theme slugs. (Thanks to timk)
  • Fixed update redirect to execute on first run


  • Small bug fix to javascript (casting number to string)


  • Fixed major bug where inputs containing '0' were being ignored
  • Removed "no leading digits" requirement for theme slug
  • Change query sort function to keep parent order of queries without device width rules
  • Fixed gettext calls to use static namespace parameter
  • Auto populate child theme inputs when existing theme is selected
  • Correctly remove border when values are blanked
  • Fixed duplicate "new property" bug on Query/Selector panel
  • added timestamp to backup file
  • Added encode_shorthand function to recombine margin/padding values when all 4 sides are present


  • Corrected parsing for certain backgrounds and gradients (e.g., supports hsla color syntax)
  • Handle empty selectors
  • Ajax load for menus and updates
  • Clean up Parent/Child form UI and validation
  • Streamlined UI overall


  • Initial release.

Requires: 4.0 or higher
Compatible up to: 4.6.1
Last Updated: 2 months ago
Active Installs: 100,000+


4.8 out of 5 stars


8 of 9 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

1 person says it works.
1 person says it's broken.

0,1,0 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,3,3 100,1,1
100,1,1 100,2,2