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.