Upgrading to v14

If you are migrating from WordPress to Altis, check out the migrating guide first.

To upgrade to Altis v14, edit your composer.json and change the version constraint for altis/altis and any local environment modules to ^14.0.0.

{
    "require": {
        "altis/altis": "^14.0.0"
    },
    "require-dev": {
        "altis/local-server": "^14.0.0"
    },
    "config": {
        "platform": {
            "php": "8.0"
        }
    }
}

Once you have made these changes run composer update and then run the wp altis migrate command:

# For cloud environments
wp altis migrate

# For local server
composer server cli -- altis migrate

Changes to the Altis platform

We’re making some major changes to the way we build and deliver the Altis platform.

The primary change is that we have un-bundled several parts of the Altis platform, with these features being available through plugins instead. This includes the third-party plugins we bundle, as well as a some of our core modules.

These changes will allow us to deliver more value faster, and will provide you with more control over upgrades.

Features provided in earlier versions will continue to be supported per our long-term support policy.

Digital experience tools are moving to a plugin

Future improvements to the analytics module, Experience Blocks and Global Blocks, and more will be delivered through the new Altis Accelerate plugin. Learn more at https://www.altis-dxp.com/accelerate/.

Breaking Changes

Modules removed

Extended CPTs

Altis v14 no longer includes the johnbillion/extended-cpts package. If your project requires it — if you are calling register_extended_post_type() or register_extended_taxonomy() in your code — you can include it by adding it as a dependency in your top-level composer.json file.

# Add Extended CPTs support
composer require johnbillion/extended-cpts

Workflows and Editorial Comments

Altis v14 no longer includes the workflows functionality. If you want to use that functionality, you need to add the framework to your project. In your top level project folder, add the humanmade/workflows framework package.

# Add Workflows package
composer require humanmade/workflows

This provides the framework to create your own workflow as well as the "Editorial Comments" functionality.

Altis Analytics also used the Workflows functionality to provide notifications of Experiment results and so on. If you wish to reproduce that behaviour, you can use the example in this GitHub Gist.

Clone and Amend functionality

Altis v14 no longer provides Yoast Duplicate Post plugin that provided "Clone" and "Amend" functionality. However, you can install the off-the-shelf plugin in your project's composer.json file.

## Add the Yoast Duplicate Post plugin
composer require wpackagist-plugin/duplicate-post

Note: The plugin uses the terms "Clone" and "Copy to a new draft" instead of "Clone" and "Rewrite & Republish" instead of "Amend". Otherwise, the functionality is the same.

Publication Checklist

The Publication Checklist feature has been removed from Altis v14. If you wish to use that functionality you can add the humanmade/publication-checklist package to your project.

# Add publication checklist example
composer require humanmade/publication-checklist

This will provide you with the framework to write your own publication checklist. If you want to use the previous Altis demo functionality as a starting point, take a look at the Demo GitHub repository

WordPress SSO

Altis no longer natively supports using an external WordPress site as a Single Sign On server. There are a number of off-the-shelf plugins providing this functionality. Or you can roll your own perhaps using Delegated Auth library as a starting point.

// This example code is a starting point assuming you `require "humanmade/delegated-oauth2"` in your composer.json

define( 'HM_DELEGATED_AUTH_REST_BASE', 'https://your-oauth-server-url.tld/wp-json/' );
define( 'HM_DELEGATED_AUTH_CLIENT_ID', 'abc123xyz456' );
define( 'HM_DELEGATED_AUTH_ACCESS_TOKEN_CACHE_TTL', 60);
require_once __DIR__ . '/vendor/humanmade/delegated-oauth/plugin.php';

Multilingual Module

The Multilingual Module has been removed from Altis v14. This provided no specific functionality. Rather some documented guidance. To add multilingual capability to your Altis project you can continue to use off-the-shelf plugins such as MultilingualPress.

Authorship

The Authorship plugin has been removed from Altis v14. If you wish to use that functionality you can add the open source humanmade/authorship package to your project.

# Add publication checklist example
composer require humanmade/authorship

Robots.txt Support

Altis no longer includes support for a custom robots.txt file. Instead, you can use WordPress' built-in support for robots.txt If you previously had some custom rules in the file .config/robots.txt in the root of your project, you can add those rules to the standard robots.txt returned from WordPress by hooking in to the robots_txt filter.

add_filter( 'robots_txt', 'my_extra_robots_txt_rules', 10 );

/**
 * Add extra robots.txt rules.
 *
 * @param string $content robots.txt file content generated by WordPress.
 *
 * @return string robots.txt file content including custom configuration.
 */
function my_extra_robots_txt_rules( $content ) {

    return $content . <<<ROBOTS

User-agent: Googlebot 
Disallow: /example-sub-folder/

User-agent: * 
Disallow: *.rss$

Sitemap: https://your-domain.tld/special-sitemap.xml

ROBOTS;
}

Sitemaps support

Altis no longer includes support for additional sitemaps functionality via the Yoast SEO plugin. Instead, you can use the built-in functionality provided out of the box by WordPress, which is enabled automatically. Additionally, several off-the-shelf plugins (including Yoast SEO) provide functionality to enhance or replace WordPress' functionality.

Yoast SEO Plugin

Altis no longer provides the Yoast SEO plugin. However, you can install the off-the-shelf plugin in your projects composer.json file.

## Add the Yoast SEO plugin
composer require wpackagist-plugin/wordpress-seo

If you are using the premium version of the plugin, follow the instructions on the Yoast website .

Lazy loading via GaussHolder functionality

As WordPress provides lazy loading of images by default Altis no longer provides that functionality. See the Lazy Loading announcement for more details.

If you still require the Gaussholder image placeholder functionality, you can add humanmade/Gaussholder to your project.

## Add Gaussholder library
composer require humanmade/gaussholder

Then hook into the gaussholder.image_sizes filter.

add_filter( 'gaussholder.image_sizes', function ( $sizes ) {
    $sizes['medium'] = 16;
    $sizes['large'] = 32;
    $sizes['full'] = 84;
    return $sizes;
} );

Note: You can experiment to determine the best sizes (blur radius) to use. See the documentation on GitHub.

Headline Features

WordPress 6.1

WordPress 6.1 brings with it further refinement of the site building experience. Site creation is now more intuitive. Several writing-focused improvements will delight your content creators. New design tools for more control. Additionally, there is improved accessibility, and performance.

The WordPress 6.1 Field Guide is a great place to learn about what's new. Here are some of the highlights:

  • Design tools for more consistency and control
  • More responsive text with fluid typography
  • WordPress 6.1 includes a new time-to-read feature showing content authors the approximate time-to-read values for pages, posts, and custom post types.
  • Enhanced Accessibility

Altis Core improvements

A number of modules and libraries have been updated to incorporate important bug fixes and improvements.

Documentation

Some of our developer focused documentation has been clarified and improved, taking on board feedback from our customers and partners. There is now a documentation lint command for your custom modules.

Altis CLI

We have launched a new tool, Altis CLI for running Altis utilities and commands. It is currently in beta and we would love you to try it out and send us any feedback.

To install it, you need node version v18 or later.

# Install globally:
npm install -g @humanmade/altis-cli

# Run it:
altis-cli

Detailed infrastructure metrics & graphs

We have added detailed infrastructure metrics to the Altis Dashboard. These metrics include Requests, Error rates, Response times, cache evictions and more.