PHPackages                             roots/soil - 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. roots/soil

Abandoned → [roots/acorn-prettify](/?search=roots%2Facorn-prettify)ArchivedWordpress-plugin[Utility &amp; Helpers](/categories/utility)

roots/soil
==========

A WordPress plugin which contains a collection of modules to apply theme-agnostic front-end modifications

4.1.1(3y ago)1.0k1.8M—4.6%173[20 issues](https://github.com/roots/soil/issues)13MITPHPPHP &gt;=5.6.0

Since Apr 1Pushed 2y ago80 watchersCompare

[ Source](https://github.com/roots/soil)[ Packagist](https://packagist.org/packages/roots/soil)[ Docs](https://roots.io/plugins/soil/)[ Fund](https://roots.io/plugins/soil/)[ Patreon](https://www.patreon.com/rootsdev)[ RSS](/packages/roots-soil/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (30)Used By (13)Security (1)

Soil
====

[](#soil)

[![Packagist](https://camo.githubusercontent.com/54d3d457a388daf8a56f1646d2933c712a54e7881ab1ada8aafe130b9c7d01fb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f726f6f74732f736f696c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/roots/soil)[![Packagist Downloads](https://camo.githubusercontent.com/514cc5d803460678ec6437c4dbe19c395885818691e30de6b821c3e14a944021/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f726f6f74732f736f696c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/roots/soil)[![Build Status](https://github.com/roots/soil/workflows/Compatibility%20Checks/badge.svg)](https://github.com/roots/soil/workflows/Compatibility%20Checks/badge.svg)[![Project Status: Unsupported – The project has reached a stable, usable state but the author(s) have ceased all work on it.](https://camo.githubusercontent.com/331694f3a97141a01bc7712420624ed97603f90b3a7d1a0e464cd3f74272bf57/68747470733a2f2f7777772e7265706f7374617475732e6f72672f6261646765732f6c61746573742f756e737570706f727465642e737667)](https://www.repostatus.org/#unsupported)

A WordPress plugin which contains a collection of modules to apply theme-agnostic front-end modifications.

Caution

This plugin is no longer maintained. Use [Acorn Prettify](https://github.com/roots/acorn-prettify) instead.

Requirements
------------

[](#requirements)

   Prerequisite How to check How to install     PHP &gt;= 5.6.x `php -v`  [php.net](http://php.net/manual/en/install.php)   Installation
------------

[](#installation)

You can install this plugin via the command-line or the WordPress admin panel.

### via Command-line

[](#via-command-line)

If you're [using Composer to manage WordPress](https://roots.io/using-composer-with-wordpress/), add Soil to your project's dependencies.

```
composer require roots/soil
```

Then activate the plugin via [wp-cli](http://wp-cli.org/commands/plugin/activate/).

```
wp plugin activate soil
```

### via WordPress Admin Panel

[](#via-wordpress-admin-panel)

1. Download the [latest zip](https://github.com/roots/soil/releases/latest) of this repo.
2. In your WordPress admin panel, navigate to Plugins-&gt;Add New
3. Click Upload Plugin
4. Upload the zip file that you downloaded.

Modules
-------

[](#modules)

- **Cleaner WordPress markup**
    `add_theme_support('soil', 'clean-up');`
- **Disable REST API**
    `add_theme_support('soil', 'disable-rest-api');`
- **Disable asset versioning**
    `add_theme_support('soil', 'disable-asset-versioning');`
- **Disable trackbacks**
    `add_theme_support('soil', 'disable-trackbacks');`
- **Google Analytics**
    `add_theme_support('soil', ['google-analytics' => 'UA-XXXXX-Y']);`
- **Move all JS to the footer**
    `add_theme_support('soil', 'js-to-footer');`
- **Cleaner walker for navigation menus**
    `add_theme_support('soil', 'nav-walker');`
- **Convert search results from `/?s=query` to `/search/query/`**
    `add_theme_support('soil', 'nice-search');`
- **Root relative URLs**
    `add_theme_support('soil', 'relative-urls');`

And in a format you can copy &amp; paste into your theme:

```
/**
 * Enable features from Soil when plugin is activated
 * @link https://roots.io/plugins/soil/
 */
add_theme_support('soil', [
    'clean-up',
    'disable-rest-api',
    'disable-asset-versioning',
    'disable-trackbacks',
    'google-analytics' => 'UA-XXXXX-Y',
    'js-to-footer',
    'nav-walker',
    'nice-search',
    'relative-urls'
]);
```

### Module options

[](#module-options)

Soil 4 introduced support for options on some modules.

Full annotated list of features and options```
/**
 * Enable features from Soil when plugin is activated
 * @link https://roots.io/plugins/soil/
 */
add_theme_support('soil', [
    /**
     * Clean up WordPress
     */
    'clean-up' => [
        /**
         * Obscure and suppress WordPress information.
         */
        'wp_obscurity',

        /**
         * Disable WordPress emojis.
         */
        'disable_emojis',

        /**
         * Disable Gutenberg block library CSS.
         */
        'disable_gutenberg_block_css',

        /**
         * Disable extra RSS feeds.
         */
        'disable_extra_rss',

        /**
         * Disable recent comments CSS.
         */
        'disable_recent_comments_css',

        /**
         * Disable gallery CSS.
         */
        'disable_gallery_css',

        /**
         * Clean HTML5 markup.
         */
        'clean_html5_markup',
    ],

    /**
     * Disable WordPress REST API
     */
    'disable-rest-api',

    /**
     * Remove version query string from all styles and scripts
     */
    'disable-asset-versioning',

    /**
     * Disables trackbacks/pingbacks
     */
    'disable-trackbacks',

    /**
     * Google Analytics
     */
    'google-analytics' => [
        /**
         * This is to go live with GA.
         *
         * This should probably be false in non-production.
         */
        'should_load' => false,

        /**
         * Google Analytics ID
         *
         * This is also known as your "property ID" or "measurement ID"
         *
         * Format: UA-XXXXX-Y
         */
        'google_analytics_id' => null,

        /**
         * Optimize container ID
         *
         * Format: OPT-A1B2CD (previously: GTM-A1B2CD)
         *
         * @link https://support.google.com/optimize/answer/6262084
         */
        'optimize_id' => null,

        /**
         * Anonymize user IP addresses.
         *
         * This might be required depending on region.
         *
         * @link https://github.com/roots/soil/pull/206
         */
        'anonymize_ip',
    ],

    /**
     * Moves all scripts to wp_footer action
     */
    'js-to-footer',

    /**
     * Cleaner walker for wp_nav_menu()
     */
    'nav-walker',

    /**
     * Redirects search results from /?s=query to /search/query/, converts %20 to +
     *
     * @link http://txfx.net/wordpress-plugins/nice-search/
     */
    'nice-search',

    /**
     * Convert absolute URLs to relative URLs
     *
     * Inspired by {@link https://web.archive.org/web/20180529232418/http://www.456bereastreet.com/archive/201010/how_to_make_wordpress_urls_root_relative/}
     */
    'relative-urls',
]);
```

Contributing
------------

[](#contributing)

Contributions are welcome from everyone. We have [contributing guidelines](https://github.com/roots/guidelines/blob/master/CONTRIBUTING.md) to help you get started.

Community
---------

[](#community)

Keep track of development and community news.

- Participate on the [Roots Discourse](https://discourse.roots.io/)
- Follow [@rootswp on Twitter](https://twitter.com/rootswp)
- Read and subscribe to the [Roots Blog](https://roots.io/blog/)
- Subscribe to the [Roots Newsletter](https://roots.io/subscribe/)
- Listen to the [Roots Radio podcast](https://roots.io/podcast/)

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity64

Solid adoption and visibility

Community46

Growing community involvement

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 55.6% 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 ~117 days

Recently: every ~173 days

Total

27

Last Release

1386d ago

Major Versions

3.9.0 → 4.0.02020-08-30

PHP version history (3 changes)3.0.0PHP &gt;=5.3.0

3.3.0PHP &gt;=5.4.0

4.0.0PHP &gt;=5.6.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/f3f71fa88954b93f55af5e121f1d8c38d240a0d17712c092a389bcccffa34415?d=identicon)[retlehs](/maintainers/retlehs)

![](https://avatars.githubusercontent.com/u/2104321?v=4)[QWp6t](/maintainers/QWp6t)[@QWp6t](https://github.com/QWp6t)

---

Top Contributors

[![retlehs](https://avatars.githubusercontent.com/u/115911?v=4)](https://github.com/retlehs "retlehs (188 commits)")[![QWp6t](https://avatars.githubusercontent.com/u/2104321?v=4)](https://github.com/QWp6t "QWp6t (71 commits)")[![swalkinshaw](https://avatars.githubusercontent.com/u/295605?v=4)](https://github.com/swalkinshaw "swalkinshaw (10 commits)")[![S1SYPHOS](https://avatars.githubusercontent.com/u/12161504?v=4)](https://github.com/S1SYPHOS "S1SYPHOS (9 commits)")[![bostondv](https://avatars.githubusercontent.com/u/133814?v=4)](https://github.com/bostondv "bostondv (7 commits)")[![Jones-S](https://avatars.githubusercontent.com/u/7059580?v=4)](https://github.com/Jones-S "Jones-S (5 commits)")[![coliff](https://avatars.githubusercontent.com/u/1212885?v=4)](https://github.com/coliff "coliff (4 commits)")[![kalenjohnson](https://avatars.githubusercontent.com/u/2036520?v=4)](https://github.com/kalenjohnson "kalenjohnson (4 commits)")[![chesio](https://avatars.githubusercontent.com/u/2021167?v=4)](https://github.com/chesio "chesio (4 commits)")[![petrpacas](https://avatars.githubusercontent.com/u/7289816?v=4)](https://github.com/petrpacas "petrpacas (3 commits)")[![alexsomeoddpilot](https://avatars.githubusercontent.com/u/5588412?v=4)](https://github.com/alexsomeoddpilot "alexsomeoddpilot (3 commits)")[![einkoro](https://avatars.githubusercontent.com/u/1577833?v=4)](https://github.com/einkoro "einkoro (3 commits)")[![vinkla](https://avatars.githubusercontent.com/u/499192?v=4)](https://github.com/vinkla "vinkla (2 commits)")[![austinpray](https://avatars.githubusercontent.com/u/2192970?v=4)](https://github.com/austinpray "austinpray (2 commits)")[![briggySmalls](https://avatars.githubusercontent.com/u/11054133?v=4)](https://github.com/briggySmalls "briggySmalls (2 commits)")[![bryanwillis](https://avatars.githubusercontent.com/u/4042621?v=4)](https://github.com/bryanwillis "bryanwillis (2 commits)")[![DrewAPicture](https://avatars.githubusercontent.com/u/995399?v=4)](https://github.com/DrewAPicture "DrewAPicture (2 commits)")[![Foxaii](https://avatars.githubusercontent.com/u/1690407?v=4)](https://github.com/Foxaii "Foxaii (2 commits)")[![irazasyed](https://avatars.githubusercontent.com/u/1915268?v=4)](https://github.com/irazasyed "irazasyed (2 commits)")[![kharysharpe](https://avatars.githubusercontent.com/u/278654?v=4)](https://github.com/kharysharpe "kharysharpe (2 commits)")

---

Tags

wordpress-pluginwordpress

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/roots-soil/health.svg)

```
[![Health](https://phpackages.com/badges/roots-soil/health.svg)](https://phpackages.com/packages/roots-soil)
```

###  Alternatives

[tgmpa/tgm-plugin-activation

TGM Plugin Activation is a PHP library that allows you to easily require or recommend plugins for your WordPress themes (and plugins).

1.8k222.5k13](/packages/tgmpa-tgm-plugin-activation)[aristath/kirki

Extending the WordPress customizer

1.3k73.0k4](/packages/aristath-kirki)[afragen/git-updater

A plugin to automatically update GitHub, Bitbucket, GitLab, or Gitea hosted plugins, themes, and language packs.

3.3k1.6k](/packages/afragen-git-updater)[justintadlock/hybrid-carbon

God-like post featured image script.

202.5k](/packages/justintadlock-hybrid-carbon)[typisttech/wp-admin-notices

A simplified OOP implementation of the WordPress admin notices

141.2k](/packages/typisttech-wp-admin-notices)

PHPackages © 2026

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