Skip to content
This repository has been archived by the owner on Jan 16, 2024. It is now read-only.
/ soil Public archive

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

License

Notifications You must be signed in to change notification settings

roots/soil

Repository files navigation

Soil

Packagist Packagist Downloads Build Status Project Status: Unsupported – The project has reached a stable, usable state but the author(s) have ceased all work on it.

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 instead.

Requirements

Prerequisite How to check How to install
PHP >= 5.6.x php -v php.net

Installation

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

via Command-line

If you're using Composer to manage WordPress, add Soil to your project's dependencies.

composer require roots/soil

Then activate the plugin via wp-cli.

wp plugin activate soil

via WordPress Admin Panel

  1. Download the latest zip of this repo.
  2. In your WordPress admin panel, navigate to Plugins->Add New
  3. Click Upload Plugin
  4. Upload the zip file that you downloaded.

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 & 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

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 https://txfx.net/wordpress-plugins/nice-search/
     */
    'nice-search',

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

Contributing

Contributions are welcome from everyone. We have contributing guidelines to help you get started.

Community

Keep track of development and community news.