PHPackages                             seothemes/child-theme-updater - 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. seothemes/child-theme-updater

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

seothemes/child-theme-updater
=============================

314PHP

Since Aug 16Pushed 6y agoCompare

[ Source](https://github.com/seothemes/child-theme-updater)[ Packagist](https://packagist.org/packages/seothemes/child-theme-updater)[ RSS](/packages/seothemes-child-theme-updater/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Child Theme Updater
===================

[](#child-theme-updater)

Allows modified child themes to receive automatic updates without losing changes. It works by duplicating the child theme before running an update, excluding the vendor directory. Once the update is complete, the duplicate style.css version number is updated and then all of the duplicated files are copied back to the new theme version, except for the vendor directory. Basically the only files that are updated are in the vendor directory, everything else is untouched.

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

[](#installation)

**Composer (recommended)**

Run the following command from the child theme root directory:

```
composer require seothemes/child-theme-updater
```

**Manual**

You could probably manually copy and paste the `child-theme-updater.php` file somewhere in your project but it's not recommended. Take the time to learn the basics of Composer and use that method instead.

Usage
-----

[](#usage)

Child Theme Updater is automatically loaded when installed with Composer.

Require the `child-theme-updater.php` file in your project, or alternatively instantiate the `ChildThemeUpdater` class with the following code (the class is automatically loaded by Composer):

```
$child_theme_updater = new \SeoThemes\ChildThemeUpdater\Updater();
$child_theme_updater->run();
```

It does not include an actual theme update checker, for this we recommend [Plugin Update Checker](https://github.com/YahnisElsts/plugin-update-checker) for publicly hosted repositories, or Easy Digital Downloads [Software Licensing](https://easydigitaldownloads.com/downloads/software-licensing/) for private, licensed themes.

It's purpose is to prevent the loss of user customizations made to a child theme during the update process.

By default, it will only allow the `vendor` directory of the child theme to be updated. The `child_theme_updater_skip` filter can be used to change or add extra directories, e.g:

```
add_filter( 'child_theme_updater_skip', 'my_custom_directory' );
/**
 * Add `core` to the list of updatable directories.
 *
 * @since 1.0.0
 *
 * @param array $defaults List of directories that are changed during an update.
 *
 * @return array
 */
function my_custom_directory( $defaults ) {
	return array_merge( [ 'core' ], $defaults );
}
```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/55b9ce7d3453d6c0c149cd77f4441a19bf692d968bf58b7f3dbc3cf9450c2051?d=identicon)[seothemes](/maintainers/seothemes)

---

Top Contributors

[![seothemes](https://avatars.githubusercontent.com/u/24793388?v=4)](https://github.com/seothemes "seothemes (7 commits)")

### Embed Badge

![Health badge](/badges/seothemes-child-theme-updater/health.svg)

```
[![Health](https://phpackages.com/badges/seothemes-child-theme-updater/health.svg)](https://phpackages.com/packages/seothemes-child-theme-updater)
```

###  Alternatives

[geniusts/laravel-hijri-dates

Hijri dates package for Laravel

2722.5k](/packages/geniusts-laravel-hijri-dates)[elaniin/findable

An SEO add-on for Statamic.

131.4k](/packages/elaniin-findable)

PHPackages © 2026

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