WordPress Planet

January 18, 2021

WPTavern: WordPress for Android Previews New Story Posts Feature, Now in Public Beta

WordPress users on Android may have noticed a new prompt in the mobile app for publishing Story posts. This feature is now in public beta in the Android app, ahead of an upcoming launch on the WordPress iOS app. Stories will also coming to the Block editor on WordPress.com in early 2021.

Early access to Story posts is available in version 16.3+ of the app, released in mid-December. The prompt appears at the bottom of the site management screen. Selecting a Story post immediately takes you to your phone’s media where you can add photos or a video.

The mobile app’s implementation of the Stories feature is different from other platforms, like Instagram and Facebook, in several key ways. Most importantly, WordPress stories are not ephemeral. They live permanently on your site and anyone can view them after they are published. WordPress.com’s documentation for the block highlights a few differences:

  • Posts with Stories won’t disappear after 24 hours. 
  • The Story content can be added to and edited after publishing. 
  • Anyone visiting your site can view the Story. 
  • You can share your Story on any platform using the post permalink.

After testing the feature, I can confirm a few more differences. While the WordPress app’s implementation transcends other platforms’ limitations on the duration of the story’s visibility, it lacks basic features that users have come to expect from other apps. It doesn’t support animated gifs, effects, location, stickers, music, and other embellishments that make stories such a creative social medium. At the moment, the only thing you can do is add colored text with a background.

Videos work as Stories, too, but they don’t seem to have the same preview with a thumbnail image. It’s just a generic placeholder for now. That may be something the team is still working on, but I logged an issue on GitHub for it, in case it’s a bug.

In the interest of owning your own content, I can see it being useful to create stories on your own website and share them to other networks. The current implementation is basically a fullscreen slideshow. It is not yet more compelling than what social networks offer, but it looks like WordPress for iOS plans to expand on these features using the open source Kanvas library from Tumblr.

Kanvas makes it possible to add effects, drawings, text, stickers, and make GIFs from existing media or the camera. If you have ever used the Tumblr iOS app then you have seen Kanvas in action in the camera, media editor, GIF maker, and media posting tool. It should make for a more exciting Stories implementation on iOS, with features on par with what users have come to expect from other platforms. Something similar for Android may be in the works and this post will be updated as soon as we receive comments from the mobile team.

by Sarah Gooding at January 18, 2021 11:55 PM under wordpress mobile apps

Gary: WordPress Importers: Getting Our House in Order

The previous post talked about the broad problems we need to tackle to bring our importers up to speed, making them available for everyone to use.

In this post, I’m going to focus on what we could do with the existing technology, in order to give us the best possible framework going forward.

A Reliable Base

Importers are an interesting technical problem. Much like you’d expect from any backup/restore code, importers need to be extremely reliable. They need to comfortable handle all sorts of unusual data, and they need to keep it all safe. Particularly considering their age, the WordPress Importers do a remarkably good job of handling most content you can throw at it.

However, modern development practices have evolved and improved since the importers were first written, and we should certainly be making use of such practices, when they fit with our requirements.

For building reliable software that we expect to largely run by itself, a variety of comprehensive automated testing is critical. This ensures we can confidently take on the broader issues, safe in the knowledge that we have a reliable base to work from.

Testing must be the first item on this list. A variety of automated testing gives us confidence that changes are safe, and that the code can continue to be maintained in the future.

Data formats must be well defined. While this is useful for ensuring data can be handled in a predictable fashion, it’s also a very clear demonstration of our commitment to data freedom.

APIs for creating or extending importers should be straightforward for hooking into.

Performance Isn’t an Optional Extra

With sites constantly growing in size (and with the export files potentially gaining a heap of extra data), we need to care about the performance of the importers.

Luckily, there’s already been some substantial work done on this front:

There are other groups in the WordPress world who’ve made performance improvements in their own tools: gathering all of that experience is a relatively quick way to bring in production-tested improvements.

The WXR Format

It’s worth talking about the WXR format itself, and determining whether it’s the best option for handling exports into the future. XML-based formats are largely viewed as a relic of days gone past, so (if we were to completely ignore backwards compatibility for a moment) is there a modern data format that would work better?

The short answer… kind of. πŸ™‚

XML is actually well suited to this use case, and (particularly when looking at performance improvements) is the only data format for which PHP comes with a built-in streaming parser.

That said, WXR is basically an extension of the RSS format: as we add more data to the file that clearly doesn’t belong in RSS, there is likely an argument for defining an entirely WordPress-focused schema.

Alternative Formats

It’s important to consider what the priorities are for our export format, which will help guide any decision we make. So, I’d like to suggest the following priorities (in approximate priority order):

  • PHP Support: The format should be natively supported in PHP, thought it is still workable if we need to ship an additional library.
  • Performant: Particularly when looking at very large exports, it should be processed as quickly as possible, using minimal RAM.
  • Supports Binary Files: The first comments on my previous post asked about media support, we clearly should be treating it as a first-class citizen.
  • Standards Based: Is the format based on a documented standard? (Another way to ask this: are there multiple different implementations of the format? Do those implementations all function the same?
  • Backward Compatible: Can the format be used by existing tools with no changes, or minimal changes?
  • Self Descriptive: Does the format include information about what data you’re currently looking at, or do you need to refer to a schema?
  • Human Readable: Can the file be opened and read in a text editor?

Given these priorities, what are some options?

WXR (XML-based)

Either the RSS-based schema that we already use, or a custom-defined XML schema, the arguments for this format are pretty well known.

One argument that hasn’t been well covered is how there’s a definite trade-off when it comes to supporting binary files. Currently, the importer tries to scrape the media file from the original source, which is not particularly reliable. So, if we were to look at including media files in the WXR file, the best option for storing them is to base64 encode them. Unfortunately, that would have a serious effect on performance, as well as readability: adding huge base64 strings would make even the smallest exports impossible to read.

Either way, this option would be mostly backwards compatible, though some tools may require a bit of reworking if we were to substantial change the schema.

WXR (ZIP-based)

To address the issues with media files, an alternative option might be to follow the path that Microsoft Word and OpenOffice use: put the text content in an XML file, put the binary content into folders, and compress the whole thing.

This addresses the performance and binary support problems, but is initially worse for readability: if you don’t know that it’s a ZIP file, you can’t read it in a text editor. Once you unzip it, however, it does become quite readable, and has the same level of backwards compatibility as the XML-based format.


JSON could work as a replacement for XML in both of the above formats, with one additional caveat: there is no streaming JSON parser built in to PHP. There are 3rd party libraries available, but given the documented differences between JSON parsers, I would be wary about using one library to produce the JSON, and another to parse it.

This format largely wouldn’t be backwards compatible, though tools which rely on the export file being plain text (eg, command line tools to do broad search-and-replaces on the file) can be modified relatively easily.

There are additional subjective arguments (both for and against) the readability of JSON vs XML, but I’m not sure there’s anything to them beyond personal preference.


The SQLite team wrote an interesting (indirect) argument on this topic: OpenOffice uses a ZIP-based format for storing documents, the SQLite team argued that there would be benefits (particularly around performance and reliability) for OpenOffice to switch to SQLite.

They key issues that I see are:

  • SQLite is included in PHP, but not enabled by default on Windows.
  • While the SQLite team have a strong commitment to providing long-term support, SQLite is not a standard, and the only implementation is the one provided by the SQLite team.
  • This option is not backwards compatible at all.


FlatBuffers is an interesting comparison, since it’s a data format focussed entirely on speed. The down side of this focus is that it requires a defined schema to read the data. Much like SQLite, the only standard for FlatBuffers is the implementation. Unlike SQLite, FlatBuffers has made no commitments to providing long-term support.

WXR (XML-based)WXR (ZIP-based)JSONSQLiteFlatBuffers
Works in PHP?βœ…βœ…βš βš βš 
Performant?βš βœ…βš βœ…βœ…
Supports Binary Files?βš βœ…βš βœ…βœ…
Standards Based?βœ…βœ…βœ…βš  / ❌❌
Backwards Compatible?⚠⚠❌❌❌
Self Descriptive?βœ…βœ…βœ…βœ…βŒ
Readable?βœ…βš  / βŒβœ…βŒβŒ

As with any decision, this is a matter of trade-offs. I’m certainly interested in hearing additional perspectives on these options, or thoughts on options that I haven’t considered.

Regardless of which particular format we choose for storing WordPress exports, every format should have (or in the case of FlatBuffers, requires) a schema. We can talk about schemata without going into implementation details, so I’ll be writing about that in the next post.

This post is part of a series, talking about the WordPress Importers, their history, where they are now, and where they could go in the future.

by Gary at January 18, 2021 10:50 PM under Importers

WPTavern: Kinsta Launches Free Local WordPress Development Tool

Kinsta, a managed WordPress hosting company, announced its local development tool named DevKinsta earlier today. The tool allows developers to spin up new WordPress sites, including multisite support, in moments. Each site is automatically configured with Nginx, PHP, and MySQL.

DevKinsta packages Adminer, an open-source database manager. The system also includes an SMTP server and email inbox for testing outgoing emails locally.

“This is the first version of the tool, let’s say the MVP, but we have a dedicated development team supporting and adding a lot of new features to it,” said Tom Zsomborgi, Kinsta’s Chief Business Officer.

Developers can run and test HTTPS support and enable WP_DEBUG at the flip of a switch. Kinsta web hosting customers can also deploy their sites directly from the interface.

It took me around an hour to get the system set up and running. To be more exact, I spent 53 minutes. Close enough. Between having to sign out, restart my laptop, and waiting for various pieces to install, I at least managed to get a little laundry done in those dull, in-between moments.

Installing DevKinsta on Windows.

The setup process was not a completely pain-free affair. However, the price of admission to use this tool — a little bit of my time — was well worth it.

Let me be clear. I have tested far worse systems. Even with over 15 years of development experience under my belt, I have utterly failed at setting up other local dev environments. For DevKinsta to simply get me to the finish line is a success.

However, I like simple things, and I prefer them to move along relatively quickly. I am accustomed to a 20-minute XAMPP setup. While it may not be as fancy or have the bells and whistles of more sophisticated development tools, it gets the job done and rarely doles out headaches.

The holdup was setting up Windows Subsystem for Linux (WSL 2) and Docker, which are both requirements. Jump-starting DevKinsta itself was a breeze. And, as an old-school XAMPP user, DevKinsta’s ease of use has pulled me in enough to do more than just give it a passing glance. I could actually see myself using this on a day-to-day basis.

In short, I am sold. DevKinsta is a tool all WordPress developers should at least spin up once.

Thus far, the feedback on Twitter has been generally positive. However, Linux users may have to wait a bit because the tool is only available for macOS and Windows at the moment.

“I love seeing companies releasing local development tools but I wish more would offer their services to Linux users,” tweeted WordPress developer Chad McCullough. “There are a lot of us developers out there running Linux.” The Kinsta team responded that the tool will eventually support Linux and that news is forthcoming.

Spinning up a new WordPress site.

The simple and straightforward UI is what makes this tool useful. Most developers do not need overly complicated configurations and options. They simply need to launch an environment that lets them work on their own projects. Anything beyond the basics far too often gets in the way.

DevKinsta makes it easy to launch and manage multiple development installs. Developers can also switch PHP versions via a simple dropdown — versions 7.2 – 8.0 are currently supported.

Site management screen.

The obvious comparison for DevKinsta will be against Local by Flywheel, which has increasingly become a primary tool for many WordPress developers.

Zsomborgi explained why the company thinks DevKinsta is a better option. “In our case, Docker is an important part here. Local doesn’t use virtualization in the background. Local has to install every piece of the environment to the host machine (NGINX, apache, different PHP versions, etc.). DevKinsta encapsulates these technologies into containers. Containers do make things easier for maintaining different applications without interrupting the host OS or installing many of the dependencies that are not required. We pretty much don’t touch the host OS, but have Docker as our main dependency to run the applications on their own environments.”

He said this speeds up the upgrade process and makes it easier to maintain bug fixes and send out security patches. He also said that because each application runs on its own Kernel namespace, any security issues should not affect the host OS.

“If the user is comfortable enough with Docker, he can extend DevKinsta features,” said Zsomborgi. “For example, he can monitor the usage of the container, or the PHP usage specifically as an example with docker monitoring tools that comes out of the box with Docker installation. The user can install any utility inside DevKinsta containers without touching the host OS and use applications that are not supported on Windows, for example.”

One of the use cases he mentioned was installing a benchmark tool to get statistics about site performance. This can be installed inside the Nginx container as a sidecar or separate container.

“In the past, Local didn’t use exactly Docker,” said Zsomborgi. “They used VirtualBox + DockerMachine. We tried it, and it was a bit painful. But without VirtualBox, DevKinsta can be more stable and scalable. So we use Docker without VirtualBox. It also needs virtualization, but nowadays, there are fewer Windows computers that have disabled virtualization by default.”

by Justin Tadlock at January 18, 2021 09:07 PM under kinsta

Gary: WordPress Importers: Stating the Problem

It’s time to focus on the WordPress Importers.

I’m not talking about tidying them up, or improve performance, or fixing some bugs, though these are certainly things that should happen. Instead, we need to consider their purpose, how they fit as a driver of WordPress’ commitment to Open Source, and how they can be a key element in helping to keep the Internet Open and Free.

The History

The WordPress Importers are arguably the key driver to WordPress’ early success. Before the importer plugins existed (before WordPress even supported plugins!) there were a handful of import-*.php scripts in the wp-admin directory that could be used to import blogs from other blogging platforms. When other platforms fell out of favour, WordPress already had an importer ready for people to move their site over. One of the most notable instances was in 2004, when Moveable Type changed their license and prices, suddenly requiring personal blog authors to pay for something that had previously been free. WordPress was fortunate enough to be in the right place at the right time: many of WordPress’ earliest users came from Moveable Type.

As time went on, WordPress became well known in its own right. Growth relied less on people wanting to switch from another provider, and more on people choosing to start their site with WordPress. For practical reasons, the importers were moved out of WordPress Core, and into their own plugins. Since then, they’ve largely been in maintenance mode: bugs are fixed when they come up, but since export formats rarely change, they’ve just continued to work for all these years.

An unfortunate side effect of this, however, is that new importers are rarely written. While a new breed of services have sprung up over the years, the WordPress importers haven’t kept up.

The New Services

There are many new CMS services that have cropped up in recent years, and we don’t have importers for any of them. WordPress.com has a few extra ones written, but they’ve been built on the WordPress.com infrastructure out of necessity.

You see, we’ve always assumed that other CMSes will provide some sort of export file that we can use to import into WordPress. That isn’t always the case, however. Some services (notable, Wix and GoDaddy Website Builder) deliberately don’t allow you to export your own content. Other services provide incomplete or fragmented exports, needlessly forcing stress upon site owners who want to use their own content outside of that service.

To work around this, WordPress.com has implemented importers that effectively scrape the site: while this has worked to some degree, it does require regular maintenance, and the importer has to do a lot of guessing about how the content should be transformed. This is clearly not a solution that would be maintainable as a plugin.

Problem Number 4

Some services work against their customers, and actively prevent site owners from controlling their own content.

This strikes at the heart of the WordPress Bill of Rights. WordPress is built with fundamental freedoms in mind: all of those freedoms point to owning your content, and being able to make use of it in any form you like. When a CMS actively works against providing such freedom to their community, I would argue that we have an obligation to help that community out.

A Variety of Content

It’s worth discussing how, when starting a modern CMS service, the bar for success is very high. You can’t get away with just providing a basic CMS: you need to provide all the options. Blogs, eCommerce, mailing lists, forums, themes, polls, statistics, contact forms, integrations, embeds, the list goes on. The closest comparison to modern CMS services is… the entire WordPress ecosystem: built on WordPress core, but with the myriad of plugins and themes available, along with the variety of services offered by a huge array of companies.

So, when we talk about the importers, we need to consider how they’ll be used.

Problem Number 3

To import from a modern CMS service into WordPress, your importer needs to map from service features to WordPress plugins.

Getting Our Own House In Order

Some of these problems don’t just apply to new services, however.

Out of the box, WordPress exports to WXR (WordPress eXtended RSS) files: an XML file that contains the content of the site. Back when WXR was first created, this was all you really needed, but much like the rest of the WordPress importers, it hasn’t kept up with the times. A modern WordPress site isn’t just the sum of its content: a WordPress site has plugins and themes. It has various options configured, it has huge quantities of media, it has masses of text content, far more than the first WordPress sites ever had.

Problem Number 2

WXR doesn’t contain a full export of a WordPress site.

In my view, WXR is a solid format for handling exports. An XML-based system is quite capable of containing all forms of content, so it’s reasonable that we could expand the WXR format to contain the entire site.

Built for the Future

If there’s one thing we can learn from the history of the WordPress importers, it’s that maintenance will potentially be sporadic. Importers are unlikely to receive the same attention that the broader WordPress Core project does, owners may come and go. An importer will get attention if it breaks, of course, but it otherwise may go months or years without changing.

Problem Number 1

We can’t depend on regular importer maintenance in the future.

It’s quite possible to build code that will be running in 10+ years: we see examples all across the WordPress ecosystem. Doing it in a reliable fashion needs to be a deliberate choice, however.

What’s Next?

Having worked our way down from the larger philosophical reasons for the importers, to some of the more technically-oriented implementation problems; I’d like to work our way back out again, focussing on each problem individually. In the following posts, I’ll start laying out how I think we can bring our importers up to speed, prepare them for the future, and make them available for everyone.

This post is part of a series, talking about the WordPress Importers, their history, where they are now, and where they could go in the future.

by Gary at January 18, 2021 12:25 AM under Importers

January 15, 2021

WPTavern: MapLibre Launches as Official Open Source Successor to Mapbox GL JS

In December, Mapbox shocked its open source contributor community with the news that Mapbox GL JS version 2.0 would be released under a proprietary license. The JavaScript library powers interactive, customizable vector maps on many high profile websites like CNN, The New York Times, Ancestry, Strava, Shopify, Facebook, and more. Older versions remain open source but Mapbox will only be investing in developing new features for the proprietary version going forward.

Multiple parties started their own forks immediately following Mapbox’s announcement. In an effort to avoid fragmentation, the community worked together to merge their ideas under one project. One month later, MapLibre GL is now the official open source successor to Mapbox GL JS. The project’s founders represent a diverse group of companies who relied on the open source software, including MapTiler, Elastic, StadiaMaps, Microsoft, Ceres Imaging, WhereGroup, Jawg, Stamen Design, and more.

“In December 2020, Mapbox released the second version of their JavaScript library for publishing maps online,” MapTiler founder and CEO Petr Pridal said. “However, this time all the new features were overshadowed by a change in the license: previously free as in freedom, it became closed for external contributors and usage was restricted to people with active Mapbox subscriptions. One has to pay even for loading this JavaScript library.”

Pridal said the MapLibre project name is a shortened form of “Map library restarted (or reinvented),” with libre referring to freedom and independence. Its founders agreed that MapLibre should be provider-independent, so developers can load maps from their preferred providers or self-hosted maps.

The community-led fork may also become home to MapLibre GL Native, as contributors are considering a proposal to put MapTiler’s open source fork of Mapbox’s mobile map SDKs for Android and iOS under the MapLibre umbrella.

Mapbox is used by WordPress.com as well as in Jetpack for the Map block. The library is also used in many plugins on WordPress.org, some with tens of thousands of users. Plugin developers who have integrated Mapbox GL JS version 1.13 or older will want to check out the MapLibre project as an open source alternative to Mapbox’s proprietary 2.0 update.

by Sarah Gooding at January 15, 2021 11:51 PM under open source

WPTavern: A Multi-Theme System, the Decade-Long Wait for Grandchild Themes, and Themeless Templates

Around 2010, child theming had finally caught its stride. Bigger theme shops were starting to take note, and some were implementing advanced parent themes that were meant to serve as a “framework” for creating child themes. The theme development community hit a bit of a brick wall amid this explosion of child theming. Grandchild themes became a topic of debate.

One of the use cases for child themes was to protect customizations made by end-users. When the parent theme was updated, those changes remained intact within the child theme. Users could get bug fixes and enhancements without worry. It was an ingenious system.

However, another use case for child themes was to create vast customizations of the parent theme. Many of these child themes were marketed and sold to end-users. The problem? There was no way for users to protect their customizations if and when the developer updated the child theme. WordPress had no grandchild theme concept or any other sort of cascading theme system beyond the parent-child relationship.

So, the problem remained. Unsolved.

Some businesses such as StudioPress and its Genesis parent theme thrived over the years with this system. Others moved along. In reality, child theming became a niche feature that WordPress never expanded upon in any meaningful way. Theme authors were left to their own devices. With the arrival of the customizer and the expansion of page builders, code customizations almost disappeared. Most modifications were handled via an interface launched from the WordPress admin. The average user had little need to DIY their way through custom templates. Thus began child theming’s drizzle into near obscurity.

Gutenberg’s site editor, which will likely land in WordPress this year, had seemed to be the upcoming final blow to the child theming paradigm. Everyone from developers to end-users will be able to roll out custom templates directly from the WordPress admin.

However, should we be rethinking the role of a hierarchical theming system?

Full Site Editing is already introducing an extra level to the hierarchy. Traditionally, WordPress theming had a two-tier template hierarchy. In the future, it will add a tier for user-created templates. If that is possible, why not go ahead and throw in grandchild themes? Or, simply do away with such arbitrary limitations altogether?

A new pull request to the Gutenberg repository essentially creates a multi-theme system. Or, rather, it creates a multi-theme templating system. Aside from the style.css, functions.php, and theme.json files, block-based themes are essentially a collection of templates.

The patch is proposing that users should be able to opt into this multi-template system. They would have the option to keep templates from an old theme around when they switch to a new one. While not currently implemented in the pull request, he also proposes allowing users to clone templates from their old theme.

“In recent months, there have been whispers around the future possibility of multiple themes being active, templates being ‘themeless,’ etc.,” wrote the patch creator. “This branch is an implementation of that. The idea behind this implementation is there can only be one active theme at a time, but the wp_theme taxonomy can be used to link up individual templates / template parts with one or more themes at a time.”

It does not fulfill the dreams of a decade-old grandchild theme system. However, it could provide some precedent for exploring a full hierarchical theme system.

With the simplification and further standardization of how themes work, we should be dusting off old ideas and shoving them into a new light.

Full Site Editing will eventually solve the grandchild theme problem regardless of whether it had intended to. With the new tier of custom user templates, the upgradability problem created years ago will simply disappear. Users will be able to readily update their parent and child themes without fear of losing customizations. WordPress will safely store their custom templates in the database. It will even keep their design changes via the Global Styles system. Maybe, just maybe, child themes will begin to reach their initial height of popularity.

With the proposed system, users could mix and match templates from unrelated themes. If this happens, it begs the question of whether theme templates are even necessary.

Last year, Rich Tabor opened a discussion on the possibility of a single master theme for WordPress. In that system, WordPress would create a set of base templates. Theme authors could simply override the pieces that they wanted. They could even pare themes down to simple style.css and theme.json files.

That almost seems to be a recipe for bland and boring themes. However, if you couple it with a template directory on WordPress.org similar to what GutenbergHub has already introduced, users could pick and choose the templates they want. It could be both wondrous and disastrous, but I would not mind exploring the idea.

WordPress and its Gutenberg project have a lot of options on the table. Theme building could become interesting in the next year or two.

Update: some names have been removed from this post at the request of the people in question. While this is not standard procedure, they were removed because they were not integral to the story in this instance.

by Justin Tadlock at January 15, 2021 09:04 PM under gutenberg

WPTavern: New Local Blueprint Enables One-Click Setup for Testing Full Site Editing

If you haven’t yet tested the Gutenberg team’s progress on the full site editing (FSE) project, WordPress developer Carrie Dils has created a blueprint for Local that makes it easy to jump right in. Full site editing is phase 2 on the Gutenberg roadmap and is one of the main focuses for WordPress core development in 2021. (Check out What Is Full Site Editing and What Does It Mean for the Future of WordPress for a more in-depth look at why it is critical for end users to provide feedback during its development.)

Local is one of the most popular free development tools for WordPress that allows users to set up new testing sites with one click, along with a host of more advanced features. Blueprints make it possible for users to save any site as a Blueprint so that it can be used as a quick start setup option later. The blueprint includes all files, databases, config files, and Local settings. Dils’ full site editing blueprint includes the following:

  • Gutenberg plugin (with “Full Site Editing” experiment enabled)
  • WordPress theme experiments (these are themes with support for full site editing) with the Twenty Twenty-One Blocks theme enabled
  • Gutenberg test data (demo blog posts that use the most common Gutenberg blocks)

Follow Dils’ instructions for downloading and installing the FSE blueprint on MacOS or Windows. Local does not yet have an easy way for installing and sharing blueprints to other Local users, so you will need to add it to the right place within the application’s files. If you find that you don’t have a Blueprints folder, it may be because it is hidden or because you have never created a blueprint before. Once the zip file is in the right location, you will see the full site editing blueprint among the advanced options when you set up a new site:

Once your site is set up, you can start exploring the brave new world of full site editing. (Be prepared – it is far from production ready but FSE is at a critical time in its development where it needs testing from real users to be a success.) The Gutenberg plugin may need to be updated to the latest. Your new site editing playground can be launched from the Site Editor menu item.

On the frontend you will find the Twenty Twenty Blocks theme activated. You can also test using the Twenty Twenty-One (TT1) Blocks theme, which was added to the WordPress.org Themes directory today, or any of the other experimental block based themes included in the blueprint. Click around, explore the template browser, try editing the template parts, change the global styles, and see how it’s coming along.

The current state of full site editing is rough. It’s hard to tell a feature from a bug at times, but once you get familiar with navigating it you might consider joining the FSE Outreach Experiment. This is an effort to test different aspects of site editing in order to ground the interface in real world feedback as it is developed. For the past few weeks, contributors have been testing the interaction between editing a post versus editing templates.

Anne McCarthy posted the first call for testing to the Make Test blog with instructions for participants.

This call for testing is designed to explore the interaction between the two editing experiences (post vs. template editing) to make sure it’s clear when you’re editing each, granular saving works properly, etc. Ultimately, being able to edit templates like index, single, or archive directly is a huge leap forward compared to what’s been possible in the past! Unlocking this level of customization gives you far more control to build the site you want and this call for testing is to help ensure it’s as intuitive as possible.

The second testing challenge should be published soon. Anyone can contribute by following along with the test script and leaving comments on the post or logging them as issues on GitHub. Participants are also invited to join the #fse-outreach-experiment channel on WordPress Slack for updates or questions regarding testing.

by Sarah Gooding at January 15, 2021 08:21 AM under local

January 14, 2021

WPTavern: Show and Hide Content via the Block Visibility WordPress Plugin

Nick Diego’s Block Visibility is not the only plugin to take on the challenge of controlling when blocks are visible on the front end. Other plugins like EditorsKit do a fine job of it. However, Block Visibility is a solution users should not overlook, even if they have already begun testing other options.

Diego first released the plugin in August 2020. Since then, he has added routine updates that have added value without shifting its focus.

One of the biggest reasons to use this plugin is that it is a standalone project. It is purely about doing one thing and doing it well. Its settings are all about giving users complete control over how they want to manage block visibility. From my experience with it, the plugin does its job better than alternatives.

It may not have a large number of installs, but if its five-star rating on WordPress.org is any indication, it at least has a happy user base.

Diego does have plans for a pro add-on. The tentative release date is set for Spring 2021. He seems to be moving forward with that launch after adding some foundational code in the recent version 1.4 release.

“As Block Visibility grows, there will be advanced and/or niche functionality that will be useful for certain users,” wrote Diego in the 1.4 release announcement. “Think integrations with other third-party plugins. There will always be a free version of the plugin but some of these additional features will ultimately be provided by a premium (paid) add-on called Block Visibility Pro.”

In my previous job, one of my primary products focused on membership solutions. There is a seemingly endless number of possibilities that users dream up to control content visibility. I have little doubt that a pro add-on is necessary for catching all of the edge cases.

How the Plugin Works

Block Visibility is easy to use. End-users click a toggle switch, select from a date-picker, or tick a radio box. Their blocks are shown or hidden on the front end based on their selections. It does not get much simpler than that.

The plugin adds a new “Visibility” tab for each block, which displays the visibility controls. The exception to this is for inner blocks. For example, the Columns block has controls, but the inner Column blocks do not. However, this can be enabled for inner blocks via the “Full Control Mode” on the plugin’s settings screen.

There are three primary types of options:

  • Hide the block from everyone.
  • Time-based start and stop dates for displaying.
  • Visibility by user role.
Block Visibility’s controls in the inspector.

Hiding the block from everyone might be useful for users who are testing on a page or for blocks that are a work in progress. Start and stop dates create the potential for drip or trial content on membership-based sites, especially when combined with the role-based visibility options.

These basic options will cover the majority of scenarios that the average user will need them for.

One of the nicer features of the plugin is that it adds a transparent gray overlay, dashed border, and icon to each block that has visibility options set. This is shown when the block is not selected in the editor. It is one of those small touches that make the plugin useful.

Overlay for blocks with visibility options.

There is one confusing piece of the UI. There are two instances where there is a “public” option. That label immediately makes me think that the block should be visible to everyone. However, reading the description is necessary. These options are for showing content to logged-out users only. I would rather see these two options renamed to “logged out” for clarity.

A Promising Future

While Block Visibility is a solid plugin right now, we are barely scratching the surface of what will be possible in the long run. In version 1.4, released two weeks ago, Diego added preliminary compatibility with Full Site Editing. This means visibility options will no longer be confined to the post or page content.

“Once every piece of content on a website is a ‘block,’ you will be able to easily control the visibility of practically anything on a WordPress website,” wrote Diego in the version 1.4 announcement post. “From dynamic navigation menus to user specific headers and footers, the possibilities are endless!”

Gutenberg’s site editor is a beta feature right now, but the plugin’s integration seems to already work well. I ran a quick test to show a custom nav menu to shop customers only. I had no problems on my end.

Setting visibility options for a menu in Gutenberg’s site editor.

Users will not be limited to such basic needs in the future. Imagine showing ads in a sidebar to logged-out users. Imagine adding a time-sensitive holiday sale banner in the header. Imagine designing a homepage template that displays different content to subscribers vs. visitors.

There are ways to do all of this today by piecing various plugins together, using custom shortcodes, or writing code. However, when an entire site is made of blocks, you only need one method to control anything’s visibility. Literally.

by Justin Tadlock at January 14, 2021 10:23 PM under Reviews

January 13, 2021

WPTavern: WordPress Proposal To Align Release Cycle With Industry Standard

Yesterday, Francesca Marano opened a proposal for changing the phases of the core WordPress release cycle. It was a recap of a discussion the began in October 2020. The goal is to align the platform’s phases with the larger development industry standard.

Aside from naming, WordPress has mostly followed the software industry in how it tackles its release cycle. Following a well-known convention can make it easier for developers outside of the WordPress ecosystem to transition into it. It would also allow developers to follow cycles of other projects, many of which are WordPress dependencies. This sort of standardization is generally viewed as a good thing throughout the software development world.

Based on the ongoing discussions since October, there is a consensus on renaming the phases to align with the standard. The following table shows what each phase would be renamed to:

PhaseCurrent NameProposed Name
1Planning and securing team leadsPreliminary Planning
2Development work beginsAlpha
4Release candidateRelease Candidate
5LaunchGeneral release

However, this is a two-part proposal. Simply renaming the phases does not change how the release cycle works. To follow the standard strictly, WordPress would need to change when code is committed too.

How To Handle the Beta Phase

There is one point of contention with how to handle the Beta stage. The standard calls for no additional code changes other than new bug fixes introduced earlier in the cycle. For the WordPress project, this creates a problem.

WordPress will be 18 years old this year. Over the years, it has racked up a ton of older bugs. These are often fixed later in the cycle, sometimes during the Beta stage. These older bugs may not have been a part of the Preliminary Planning phase, but does that mean they should wait until the next release to go in? Strictly following the proposal, they should be put on hold.

It would also introduce a hard freeze on any enhancements set for the release but incomplete.

“I worry that we aren’t allowing space for older bugs that aren’t specific to the planned features in the release,” wrote Josepha Haden in a comment on the initial discussion. “I also worry that by calling hard freeze earlier in the process we narrow the window for feature inclusion too much. I don’t like limiting ourselves to feature specific bugs right now, since that excludes so many of our volunteer contributors. It’s harder to work on features since they are complex and fast-moving, and older bugs present more opportunities for casual contributors.”

On the flip side, there is potential that a bug fix could introduce new, unforeseen bugs. The later it is added during Beta, the less likely such bugs are noticed before the General Release phase. Waiting for the next cycle provides more time for testing.

One of the benefits of this system is that almost no new bugs would be created during Beta. This would allow volunteers to shift more efforts to testing and fixing issues that emerged in Alpha.

WordPress has always marched to the beat of its own drum. It can more closely follow standards while breaking free from strict confines when it makes sense to do so for the project. Beta-stage bug fixes not intended for a particular release could be handled on a case-by-case basis. We have people in leadership positions who are capable of making these calls when they arise. With automatic updates for minor releases, I am less concerned about late-stage bugs.

Tonya Mork proposed two solutions for defect work to continue in and around the release cycle. Both would require that WordPress branch off at Beta, providing contributors an avenue to push forward fixing bugs.

The first proposal calls for an earlier feature freeze, providing two or three weeks before Beta 1. This period at the end of the Alpha phase would be solely dedicated to defect work.

The second solution moves this defect work to overlap the previous release’s Beta and Release Candidate. This allows work to continue during the time between major releases. It could also shorten the overall major release cycle.

This second solution is also consistent with Joost de Valk’s thoughts on handling defect work. “I think we should just branch off earlier, and keep trunk open for normal business,” he said on the proposal. “That way, everything can be worked on all the time, but it won’t be included in the next release depending on when you commit it. That’s fine, every piece of open source software I know in the world works like that, except for WordPress.”

Many plugin and theme developers already find it tough to keep up when changes drop in the Beta or Release Candidate phases. Having a clear and defined point where changes land will benefit the extension ecosystem, also helping end-users in the long run. This second solution would do that.

There is nothing wrong with combining both solutions either. Since the plan would be to branch off at the Beta phase, the second solution is already in place by the act of branching. The real discussion is over whether the project should dedicate a block of time during its Alpha stage that focuses purely on bug fixes.

Comments on the proposal are open through January 20 before moving toward a final decision.

The next proposal: semantic versioning, anyone? Anyone? Is this thing on?

by Justin Tadlock at January 13, 2021 09:52 PM under WordPress

WPTavern: WPScan Can Now Assign CVE Numbers for WordPress Core, Plugin, and Theme Vulnerabilities

WPScan, a security company that maintains a database of WordPress vulnerabilities, has been officially designated as a CVE (Common Vulnerability and Exposures) Numbering Authority (CNA). The company joins 151 organizations from 25 countries that participate in the CVE Program as CNAs. These organizations are authorized to assign CVE Identifiers (CVE IDs) to vulnerabilities within their own distinct scopes of work, contributing to CVE’s list of records for publicly known security vulnerabilities.

WPScan’s scope includes WordPress core, plugin, and theme vulnerabilities. The company has catalogued more than 21,905 vulnerabilities since 2014 in its database, which it makes available to the community through an API. That API is also used by the WPScan Security Scanner plugin, which is installed on 5,000+ websites.

Being designated as a CNA helps WPScan better manage WordPress vulnerabilities by assigning them unique IDs that are recognized across the industry.

“Asking MITRE to assign CVEs for each of our vulnerabilities would have been too time consuming in the past,” WPScan founder and CEO Ryan Dewhurst said. “Although some security researchers will go through this process directly with MITRE, we didn’t due to the volume of vulnerabilities we have to manage. And security researchers only requested them themselves very rarely. The new process means that we ourselves can assign CVE numbers directly to vulnerabilities. This will result in many more WordPress related vulnerabilities being assigned CVE numbers.”

WPScan is a team of three security researchers who come from penetration testing backgrounds and have worked within security consulting for the past 10 to 15 years. The company started with a simple Ruby script in 2011, which identified vulnerabilities in self-hosted WordPress sites. For the past two years, Automattic has sponsored the company’s efforts in maintaining the database, as WPScan has transitioned to become a sustainable business by selling access to its API.

Dewhurst said the company’s customers include “some of the biggest security plugins and hosting companies in the world,” but many of them don’t advertise the fact that use a third-party to source the vulnerabilities. Most of WPScan’s enterprise customers are security plugins, companies, and hosts that integrate data from the vulnerability database into their own products and services.

“Our business is doing well,” he said. “Right now we are trying to find the right balance between being a business and making money, while also benefiting the community as much as possible.”

by Sarah Gooding at January 13, 2021 08:52 PM under wpscan

WPTavern: Google Introduces Performance Report for Google News Publishers

Google has launched a new Search Console performance report for sites that appear in Google News. Publishers can now track clicks, impressions, and CTR for traffic coming from news.google.com and the Google News apps for Android and iOS.

The report helps publishers see how often their articles appear to users in Google News and which ones performed the best. It also includes breakdowns for countries, devices, and dates to give publishers a better overall understanding of how visitors are interacting with their content through Google News. Although the date period defaults to the last three months, the data only goes as far back as December 15, 2020.

In the past, publishers had to submit their sites to be eligible for inclusion in Google News but the policy changed in 2019. Sites are now automatically considered for Top stories or the News tab of Search as long as they “produce high-quality content and comply with Google News content policies.”

This new report does not include stats from the News tab on Google Search. That information was added in July 2020, when Google updated the Performance report section of its Search Console to allow publishers to filter by News. This screen also lets users compare different traffic sources, i.e. Web vs News to see the impact of articles showing up under the News tab.

The new report can be grouped by dimensions to get more specific information with different combinations of date ranges, reader locations, devices, and pages. For example, you can get a detailed look at clicks, impressions, and average CTR on a per country basis. This can also be filtered for one certain article to explore more narrow branches of the content’s reach.

Publishers who are using AMP will want to note that this new report includes data from the canonical URL. If you have multiple versions for different devices, the report contains data for both:

Data will only be shown in the property that contains the canonical URL. Therefore, if you have both AMP and desktop versions of a page, the desktop property (which is usually the canonical property) will contain all the data for both AMP and desktop clicks, impressions, and CTR.

Google has published a help document with more information on configuring the report, data discrepancies, and how to filter and compare data across groups.

by Sarah Gooding at January 13, 2021 03:54 AM under google

January 12, 2021

WPTavern: Ask the Bartender: How to Build WordPress Themes from Scratch?

I would like to ask, what is the best way to learn to create WordPress themes from scratch? I would like to learn, but there seems to be no comprehensive resource for this.

Thanks for any help.


I have been around the WordPress community long enough to remember the days when there were sparse resources available. Those who were just starting out with theme development 15 or more years ago usually resorted to hacking away at an existing WordPress theme. Budding theme authors were building upon the shoulders of those few giants who had already taken the first steps. It was the magic of open-source at work — development learned through the act of forking.

Maybe it is the way I learned. Perhaps it is part nostalgia for those early days of going down an unknown path and arriving at the other side with a creation of all my own. But, I still believe the best way to learn any type of development cannot be found in documentation or books (says the co-author of a development book).

It is learned through trial and error.

It is learned through hours of mangling a project and not stopping until you fix it.

It is learned through sheer force of will, fueled by some innate passion within you that wants to see a project through. It is frustrating, but you keep going because you are having fun.

The best developers I have had the privilege to work with were not always the most knowledgeable. They were seemingly natural problem solvers. However, they did not awake one day with this ability. They earned it through years of tackling real problems.

First and foremost, the best resource for learning to build themes is an existing WordPress theme. Any of the default Twenty* themes are great starting points. Choose one, start making changes via your code editor, refresh your browser, and see what happens. Read the code. Look for patterns across various files.

You will not learn theme development overnight. It will probably take a few months before you are building basic themes from scratch. It will probably be a year before you are actually good at it. However, everyone is different. The amount of time you put into it is a factor. Your preexisting development knowledge and skills can change that. Sometimes, your innate gifts and ability to learn play into it. But, you will get there with a bit of effort.

I will be honest. The old-timers here in the community, those of us who started out early in WordPress’s history, had some help. Tung Do, known as Small Potato at the time, wrote one of the most comprehensive tutorial series on theme development the community has ever had on his now-defunct web design blog. It was an invaluable resource for several years. It was the answer to the missing documentation that everyone was asking for.

Theme development was also far simpler during that time. With a handful of files and templates, you could build something special.

Today, the landscape is much different. If you want to be competitive as a theme shop owner or build custom solutions for clients, you need a broader skillset. Even as a hobbyist, you need to pick up a few more things than you would have a decade and a half ago.

There is good news: the community is teeming with useful resources.

Traditional vs. Block-Based Themes

The theme development market is nearing an inflection point. WordPress will be introducing more and more tools for Full Site Editing in 2021, and this trend will continue in the years beyond. Traditional theme development will be around for a while — likely a few more years. However, block-based themes are the long-term bet. While there is some crossover between the two, they are entirely different systems.

Realistically, you will need to learn both methods, especially if you have financial motives for going down this journey.

However, you should learn traditional theme development first. This will make it easier to transition down the road. There are far more resources available too.

Another issue with learning block-based theme development as a starting point is that you may not know whether you are at fault if something is broken. The features that make up Full Site Editing are in a rough beta stage. The experience is still a partially broken one. Beginner theme authors should not pile onto what can sometimes be a frustrating experience.

It is time to start reading about Full Site Editing and testing block-based themes like Q and Block-Based Bosco. Then, wait for others as they become available in the theme directory.

Resources to Begin Theme Development

Many people will point you to starter themes, command-line scripts, and other automated tools for kick-starting your theme development journey. However, there is no substitute for building a solid foundation.

I will assume you have some basic or intermediate HTML and CSS knowledge under your belt. If not, you should learn to build simple web pages first. Again, there is no substitute for building that foundation. It will carry you through as you get into more advanced topics. Knowing some basic PHP helps too. However, you can hack your way through your first WordPress theme with just WordPress “template tags,” which are technically PHP functions that sound less scary.

Your go-to resource should be the official theme developer handbook.

The breadth of knowledge available there was unavailable for those starting in the early days. You can build a WordPress theme from scratch by simply following along each page in the handbook.

While it was written in 2012, ThemeShaper has a 17-part tutorial series on developing themes from start to finish. With a few exceptions, most of the information in the tutorials is accurate. The underpinning of traditional theme development has not changed much over the years. This includes basic concepts like templates, The Loop, and similar elements.

ThemeShaper’s Theme Development category is a resource any theme author should be subscribed to. The team continues to post up-to-date tutorials on building themes. Recently, they have focused on block-based theme development. I am sure more tutorials are forthcoming as new features related to Full Site Editing unfold.

Of course, search engines are your friends. Run into a problem? I guarantee you are not the first with that specific problem. The solution is documented somewhere across the web.

If you want to begin block-based theme development, you will need to install the Gutenberg plugin for testing. Your resources will be limited. You will need to be a pioneer, mowing a path for others to follow. It will be a rough trek, but it also offers adventures that others have not taken.

WordPress’s block editor handbook has a guide on creating block-based themes. It makes some assumptions about your knowledge level in terms of theme development. Carolina Nymark, one of the Themes Team representatives, has a site called Full Site Editing. It includes an extensive course that is worth taking. There is also the Theme Experiments repository for testing what some people are currently building.

My strongest recommendation is to learn through trial and error while using documentation as a backup when you get stuck. Start playing around with Twenty Twenty or Twenty Twenty-One, the two most recent default WordPress themes. Make changes. Get yourself in trouble and break things. Learn by getting yourself out of whatever hole you have dug. Every failure is part of your path toward success. Most of all, enjoy it.

Now, I will throw this question out to our readers, many of whom are theme authors themselves. Will you share you tips, tricks, and resources for someone who is just starting to build themes?

by Justin Tadlock at January 12, 2021 09:58 PM under Ask the Bartender

Matt: Iceland Film

I wanted to share with you all a short film I made with the help of Stephen Bollinger, with videos I made a few years ago on a photography trip to Iceland with Om and Mark. I hope it provides five minutes of serenity in your day.

by Matt at January 12, 2021 09:46 PM under Asides

WPTavern: Gutenberg’s Faster Performance Is Eroding Page Builders’ Dominance

WordPress’ block editor, colloquially still widely known as Gutenberg, is making inroads into the segment of users who have heavily relied on page builders for years. For the most part, page builder plugins have either declined in growth or stagnated in 2020, with the exception of Elementor. In contrast, block collections with page builder features are gaining more users. Performance is becoming an important factor in this migration.

In a post titled “Damn. Gutenberg Smokes Elementor,” Kyle Van Deusen published benchmarks from his experience building a simple landing page using Elementor and then Gutenberg.

“Like any Elementor user, I’ve become increasingly anxious about the future of Elementor and just how bloated it is,” Van Deusen said. “I think Google PageSpeed Insights agrees.”

After recreating the same design with Gutenberg and GenerateBlocks, Van Deusen saw a small difference in GTMetrix scores.

GTMetrix scores: Elementor vs Gutenberg

He found the most profound difference when testing with Google’s PageSpeed Insights, where Elementor scored 46% on mobile, and 83% on desktop.

“Because I’ve had such poor luck getting any kind of decent scores with Elementor sites (especially on mobile), I’ve given up using this tool,” Van Deusen said. “Not because it’s not a valuable metric (in fact, it may be the most valuable since this is how Google sees things), but because there wasn’t much I could do about it.”

In contrast, the page built with Gutenberg gave him a 94% score on mobile and a 99% on desktop.

“In terms of performance, straight out of the box; Gutenberg absolutely smokes Elementor,” Van Deusen said. “However, each time I’ve taken Gutenberg for a spin, I’ve left frustrated. As soon as I feel like I’m getting the hang of it, eventually the wheels come off and I’m back to installing Elementor.

“But when your PageSpeed Insights scores go from 46% to 94%, it’s time to perk up and pay attention.”

Van Deusen said it took him more time to recreate the design in Gutenberg and he had trouble with mobile views. At the moment, he doesn’t see switching as an advantageous move for his business.

“While I think we can conclusively say, at least for performance, Gutenberg is the clear winner — it’s just not at a point where a guy like me can jump ship,” Van Deusen said.

“Gutenberg is fun to play with, and I enjoy dreaming of the day when it’s viable for me— but I like to put food on my table. Elementor still helps me do that more efficiently.”

In another experiment, WordPress developer Munir Kamal rebuilt Elementor’s homepage in Gutenberg to compare the HTML markup both page builders generate. The page built with Elementor includes 356 div’s in the markup vs 77 for Gutenberg. Kamal found that Elementor generated 796 lines of code vs Gutenberg’s 206 lines, resulting in a difference of 99kb vs 28kb respectively.

In August 2020, DearHive, the makers of the DearFlip WordPress plugin, left CodeCanyon to sell plugins from their own site. DearHive’s company site was built with Elementor, but suddenly Google ranking mattered for their product site now that they were selling independently from CodeCanyon. Deepak Ghimire, a software developer at the company, cited performance as the chief issue that impacted their ranking and drove them to switch to Gutenberg.

“Our page speed went from 83 with Elementor to 98 with Gutenberg,” Ghimire said.

Page builder plugins may still have more features at this point in time, but performance is becoming a critical consideration for those who are doing business online. In May 2021, Google plans to introduce a new ranking signal for Search, based on page experience as measured by Core Web Vitals metrics. Performance is an important part of delivering the kind of scores necessary to pass the Core Web Vitals assessment. This ranking signal update from Google may compel even more site owners to migrate away from slow page builders.

For the past two years, WordPress users have been asking if Gutenberg will replace page builders. It looks more and more likely if the most popular ones remain bloated alternatives and the smaller ones keep on the same trajectory of attrition. It won’t happen overnight, but it is bound to accelerate when full-site editing makes its debut in WordPress core.

For those who build websites for clients, the best way to future-proof your skills is to learn how to build pages within the framework of the block editor and, if you can, learn how to build custom blocks. It’s also a good time to be experimenting with different block collections to streamline your setup so that you don’t have to sacrifice high performance in order to build sites efficiently.

by Sarah Gooding at January 12, 2021 04:15 AM under page builders

Matt: Thirty-seven

I turn 37 today. I look around and I feel incredibly lucky to be writing this after a topsy-turvy year. I have health. I have friends whom I love. These are all good reasons to feel optimistic about the future. A few unconnected thoughts today:

My father had me when he was exactly 13,300 days old, and this year I passed that number of rotations of the Earth.

It’s hard to plan when so much is changing, so resolutions this year haven’t felt the same. But in times like these it’s even more important to plan for the long-term. A look back, once a year, is enough to remind of what remains.

I’m so thankful for the internet. It’s where I learned and practiced my trade. It’s where I connect every day with the most interesting and eclectic group of people I could imagine, a modern day Florence during the Renaissance. I hope to make a lot more internet and enable others to do the same.

Many years ago I said “Technology is best when it brings people together.” This quote has taken on a life of its own on motivational posters and images. When I first said it I think I had in mind WordCamps and meetups and other physical gatherings; this year it transformed for me seeing how technology brought together separated by the pandemic. This year has appeared divisive, so it’s easy to overlook how many times people came together. It’s like the old saying, it’s not how many times you fall, it’s how many times you get up. Fall thirty-six times, get up thirty-seven.

All birthday posts: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37.

by Matt at January 12, 2021 03:07 AM under Birthday

January 11, 2021

WPTavern: EatsWP Brings Virtual Restaurant Menus to the WordPress Block Editor

Yesterday, Jack Kitterhing launched EatsWP, his new restaurant-related WordPress plugin. It is a menu creation system that works in the block editor. It also has a built-in QR code feature to work with customers’ phones.

Kitterhing is the Product Manager at LearnDash. He is also the founder of Immerseus, a shop that builds plugins for the learning management system. He is now extending his reach with the founding of EatsWP. He contracted out the development work to a private freelancer with who he regularly works.

“Apart from that, it’s just me on this project,” said Kitterhing. “My other business, I have five full-time employees, and so if required, one of those could be brought over for support. We, myself and my friend, took this idea to launch in under a month, which I’m very pleased with considering that Christmas was in the middle as well.”

Kitterhing decided to build this plugin based on what he was seeing with small restaurant owners he knew. Some of the issues facing these single-location restaurants are with their physical menus.

“It’s expensive to update them or make any changes as it requires a whole new print run,” he said. “By having a digital menu, they can update in minutes and generate a new QR code print. Then combine that with the current world situation, it also isn’t very healthy to have everyone touching physical menus, so digital menus made more sense than ever.”

Pricing for the plugin begins at $37 per year and increases based on the number of sites the user wants updates and support on. Kitterhing also offers a custom menu design and setup tier.

How the Plugin Works

Editing an EatsWP menu item in the block editor.

At the moment, EatsWP is a simple affair. The plugin does not offer hundreds of options or every feature imaginable for a menu-type of plugin. It is a 1.0. However, for the features it does provide, it does them reasonably well. Kitterhing is off to a good start. He has set a foundation, and the only way to go from here is up.

Where the plugin tends to shine is with its primary features, which are its array of blocks. Users begin by adding the Eats Menu block. From there, they have a selection of inner blocks they can place within the menu:

  • Item With Picture
  • Item With Picture and Addons
  • Item Without Picture
  • Item Without Picture and Addons
  • Eats Section Heading

In reality, most of the blocks are just prearranged sets of existing core WordPress blocks. They provide structure and loads of color options. Plus, end-users can click a button to add a “New” or “Popular” tag to their menu items. It is a nice touch.

The color options offer some customizability. In the long term, users will likely want more design options. However, it may be prudent for the plugin author to follow core’s lead here and implement such options as they become available in the block editor API.

The one missing feature that should be available now is support for wide and full alignments. Kitterhing assured me this would land in the first quarter of this year.

On top of the plugin’s blocks, EatsWP allows end-users to generate a QR code for the page their restaurant’s menu is on. When a customer scans the QR code with their phone, the page then opens.

“The QR code generation is more straightforward than most people expect,” said Kitterhing. “We’re using a well-known QR code generation library. You then simply select the page your menu is on, generate the QR code, print it off, or show it on your website and you’re ready to go.”

The Future of EatsWP

On the EatsWP website, Kitterhing lightheartedly writes that “delicious desserts” are coming soon. This includes WooCommerce integration, recipes, and other secret features. Integrating with WooCommerce could open a new avenue for restaurant owners to explore as part of their checkout process.

“I’m hoping that WooCommerce support will be coming Q1 this year,” said Kitterhing. “As I’m sure you can imagine, it’s reasonably technically challenging to incorporate this in a user-friendly way. The goal is to have all the connections and product creation actually done within the block editor interface. So someone wouldn’t have to go off to WooCommerce to set a product and come back as that’s rather long-winded. I’m excited to show everyone!”

It will be interesting to watch how this integration unfolds in the coming months. Menus are a solid starting point, but having a payment option is necessary in a world with more people are ordering online. This is especially true in the Covid-era where contactless forms of payment are becoming the norm for takeout. Restaurants need simple solutions that they are not hacking together from multiple, non-integrated sources.

“The goal within the next 12 months is to turn EatsWP into everything that a restaurant needs to offer a minimal-contact experience for customers,” said Kitterhing. “Many restaurants don’t have websites either, so I’m looking into a SaaS option where I’d host the menu/site for the restaurant.”

by Justin Tadlock at January 11, 2021 09:46 PM under Plugins

January 09, 2021

WPTavern: WordPress Community Team Proposes Using a Decision Checklist to Restart Local Events

photo credit: Glenn Carstens-Peters

WordPress’ Community Team has been discussing the return to in-person events since early December 2020, and has landed on an idea that would allow local meetup organizers to determine readiness using a COVID-19 risk-assessment checklist. This would enable organizers to restart meetups when it is safe for their communities, instead of applying a blanket global policy.

Countries like Australia, New Zealand, The Bahamas, Iceland, and Vietnam, are a few examples of locations that are doing a decent job containing the virus. In contrast, the United States logged more than 4,000 coronavirus deaths in a single day this week, pushing the daily average to over 2,700. While the situation remains bleak for many areas of the world, vaccines are rolling out to vulnerable populations, albeit slowly and with a few snags.

In the previous discussion that happened in early December, WordPress lead developer Dion Hulse shared some feedback from Australian organizers who have been eager to restart their meetups.

“One of the problems faced in Australia (and probably NZ & Taiwan too) has been the blanket worldwide restrictions companies have put in place,” Hulse said. “Australia/NZ have been lucky, the pandemic has been successfully contained – Australia has seen less than 30k cases this year, and NZ 2k cases. To put that in context, the USA has recorded more (detected) cases in 3 hours today than Australia did all year, and more in 30 minutes than NZ.”

Hulse said a few Australian meetup groups were denied the go-ahead for restarting because of the global restrictions, which has “led to the abandonment of meetups once again (as online meetups have simply not worked here, as most people can still go out in person, so there’s been no major push from most Australians to the online platforms like elsewhere).”

The Community Team’s proposal for a checklist takes these more unique situations into consideration and allows organizers to move forward in areas where public health measures have adequately curbed the spread of the virus. A few example checklist items include the following:

  1. Is your country’s (or state’s) average positivity rate over the past 28 days under 4%?
  2. In the past 28 days, has your country or area’s basic reproduction number stayed under 1?
  3. In the past 14 days, have there been under 50 new cases per 100,000 people reported?
  4. Does your local government allow for in-person events?
  5. If there is a cap on the number of people who can meet at a time, will you as an organizer follow this guideline?

Contributor feedback so far includes recommendations for dealing with violations of the guidelines and assessing the need for contact tracing in case meetup attendees are exposed during an event. Cami Kaos recommended that the team share a list of locations that have already been vetted using the checklist and have not met requirements.

“My hope is that this would reduce a lot of duplicated time and effort for areas that we already know aren’t yet, by the standards we’re setting, safe,” Kaos said. “It would save time and disappointment for organizers hoping to meet in person and also contributor time and energy for those deputies who will vet the applications to hold in-person events.”

Since the virus is mutating and countries are adapting in different ways, the situation can change rapidly, so organizers would need to be prepared to roll back to online events if conditions for safe meetups deteriorate. WordCamps are still out of the question for the time being, but the Community Team is seeking feedback on the proposal by January 15, 2021, including additions to the checklist and recommendations for public health resources that could aid in guiding the process.

by Sarah Gooding at January 09, 2021 04:50 PM under meetups

January 08, 2021

Matt: Autonomous and Beautiful Home Devices

Of all the smart home upgrades I’ve made, replacing all my regular smoke detectors with Nest Protects (Google’s smoke detector) has been the one that I regret the most.

I don’t really need a smart smoke detector. It doesn’t need to talk, connect to wifi, and cost hundreds of dollars. I don’t need it integrated with my Google account which is impossible to share, so I need to be personally involved to replace one.

But other smoke detectors are just so unsightly, and the Nest is light years ahead of the competition from a design standpoint.

There’s such an opportunity for something that looks as good as the Nest, but doesn’t require two-factor authentication to replace. I didn’t want to call it dumb but beautiful, so let’s say “autonomous and beautiful” appliances and home devices. I still want it to be smart, but if you’re going to have the risk profile of a device that connects to the internet, it needs to be worth it, like Brilliant, Sonos, smart TVs, or connected cameras.

I’m becoming more wary of any hardware that requires an app, just because of the natural decay of non-SaaS and non-open source software. Van Moof bikes are beautiful, but will they still connect well when iOS 24 is out and Bluetooth has been removed from iPhones for security reasons?

by Matt at January 08, 2021 11:45 PM under Asides

WPTavern: Blocked-Based Version of Twenty Twenty-One Nearing Readiness for the Theme Directory

Twenty Twenty-One Blocks, now renamed to TT1 Blocks, is inching its way toward the WordPress theme directory. Kjell Reigstad mentioned the prospect in this week’s block-based themes meeting. Contributors to the theme, which is part of the Theme Experiments project, have pushed some much-needed code updates to the repository.

TT1 Blocks is the block-based version of the Twenty Twenty-One theme. Its goal is to provide a version of the original theme that works with Full Site Editing (FSE), currently only available through the Gutenberg plugin.

FSE needs more testers. And, testers need themes that will enable the site editor in Gutenberg. Currently, there are only two WordPress themes, Q and Block-Based Bosco, in the directory that support the site editor. Armando should join them shortly. If a user attempts to find one via the FSE filter, they will get no results, as pointed out by Gary Taylor in a recent comment. This seems to be an oversight by the theme authors and should be corrected.

With most block-based themes relegated to a few GitHub repositories, it does not bode well if no one can find themes to test the most important set of features coming to WordPress in 2021. Users should be able to easily install an FSE-ready theme today.

“It has been brought up that it may be easier for people to test and contribute to full site editing if Twenty Twenty-One blocks was available in the WordPress theme directory,” wrote Themes Team representative Carolina Nymark in a ticket about renaming TT1 Blocks.

TT1 Blocks is something that feels more official. While third-party block-based themes are needed, the officialness of something from core contributors gives more users a sense of trust. Plus, it would be easy for someone with .ORG administrator privileges to stick it to the top of the theme directory’s featured page to get more eyes on it. Doing this with a third-party theme would unleash a hoard of developers who want the same treatment for their themes.

The prospect of the theme coming to the directory is something the WordPress project needs.

The volunteers who have been chipping away at this TT1 Blocks have turned a bare-bones theme into something closer to the original Twenty Twenty-One. There are still some leaps remaining to get it to where it needs to be. Much is this rests in the Gutenberg development team’s hands. There are currently over a dozen blockers identified by the Theme Experiments project that need to be resolved in the Gutenberg plugin first.

Single post in the site editor with TT1 Blocks

There are multiple open tickets on the project board for theme developers who are looking for a way to contribute. This is an opportunity to learn more about block-based themes and pay it forward.

At the moment, I am not-so-patiently awaiting the release of TT1 Blocks to the theme directory.

There are days when I wonder if there is a final destination, some light at the end of this never-ending tunnel that leads to block-based themes being the norm. I get overexcited about each new project. I quickly test pull requests and updates on the handful of repositories I am watching, hoping for a glimpse of something spectacular.

Part of this excitement is because I designed and developed WordPress themes for around 15 years in some form or fashion. Today, I am no longer in the design and development game. I must live vicariously through the people who are putting untold hours into this grand experiment. I get to tell their stories, which has its own rewards.

I also know that this sort of development is a slog. Everyone has big ideas, but the real world calls for slow, steady, and dedicated work. Often it is thankless.

When I saw the mere mention of TT1 Blocks potentially coming to the theme directory, it added a bit of spark to an otherwise rough few days. I wanted to end this particular week with something hopeful. And, testing out the latest work those volunteers have put into TT1 Blocks has done just that.

by Justin Tadlock at January 08, 2021 11:12 PM under Themes

January 07, 2021

WPTavern: JetBrains Denies Being Under Investigation for SolarWinds Attack

JetBrains, makers of Phpstorm, one of the most popular IDEs for PHP developers, has published a statement denying any involvement in the SolarWinds attack, which compromised multiple US federal agencies and private companies. The company stated that it has not been the subject of an official investigation:

JetBrains has not taken part or been involved in this attack in any way. SolarWinds is one of our customers and uses TeamCity, which is a Continuous Integration and Deployment System, used as part of building software. SolarWinds has not contacted us with any details regarding the breach and the only information we have is what has been made publicly available.

This statement contradicts a recent New York Times article that claimed unspecified officials were investigating the company’s TeamCity continuous integration software as a possible entry point for the attack:

By compromising TeamCity, or exploiting gaps in how customers use the tool, cybersecurity experts say the Russian hackers could have inconspicuously planted back doors in an untold number of JetBrains’ clients. Because TeamCity is so widely deployed, experts said, it is imperative to determine whether its software contains a vulnerability, or if attackers exploited TeamCity customers via stolen passwords or gaps in unpatched, outdated software.

The New York Times did not specify which officials and “cybersecurity experts” were the source for this information but claimed that SolarWinds was also investigating the software internally. A previous version of the article referred to JetBrains as “an obscure software company,” which ruffled the feathers of the company’s most ardent customers. SolarWinds told both the Times and The Wall Street Journal that it has not confirmed a definitive link between JetBrains and the breach of its own software.

joint statement from the FBI, the Cybersecurity and Infrastructure Security Agency (CISA), the Office of the Director of National Intelligence (ODNI) and the National Security Agency (NSA) released this week points to Russia as the origin of the attacks:

This work indicates that an Advanced Persistent Threat (APT) actor, likely Russian in origin, is responsible for most or all of the recently discovered, ongoing cyber compromises of both government and non-governmental networks. At this time, we believe this was, and continues to be, an intelligence gathering effort. We are taking all necessary steps to understand the full scope of this campaign and respond accordingly.

Phpstorm is widely used among WordPress developers, especially since version 8 added official support for WordPress in 2014. JetBrains users took to Twitter with questions and concerns about claims that the company was under investigation. Today, JetBrains published another update that clarifies its previous statement. It states that the company’s IDEs are standalone tools with no relation to TeamCity and that there is no evidence that any of their servers or tools have been tampered with.

JetBrains is organizing an independent security audit of TeamCity and has promised a transparent report of any vulnerabilities found that may have led to a breach.

“For over 20 years, one of our pillars has been to be transparent, honest, and truthful with our customers, and nothing hurts us more than seeing unfounded allegations that damage our reputation and instill doubt on our customers,” JetBrains CEO Maxim Shafirov said.

by Sarah Gooding at January 07, 2021 11:12 PM under jetbrains

WPTavern: Gutenberg 9.7 Improves User Experience, Updates Reusable Blocks, and Brings Page Templates to FSE Themes

Gutenberg 9.7 landed yesterday with several updates and improvements. Users should expect to see changes to the interface for block variations, transforms, and patterns. Reusable blocks are being worked on after what seemed to be a hiatus. Developers can also now add custom page templates to their block-based WordPress themes.

This release had the fewest number of bug fixes I have seen in a while. The development team only pushed eight fixes into the update, which could signal that things were more stable than usual after the 9.6 release a couple of weeks ago.

Most of the work in 9.7 dealt with new features and enhancements. As expected, Full Site Editing got its fair share of time. However, even this seemed dialed back a bit for this release. Many of the updates are to the post-editing interface.

User Experience Improvements

The team pushed out several updates to how features work in the editor. Some of them might seem minor but improve the overall editor experience.

Block variations received a welcome enhancement. Variations are when one underlying block is used to create multiple variations of the same block. For example, the Embed block has YouTube, Twitter, and other variations. In past versions, the block inspector in the sidebar and block navigation would show the generic name, icon, and description. However, Gutenberg 9.7 will now show the details for the variation in use.

YouTube variation for the Embed block.

When transforming a block, users can see a preview of what the block will look like. This is a small improvement. However, it might save a few headaches when before deciding to transform one block into another.

Preview when transforming Quote block into a Pullquote.

Gutenberg 9.6 introduced a drag-and-drop feature for blocks in the inserter. The team has now extended that feature to block patterns. This is just another rung on the ladder for those looking for more drag-and-drop capabilities.

Reusable Blocks Updated

It has been a while since I tested reusable blocks. The feature has seemingly taken a backseat to other, newer features in the past year or so. It never felt much better than an initial prototype. There is still no way to easily manage them unless you know where to look. However, it appears the Gutenberg development team is actively developing this almost-forgotten feature.

Users can expect more in future releases. “Based on these changes, the UI for reusable blocks is most likely going to see some iterations on the upcoming weeks,” wrote Riad Benguella in the announcement post.

I ran an initial test to see what the feature looked like in Gutenberg 9.7. After clicking the “Add to reusable blocks” button, the editor did a quick flash. Then, a notification appeared at the bottom of the screen that the reusable block had been created. Because I did not have my block options sidebar panel open at the time, I saw no way to edit the reusable block’s title. My immediate thought was that the team took an already half-baked feature and made it exponentially worse.

Upon further digging, I found that users can edit the reusable block’s title in the block options sidebar. However, the team did not stop there. They added several improvements to the feature.

Editing the reusable block name in the sidebar panel.

Reusable blocks are now editable within the post editor itself. Users can drag an image out of the block, for example. The inspector sidebar is available for the inner blocks. Reusable blocks now look and feel like any other part of the editor. Any edits will reflect across all instances of the reusable blocks on the site.

The big difference is in how they are saved.

Saving a reusable block along with the post.

Reusable blocks are now a part of the “multi-entity” save system. When clicking the editor’s update button, users will have an option to save the entire post and/or individual reusable blocks.

Custom “Page” Templates for FSE Themes

Block-based themes now support what has been traditionally known as page templates. All post types are technically supported with the feature. However, the team seems to be sticking with the “page” terminology after some discussion.

It took some digging because there is no existing documentation and the original example in the ticket did not reflect the end result of the code that passed. However, I managed to suss out how the feature works. For theme authors who want to test this feature, use the following example code of adding a “contact” template. Place it at the root level of your theme’s experimental-theme.json file. You will also need to accompany this with a block-templates/contact.html template in your theme.

"pageTemplates": {
        "contact": {
                "title": "Contact",
                "postTypes": [

This feature does not do anything particularly groundbreaking right now. It merely adds the custom template to the drop-down select on the edit post/page screen. It is the equivalent of the current page template system available to traditional themes.

Selecting a custom page template from FSE theme.

While this is a nice development, traditional page templates may not make much sense in the block theming paradigm. There is no way to change the visual output of the page in the editor based on the selected template — users must still view the page on the front end to see the result of its application. The block system is about instant visual feedback. Page templates need to be rethought for the new era.

“In terms of UI and integration with the template mode, we can do a lot more than the old select box,” said Benguella, who was the developer behind the pull request. “We can show a preview for templates and offer a modal or something like that for folks to pick from…We’d need some design thinking and explorations there. This PR just sets the technical requirements to make it work.”

Much, but not all, of what page templates were needed for in the past decade can now be replaced by block patterns.

In the long term, I would rather see page templates that behaved more like predesigned block layouts. This is how block templates for custom post types work today. However, that is on the post-type level rather than the level of the individual post.

Traditional page templates are dated. Themes rarely offer more than a few. One to remove the sidebar. One to move the sidebar to the left or right. Another to make the page content area wider.

What is clear is that we need more exploration on what page templates of the future will look like. Are they necessary in the block system? Are there better ways of handling what traditional themes are using them for? How will they work in an interface that needs visual feedback?

by Justin Tadlock at January 07, 2021 10:34 PM under gutenberg

January 06, 2021

WPTavern: All in One SEO Plugin Turns on Automatic Updates without Notifying Users, Removes Functionality in Latest Release

Buried in the changelog of a series of minor releases that dropped before the Christmas holiday, All in One SEO plugin users were given the surprise gift of automatic updates. After a seemingly endless run of releases (12 updates during a span of six weeks at the end of 2020), the plugin’s developers decided to change its auto update policy so that it defaults to “on.” The plugin is installed on more than 2 million WordPress sites.

Version 4.0.8, released December 21, 2020, flipped on automatic updates without notifying users of the change. Despite having auto updates turned off for the plugin, many users discovered the change when they were notified by email that their sites had been updated without permission.

Frustrated users took to the plugin’s support forums to report the issue and find out how it was possible.

“Multiple sites have updated to 4.0.11 without my permission and while all auto updates are disabled,” one user said. “I/we do not want to hear that ‘it shouldn’t happen’ and we are looking into.

“Your once reliable plugin has destroyed hundreds of pages of social meta data on multiple sites, broken layout (and this after I fixed the problems and told you last week, I will be disabling all updates).”

Others commented on the issue, citing problems with a previous major release as the source of many bugs that followed.

“The rollout of version 4, and auto-updating without any chance to backup first was a blunder by AIOSEO,” plugin user Derek Haines said. “It has cost me hours, days, and now weeks to fix the problems caused.”

The All in One SEO plugin team apologized for the inconvenience users experienced but said they could not reproduce it on their end. The plugin’s settings page has a toggle for auto updates but it is just a wrapper for WordPress’ auto updater.

“I just wanted to give you an update and let you know that we’ve decided to remove our own auto-update functionality all together since this issue seems to be happening on a limited amount of websites and we aren’t able to reproduce it on our end,” Arnaud Broes said.

The problem was also discussed in the Advanced WordPress Facebook group.

“All In One SEO Pack apparently turned auto updates on, and in a few cases I found sites where those updates failed,” Eric Karkovack reported. “I had no idea they were turned on and in one case a site was inaccessible.”

Karkovack noted that there was only a small mention in the changelog, despite the plugin liberally using the dashboard notification UI for sales.

William Earnhardt, WordPress core contributor and developer at Bluehost, offered some insight as someone who has worked on core as well as plugins installed on a massive scale.

“In my experience if you are weighing the two options, auto-updates prevent significantly more issues and support requests than they create,” Earnhardt said. “So I’m strongly in the camp of enabling them by default, with a mechanism for preventing or disabling for those who prefer (core makes this possible with filters and now with per-plugin UI).

“I think when making these decisions, we as developers have to consider what is best for the broadest number of users and be realistic about the type of users we have. If a user is already not updating plugins regularly, it is unlikely they are going to have the awareness to flip a toggle to turn auto-updates on. So opt-in makes them mostly useless.”

Earnhardt agreed that notifying users of the change would have been a good idea, but admin notices are already “frequently abused and quite noisy.”

“It would likely be missed if not persistent, but really should only show after the update and then go away,” he said. “Is that enough when combined with a note in the changelog? Probably for most, but I’m sure some would disagree.”

As promised nine days ago, All in One SEO’s developers have now removed the functionality from the plugin in its first update of 2021, version 4.0.12 released today. It is noted in the changelog: “Fixed: Completely remove auto updates wrapper to let WordPress handle updates.”

by Sarah Gooding at January 06, 2021 11:47 PM under automatic updates

WPTavern: Liquid Web Acquires The Events Calendar WordPress Plugin From Modern Tribe

Liquid Web announced today via the iThemes blog that it acquired The Events Calendar from Modern Tribe. The acquisition gives them ownership of the plugin, its suite of event-related plugins, and the team behind it all.

“We’ve acquired all the associated plugins, including Event Tickets, etc.,” said Matt Danner, the COO at iThemes. “They identify under the single umbrella of The Events Calendar as a team, so we’ve continued to position the team that way.”

As part of the acquisition, the 50+ employees from The Events Calendar plugin team are now a part of the Liquid Web family. They will continue working on the plugin and its related products. Zach Tirrell announced on The Events Calendar blog that he would remain at the helm and that the team structure was not changing.

The remaining 74 employees of Modern Tribe will continue working on the agency’s other projects, including clients like Microsoft and Harvard University. Reid Peifer, the Creative Director at Modern Tribe, teased potential future projects in his announcement post. “We can’t help but make things, so you may see a few surprises from us in the coming months as well.”

The Events Calendar plugin on WordPress.org currently has over 800,000 active installs with an average rating of 4.4 out of 5 stars. Modern Tribe launched the plugin in 2011 and has continued to build a larger product line and customer base around it over the last decade.

For existing customers, it should be business as usual. Nothing has changed about who is currently developing The Events Calendar. The website is still a separate entity, and billing will remain the same.

The acquisition is mere months after iThemes, owned by Liquid Web, purchased Restrict Content Pro (RCP), a membership plugin. While RCP continues to have an independent site, users can snag it with one of the plugin bundles directly from the iThemes website.

However, The Events Calendar will be wholly independent of iThemes. Customers hoping to see a similar bundle with The Events Calendar will be out of luck.

“The RCP acquisition was done under the iThemes brand,” said Danner. “We brought that team into our team, and the membership product is a key part of how we’re positioning iThemes. The Event Calendar’s acquisition was done under the larger Liquid Web brand. Their team is coming into Liquid Web alongside iThemes as part of the bigger software division. While we definitely think there are future opportunities to collaborate between our teams (which could include bundles of products from both teams), their products are not going to become part of the iThemes product line.”

One of the biggest remaining questions is whether the separate teams will eventually create integrations between The Events Calendar and RCP. There are multiple reasons event organizers might want to restrict content based on memberships, especially when it comes to virtual events. Danner did not give up any specific plans in his response.

“We’re very excited to explore all the opportunities to integrate our products,” he said. “I think there are some great opportunities for RCP and TEC to work more closely together, and both customer bases have requested deeper integration between the two. This acquisition was a perfect fit from so many angles. The people, the values of the team, and the products all align with what we’re building at Liquid Web.”

by Justin Tadlock at January 06, 2021 10:21 PM under The Events Calendar

Akismet: Version 4.1.8 of the Akismet WordPress Plugin is Now Available

Version 4.1.8 of the Akismet plugin for WordPress is now available. It contains the following changes:

  • Removal of a deprecated jQuery function.
  • A fix for a bug causing some data to be excluded from API calls when marking a comment as spam or not-spam.  This should improve spam detection accuracy.

To upgrade, visit the Updates page of your WordPress dashboard and follow the instructions. If you need to download the plugin zip file directly, links to all versions are available in the WordPress plugins directory.

by Christopher Finke at January 06, 2021 05:01 PM under Releases

January 05, 2021

Matt: Farnam Street and Postlight

I recorded two interviews very far apart from each other, but which have surprisingly both come out today. The first is for one of my favorite sites on the web, Farnam Street. I was honored to be episode 100 on their Knowledge Project podcast. Knowledge Project is probably one of the podcasts I’ve listened to the most since it started. Please check out their other guests as well, they really do have the most interesting conversations with the most interesting folks.

Shane and I cover turnarounds, how environment affects performance, pros and cons of distributed work, uncovering your lacuna, mental models, and patterns of decision making.

On a completely different vein, I did a deep geek-out on technology and content management systems with Gina Trapani and Paul Ford, two of my favorite technologists, on the Postlight podcast. We covered a lot of tech history, my thoughts on Chromium and Mozilla’s Gecko engine, structured data, Gutenberg, and a lot more. If you’re a developer or a long-time WordPress community member you’ll enjoy this one, but it might be esoteric or technical if you’re not immersed in this world. Here’s a Spotify embed of the episode:

In both we do touch on my idea that, on a long enough timeline, the survival rate for all proprietary software drops to zero. (Hat tip to Fight Club.) Proprietary software is an evolutionary dead end. You can think of open source packages like genetic alleles that have a higher fitness function, and eventually become the fittest organism. The longer I spend watching mega-trends in technology, the more I see that pattern everywhere, from encyclopedias to cryptocurrencies.

by Matt at January 05, 2021 11:51 PM under press

WPTavern: Block System Will Create More Commercial Opportunities for WordPress Theme Authors

Ten years ago, a potential WordPress theme buyer might stumble upon a site like ThemeForest. The themes on the site would primarily tout the hundreds of shortcodes they included. These shortcodes would allow the user to build anything they wanted with simple BBCode-like brackets around some tag or another.

The practice was not limited to ThemeForest. Nearly every theme development company at the time — and they were sprouting up by the dozens a decade ago — needed to compete in the same arena. Despite all their faults (never mind that no user could reasonably remember hundreds of them), shortcodes topped the list of features.

Today, the landscape is much different. In part powered by page builders like Elementor and Beaver Builder, themes are more apt to offer pre-built design options. Gone are the days when users must painstakingly fill their pages with shortcode soup manually. At the click of a button, their theme will automate the design of their homepage for them. The user merely needs to fill in the content. At the click of another button, the user gets a contact or services page. A restaurant owner might get a fully-laid out food menu. A new online shop owner can get a full set of pre-built WooCommerce products by importing their theme’s demo content.

Customizability is the name of the game. This has not really changed over the years, but the methods for getting there have.

When perusing commercial theme shops today, the common thread is the multitude of demos. These demos showcase the various layouts the user can have if they just fork over the $50 or $60 for access. There are themes with over 500 demos.

Some themes market hundreds of templates or dozens of pre-built, one-click website designs. At the end of the day, it is all about making the user’s site look a certain way without the hassle of hours of work.

The problem with traditional theming is that all of these themes are built with non-standard solutions. This is no fault of the theme authors. They had to build or use third-party systems where WordPress had failed. Elementor has standardized this to some degree — many commercial theme shops fully support it, often as the default experience. However, it still only represents a fraction of the market and is not a part of the core platform.

WordPress is still catching up to the dream that the premium marketplace has already been capitalizing on.

However, WordPress can do this better in the long term and level the playing field for many other theme developers. We are on the verge of true one-click solutions from the core platform. It will be a tough run for the next year, but the theme shops that adopt the block system the soonest stand the most to gain.

What the System Offers

If you have ever installed themes that offered dozens of header designs, the experience has likely been hit or miss. Most such themes require users to go through dozens of options fields in the customizer or — yikes! — a custom-built options page that looks nothing like the WordPress interface. While there are simpler solutions that some theme authors have created, WordPress has never had a built-in way of allowing users to do this.

Enter template parts made out of blocks.

Themes Team rep Carolina Nymark showcased just how simple this is with the upcoming site editor. Her Armando theme offers three custom header templates.

Selecting a header template with the Armando theme.

The system is far from ready. There are missing features that we will likely not see for a while. For example, there’s currently no way to categorize or otherwise group all the header templates just yet. Users can just as easily replace the header with a footer template.

However, this is an important step forward. The theme author did not write any complicated PHP or JavaScript. There was no need to build a custom options panel or fields. No third-party system was warranted. The developer created the templates, and they became instantly available through the site-editing interface. The theme author’s responsibility went back to simply designing. The user has access through a standardized interface.

If theme authors want to offer hundreds of switchable templates, they can. If they want to add two or three while upselling the others, they can do that too.

Now, expand upon this idea with other types of templates. These can be a footer, sidebar, homepage, or any template. The commercial applications are endless. Theme authors can offer commercial themes or upsells with far less work than ever before.

The possibilities do not end with templates. Block patterns are another viable feature to commercialize. As shown with the Genesis Blocks plugin, its “layout selector” offers various patterns to quickly insert into the post content.

Slate collection from the Genesis Blocks plugin.

Genesis Blocks even offers collections of these patterns that share a similar design aesthetic. In other words, these are essentially pattern categories.

This is an easy path forward for theme authors who are looking to upsell. Build one or two categories of patterns. Periodically bring in new groups of patterns for users who want a fresh look without changing themes.

Gutenberg Hub already provides hundreds of templates and patterns, filling a void that is currently missing from the theme ecosystem. The site offers convenient solutions, but something is missing: they are not tied into the theme’s design. Forward-thinking theme authors should already be building competing solutions that offer all the same templates and patterns that match their themes.

Gutenberg Hub’s landing page “templates” (patterns).

A year or two ago, there was some rumbling about the block editor leading to the death of WordPress theming. Traditional theming will trickle into nonexistence in the coming years. Of course, there will be pockets of holdouts, but the future is about one-click solutions. And, WordPress is setting the stage for all users to have this ability at their fingertips. The theme shops that recognize this the soonest will profit from it the most. Everyone else will be fighting for the scraps they leave behind.

It is not time to abandon traditional theming or forgo page-builder support. However, it is time for themers to begin rolling out block patterns and to start outlining, testing, and building block-based themes.

by Justin Tadlock at January 05, 2021 10:34 PM under Themes

WordPress.org blog: The Month in WordPress: December 2020

We bid goodbye to 2020 in style with the release of WordPress 5.6 and the launch of Learn WordPress. But these weren’t the only exciting updates from WordPress in December. Read on to learn more!

WordPress 5.6 is here

The latest major WordPress release, version 5.6 β€œSimone”, came out on December 8. The release ships with a new default theme called Twenty Twenty One. It offers a host of features, including:

  • Greater layout flexibility
  • More block patterns
  • Video captioning support
  • Auto-updates
  • Beta-compatibility for PHP 8.0
  • Application password support for the REST API
  • Updates to jQuery

In addition, WordPress 5.6 is now available in 55 languages. You can find more information about the release in the field guide, and you can update to the latest version directly from your WordPress dashboard or by downloading it directly from WordPress.org. A total of 605 people hailing from 57 different countries contributed to the development of WordPress 5.6. @audrasjb has compiled many more stats like that, showing what a tremendous group effort this wasβ€”they’re well worth a read!

Want to contribute to upcoming WordPress releases? Join the WordPress #core channel on the Make WordPress Slack and follow the Core team blog to learn the latest on WordPress 5.7, which is slated to be out by March 9, 2021. The Core team hosts weekly chats on Wednesdays at 5 a.m. and 8 p.m. UTC.

Watch the State of the Word 2020 recording

State of the Word 2020, the annual keynote address delivered by WordPress co-founder Matt Mullenweg, was streamed online for the first time on December 17. It was followed by a live Q&A from community members all across the world. You can find the stream recording on YouTube, Facebook, and Twitter. The State of the Word video and the Q&A session are also available on WordPress.tv. 

Learn WordPress has launched

Learn WordPress, a new free, on-demand WordPress learning resource, launched officially on December 15. It offers workshops, lesson plans, quizzes, and courses for anyone interested in publishing with, building for, or contributing to WordPress. WordPress enthusiasts can also participate in discussion groups focused on specific topics to learn with and from each other.

Want to participate in Learn WordPress? Here are four ways you can do so! Additionally, contributors have launched a discussion on the future of Learn WordPressβ€”feel free to share your thoughts in the comments. To help promote Learn WordPress, check out the Marketing Team’s materials, which detail a range of fun and creative ways to share this new resource.

Give feedback on the Full Site Editing project

Contributor teams have kicked off the Full Site Editing (FSE) outreach program for anyone who is building or maintaining a WordPress site so that they can give feedback on the upcoming FSE feature that will be part of Gutenberg Phase 2. Your feedback will go a long way in improving FSE user flows. To participate, check out the initial testing call on the Make/Test blog and join the #fse-outreach-experiment Slack channel.

Want to follow updates on the FSE project? Check out this blog post. You can find 2020 updates to the FSE project in the Make/Core blog.

BuddyPress 7.0 β€œFilippi” and 7.10 are now available

BuddyPress version 7.0 went live on December 9. Its features include: 

  • New administration screens to manage Member and Group Types
  • New BP blocks for posts and pages
  • A default profile image for network sites
  • Improved BuddyPress Noveau support for the Twenty Twenty One theme. 

A BuddyPress maintenance release (version 7.1) launched on December 21. 

Want to provide feedback or suggestions for BuddyPress? Share your comments on the announcement posts for 7.0 or 7.1. If you find a bug, please report it in the support forums

Gutenberg 9.5 and 9.6 released

The Core team launched version 9.5 and 9.6 of Gutenberg last month. Both versions include several improvements to FSE flows, bug fixes, and feature upgrades. Version 9.5 introduces features like full height alignment and support for font sizes in the code block. Version 9.6 includes features like the ability to drag blocks from the inserter and a vertical layout for buttons. 

Want to get involved in building Gutenberg? Follow the Core team blog, contribute to Gutenberg on GitHub, and join the #core-editor channel in the Making WordPress Slack group.

Further Reading

Have a story that we should include in the next β€œMonth in WordPress” post? Please submit it using this form.

by Hari Shanker R at January 05, 2021 10:55 AM under Month in WordPress

WPTavern: WordPress.com Rattles Freelancer Community with New Website Building Service Launch

WordPress.com launched a new website building service today with prices starting at $4,900. Automattic has been beta testing the service since the last quarter of 2020. The product announcement invites customers to let WordPress.com’s professional team “translate your vision into a compelling and modern website” but does not specify pricing for more customized websites:

Whether you need a fast and performant eCommerce store for your products and/or services, a polished website for your professional services firm, or an educational website for your online courses, our experts can build it for you on WordPress.com, the most powerful platform for businesses and enterprises large and small.

Initial reactions from the WordPress developer and freelance community were mixed. Some see the competition as good and others perceived it as a threat to WordPress consultants and small agencies, because a product from WordPress.com carries the full weight of the official WordPress brand.

“Whether this succeeds or not there are a lot of folks with a sick stomach today because of it,” WordPress developer Chris Wiegman said.

Automattic stepping into the $5k website market came as a surprise to many, after years of keeping to the enterprise space with its WordPress.com VIP service. (Sometime in 2019 the service started going by “WordPress VIP” without the “.com” appended to it.) Freelancers haven’t had to worry too much about competing against a large company like Automattic when trying to attract clients. It’s also an interesting move because the company seemed stretched thin when it came to maintaining plugins used by VIP clients in 2019, despite seeing “demand for WordPress in the enterprise market like never before,” according to Nick Gernert, head of VIP.

“Can’t say I’m surprised by this announcement, but it doesn’t bode well for the community, to be honest,” WordPress consultant Joshua Nelson said. “Freelancers will be hurt the most. A for instance: My custom built sites start at $3k. Once you factor in a designer that $4.9k rate looks very competitive.”

In response to community concerns on Twitter, Automattic CEO Matt Mullenweg said the product is targeted at people who have a difficult time getting started with WordPress.

“I would be extremely surprised if this impacts anyone’s consulting business, if you do have a current or potential client leave for it please let me know — it should be all new-to-WP users who wouldn’t have been successful getting started,” Mullenweg said. He also confirmed that the new service was set up for “referring business out” and referenced a previous experiment in 2018 where WordPress.com partnered with Upwork to refer clients for custom development.


The product launch lacked this information and some noted the copy was confusing with phrases like “Built by us” and “Our experts can build it for you.”

WordPress professionals took to Post Status‘ Slack to discuss the implications of Automattic’s new offering. Mullenweg responded to them, saying he is “100% certain this will drive more up-market consulting in the future” to consultants who handle larger projects and potentially bring more business to plugin and theme developers. He also noted that Bluehost’s full service product is a similar solution and that services like Web.com have been competing in this space for awhile.

“Typically these are called DIFM (do it for me) vs DIY (do it yourself),” he said.

Automattic must be witnessing a strong demand for DIFM, as participants in the discussion at Post Status referenced Mullenweg’s comments on the topic during his most recent State of the Word address delivered in December 2020:

Lots of people lost their jobs. Lots of people were looking to supplement their income. This drove an incredible amount of entrepreneurship, so people who were looking for people who knew WordPress. And on the other side of that, normal folks who knew or learned WordPress found that they had a lot to demand for their work, so they were able to supplement or replace their income, essentially for folks who have a do it for me mentality, so someone who is looking for someone else to build a website. It’s never been a better time to learn and invest in improving your WordPress skills.

The idea behind this product is to help those who get stuck with WordPress before they turn to competitors that market website creation to beginners. It indicates that WordPress still has a long road ahead before it is truly an approachable tool for beginners embarking on their first site building experience.

Automattic has not published a pricing structure for the features included in a basic $4900 website. Based on images on the landing page, the sites do not seem extensively customized beyond what existing themes offer. It seems like more of a website setup service and does not explicitly promise custom development.

When asked how agencies can apply to be put into the pipeline for referrals from WordPress.com’s new service, Mullenweg indicated that the product is still in the experimental stage.

“It’s unclear if anyone wants this yet, so for this experiment don’t have that yet,” Mullenweg said. “If it works then definitely we will try to open it up.”

by Sarah Gooding at January 05, 2021 04:40 AM under wordpress.com

January 04, 2021

WPTavern: 2021: Reshaping the Tavern Experience

Resolutions. Goals. Guidelines for the year ahead. Call them what you want. Not everyone takes part, but I am a firm believer in having a vision for the coming months. That vision can be malleable, flowing with the changes of time, yielding to new ideas as they are birthed. However, some large, beaming guideposts help when setting foot into the wild of a new year.

Our team at WP Tavern has gotten a bit of a breather over the holidays. We have an exciting project we are just getting off the ground. We set some things in motion months ago. Now, it is time to push forward.

Without going into all of the details, which are currently in flux, the following are the big goals for the site in 2021.

New Design

The biggest goal of 2021 is to add a fresh coat of paint to the website. Going hand in hand with that goal is to launch this new design 100% on blocks. To effectively write about WordPress’s upcoming changes, we need to be ahead of the game. That means living a bit on the bleeding edge, running a block-based theme, and testing the site editor. It means sharing what we love and airing our frustrations.

Changing designs is not simply about slapping on some fresh colors. Design is about functionality. At the center of such a change is providing more tools for engagement.

We are thinking over multiple ideas about what this might look like, and we have a generous third-party team standing by to help us implement much of this. Some of those ideas are things like showing the top comments and trending forum topics. Feedback from our readers is more than welcome in this regard. Ultimately, this is the part of the Tavern experience that belongs to you.

The keen-eyed among you may have noticed I slipped in something about forum topics in the preceding paragraph. That was no accident. The return of the Tavern forums is a distinct possibility in 2021. There are many considerations we must make before going down this road around how it is moderated. The goal would be to provide an inviting atmosphere where people could freely talk about our beloved content management system. Again, this would be a feature of the site that is primarily about you.


While many of you are avid readers of our content, we know some of you have asked us to bring back a podcast in some form. Some of you want to listen to WordPress-related news on your drive to work or while you unwind at the end of a busy day.

We heard you loud and clear.

Our team is actively pursuing adding a podcast. This is a project that we have been working on for a while now. It is something we genuinely want to happen.

Before exploring this project, I had no idea of the amount of work necessary for producing a professional podcast. If you had put me behind the mic a few months ago, I would just be shooting from the hip, hoping to hit a target, any target. I have a newfound respect for anyone who produces a podcast today.

If we get a new podcast off the ground in 2021, it will be a professionally-produced show. The goal is to have planned topics and guests representative of the diversity of the WordPress community. I am excited about the possibility.

Welcome to 2021

A new design and potential podcast are big-ticket items. They are not features we can launch overnight. When we do them, we want to do them right.

There are other items on the checklist we will likely get to throughout the year too. But, this is a point in the year where we should sit back and listen. Are there things you want to see changed about the Tavern experience? Are there topics we missed last year that you want to see us cover more?

As always, our team looks forward to bringing you our regular news, reviews, and opinions throughout the year. Stay tuned in for more.

by Justin Tadlock at January 04, 2021 09:36 PM under Tavern

January 03, 2021

Matt: What’s In My Bag, 2020

Instead of sharing what’s in my backpack this year, I want to share the apps and pandemic purchases that were meaningful to me, along with a few words on each. Something I haven’t shared with you yet on this blog is… I went down a #vanlife rabbit hole and ended up camping and working remotely a decent chunk of the year. I learned a ton and feel much more resilient. So this is a phoneful and truckful update of my year.

First I’ll start with apps, these all link to Apple’s app store but almost all have Android equivalents that I also use:

  • Calm and Waking Up β€” Very different but both incredibly valuable meditation apps. I had an 82-day streak with Calm this year! I wouldn’t have survived without these.
  • Fitbod β€” You tell the app what equipment you have, how much time you have, and it gives you a workout like a trainer would, rotating muscle groups.
  • Streaks β€” An app for starting and tracking habits. This is a funny one because I actually stopped using it because it worked. The things I was tracking on Streaks became daily habits and I stopped using the app every day. The same thing happened for me with Zero, my daily fast became part of my routine so I’d only use Zero if I was doing a longer one.
  • Tumblr β€” It was so nice to have a social network centered around creativity and humor.
  • Asana β€” Getting organized helped lessen anxiety.
  • Pocket Casts β€” I switched to this because it syncs between devices, and I used my Android device a lot especially while driving.
  • AllTrails β€” I spent more time in nature this year than almost any previous, and AllTrails was an amazing way to find great hikes.
  • The Economist β€” The most insightful news, and the weekly cadence helped me avoid the wild variance of the daily news cycle. My favorite news app.
  • YouTube β€” Wow, there’s a lot of stuff on here. This was the year I started to “get” why people spend so much time on YouTube. Some favorite finds were Jacob Collier and Mark Rober.
  • Walmart β€” Surprisingly good on road trips for curbside pickup orders scheduled a few hours ahead. Yes, I have now joined 95% of the US population.
  • Blueground and Avantstay β€” Good for longer stays in places. I found both through Airbnb, which is still the king.
  • Food apps in order of usage: DoorDash, Uber Eats, Tock, Toast TakeOut.
  • Camping apps in order of usage: AllTrails, Chimani, Recreation.gov, iOverlander, Boondocking, FreeRoam, Harvest Hosts.
  • App I deleted and re-added the most: Twitter. I love the things I learn from using it, but hate feeling like I’m wasting time.

When on road trips I found Android Auto running off the Pixel 5 much more reliable than CarPlay, which would frequently freeze up on me. Things have improved with iOS 14, but I still always use the Pixel when I’m on a longer drive.

I also have been living with my Mom since July, including her two cats and new Coton du Tulear puppy. Pets are humbling! It’s been great to learn how to support them best, as I last lived with animals when I was in high school and wasn’t that conscious of the responsibility then.

Amazon says I made over 850 orders this year, more than double from any previous year. Here are the non-tech purchases that ended up having a big impact on me:

Clothing and wearables, like much of the world I trended toward comfort and away from normal shoes and socks:


There you have it. As always, if you’ve tried something here and found an alternative that’s better, let me know in the comments!

by Matt at January 03, 2021 04:37 AM under In My Bag

Follow our RSS feed: 

WordPress Planet

This is an aggregation of blogs talking about WordPress from around the world. If you think your blog should be part of this site, send an email to Matt.

Official Blog

For official WordPress development news, check out the WordPress Core Blog.


Last updated:

January 19, 2021 05:15 PM
All times are UTC.