Wordpress News

Creative & Innovative

Drupal Themes - Wed, 04/20/2022 - 12:50

Creative & Innovative Theme is Mobile-friendly Drupal 8/9 responsive theme. This
theme features a custom Banner/Slider (Choose one image for banner or more to create slider), Colors, Footer copyright field, Social Menu Icon, Contact us Information Fields, Arrow up icons position field(Left/Right), responsive layout, multiple column layouts and is highly customizable. It also supports Google fonts, font awesome(version 5), and it is great for any kind of business website.

Creative & Innovative Theme is developed with all latest technologies Drupal 8/9,
Bootstrap5, Font Awesome etc.

* For a full description of the theme, visit the project page:

* To submit bug reports and feature suggestions, or to track changes:

Do The Woo Community: Accessibility, the Payoff for Your Clients WooCommerce Shop

Wordpress Planet - Wed, 04/20/2022 - 10:00

Atarim Web Agency Summit speaker Anne-Mieke Bovelett shares a valuable tip on accessibility and WooCommerce design and development.

The post Accessibility, the Payoff for Your Clients WooCommerce Shop appeared first on Do the Woo - a WooCommerce Builder Community.

HeroPress: Privileged

Wordpress Planet - Wed, 04/20/2022 - 06:00

Privileged! That’s one weird way to begin a story but that is where I will kick off. Do not be deceived! I was not born with a silver spoon in my mouth nor did I miss a meal in a day, however, there are many others in the community who have a different story to tell.

Cut! From the top…

When you read most of the articles on this ginormous account of lives (HeroPress), one theme stands out, “WordPress allowed me to create the life I wanted” and my story does not differ from the others apart from the finer details.

For most of my life, I have wanted to create a leveled playing field for others and myself. That is one lesson my parents labored to teach me; to consider others as well as myself. So for most of my dreamy childhood, I spent my tv-less afternoons contemplating building an orphanage or something that would help those who did not have the gifts/experience I had obtained in the universe. But how would I do this?

I was privileged to go through school from Kindergarten to University (We shall skip the nitty gritty) and obtained a Bachelors in Commerce. That continues to debunk the myth that most IT enthusiasts (read “nerds/geeks”) have a computer science degree. I do not have one and having it might supercharge my ego so I have sunset-ted that idea. Rather, I have focused to push in a direction that one of my former employers highlighted. He said, “You will make a good product manager one day!”. And I am building some WordPress plugins projects to come soon. But let’s rewind to the earlier story.

Yah! No CS degree.

“But how did you get into the IT field?” you might ask.

During my high school long vacation, I broke my sister’s work computer one fateful mid-morning. I had to fix it immediately. At that point in time, it was her life’s work. Luckily, it was just the operating system that was broken. I reinstalled it and that is how I learnt about how software worked. Coincidentally, that is how my passion for IT started.

2 years later, I secretly kept learning new things, HTML but Javascript completely threw me off. So I focused on HTML and CSS which allowed me to make some pocket change while I went through university. I had many corporate clients who sought me out in my university hall for a website.

So I studied 8am-1pm and worked in the afternoons and evening. This allowed me to save up for my first rental fees for when I left school.

(Plays evil music with a surreptitious wink)

Around 2009, one of my mentors in the web development game, challenged me to convert a PSD to WordPress because the client wanted to DIY the changes on their site overtime without need for a technician. As a reward, he would reward me for the hard work more than I had ever earned. He specifically asked for WordPress. I was lost in a new world. My thoughts only run around the idea that one could D.I.Y.

I was a business major, not a database guy. I had no PHP knowledge besides googling up how to make a contact form and linking the form fields. That is how I knew how to make websites. This new task had so many challenges. It led me to learn all the theme and plugin basics from the WP repo but all the themes in the repo did not match what the graphics designer had made. I was toast! We lost the contract because of learning and doing time constraints, but I was now on a new path.


That is how I met Chris Coyier, Jeffery Way, Tom McFarlin and Morten Rand-Hendriksen in that order. Like I said, “I was privileged”. I had the industry leaders show me the way via their video tutorials.

  • Chris taught me how to convert PSD to HTML with WordPress PHP via custom themes.
  • Jeffrey taught me how to make plugins. Cementing my PHP and Code architecture.
  • Tom taught me about making admin pages with options.
  • Morten showed me how to make things mobile and styling complex menus.
  • Google introduced me to stack overflow and the numerous WordPress blogs I am thankful for.

(Sniffs with tears)

Yes, I am not particularly talented but a good copycat. I followed what they did and deviated a little bit making solutions for my clients and myself. I learnt pretty fast and that is how I honed my current skill.

I kept challenging myself and now I blog about the solutions and have since started a Youtube channel to freely share the knowledge I have attained over time.

Privilege! Such an elite word with a capital P Dangit! For some it comes in different shades, others societal class, others in the life growth patterns. Why do I highlight this? It is because one never sees it unless they take time to meditate and be thankful for what they have.

Some Context

For context, I live in Uganda (East Africa) just on the outskirts of Kampala, its city. With over 70% of the 45 million people as youth and above 87% are unemployed. 25% of the entire population is impoverished (US$0.88–US$1.04 per person per day as the national poverty line. This measure is much lower than the World Bank’s international figure of US$1.90 ). So some of the underrepresentation challenges in the west are multiplied tenfold.

Yes, Privilege! My education really set me up. I went to “good” schools which gave me more opportunities. Through hard work, I got a government scholarship at university which allowed me to study in the morning and work in the evenings. In contrast, the privately sponsored students had a mixed schedule with no wiggle room. So when I was finally leaving school, WordPress had already set me up with a job. I was a freelance web developer with WordPress experience.

From then, I had work that trickled in with the e-commerce world starting to grow in Uganda in the early-mid 2010s. I turned my focus to the global market. That has since yielded much better fruit.

I am thankful for the large and friendly people in the community who have continued to shepherd me in my learning through their blogs, tweets and tutorials online.

At some point, the work becomes too much. And as the saying goes, “busy is good!” You cannot do everything. Since the end of last year, we are now transitioning into a full time WordPress Agency with the help that has come my way.

My dream is materializing. I needn’t build an orphanage when I can share some of my blessings (read work) with others. I am privileged to lead my local WordPress community in Kampala and that allows me to interface/share with lots of local talent.

I am penning this article at the office desk as I wait for Sharon and Faith; two brilliant ladies that I am co-laboring with to come in and we begin the day.

We can all change the world with one simple step(fork) at a time.

The post Privileged appeared first on HeroPress.

WPTavern: Phi Phan Launches a Separator Block With an Icon Option

Wordpress Planet - Wed, 04/20/2022 - 00:30

Less than a week after launching Block Enhancements, Phi Phan has released another project: Icon Separator. It is a block plugin for creating custom dividers with an SVG icon.

“I’ve tried to support icons in the core/separator,” Phan said when we last spoke about adding icons to core blocks. “But it requires changing the markup. So I may create a new tiny block just for it.” Now, he has checked at least one of the many ideas he mentioned off the to-do list.

Plugins that do one thing and do it well are generally my favorite types of extensions, and Icon Separator is no different. It is also the beauty of the block system itself. It was designed around allowing users to stick small components anywhere.

When first inserting the Icon Separator block, it will appear much like any other run-of-the-mill separator. It outputs a simple horizontal line across the screen:

Default output of Icon Separator block.

Users are welcome to use it in its default state, but that would not be much fun. This block is all about the icon.

The plugin bundles over 3,500 icons from the WordPress, Bootstrap, and Ionicons libraries, giving users plenty to choose from. It looks to be a carryover from Phan’s Block Enhancements plugin—it would make sense to reuse the same code. The block also allows users to input SVG code for custom icons.

It did not take long to pick an icon and begin customizing the separator output in the editor:

Customizing the Icon Separator block.

The plugin has a lot of options that allow users to make it their own. Besides selecting an icon, they can customize its fill and stroke colors, size, spacing, position, and alignment.

The block also has options for customizing the separator line itself, including solid, dashed, and dotted styles. Users can change its alignment, width, color, and more.

Various icons and separator modifications.

This block is an ideal use case for the reusable block system in WordPress. Assuming users wanted to use the same separator design across their site, it would make sense to design it once and save a copy for use everywhere else it is needed.

I am slightly disappointed that the plugin does not use the <hr> HTML element. I had grown excited when last speaking to Phan. I wanted to see how someone would tackle the problem this plugin does, but I expected it to be solved with the semantic <hr>. Part of this was just curiosity as a fellow developer and designer, knowing the limitations it would present as a generic block for use with any theme design.

Phan took the less-headache-inducing route of using a wrapper <div> and placing the icon <svg> code into it. That opened far more possibilities, and the block is probably the better for it.

However, I wanted to note that this block is not ideal for those who need to use a proper horizontal rule in their content. The <hr> element is meant for marking thematic breaks. It is better to stick to the core Separator block in those cases.

In scenarios where the divider is a design element rather than a break in the content, go wild. The Icon Separator block has plenty of options.

Icon Separator

WordPress.org blog: WordPress 6.0 Beta 2

Wordpress Planet - Tue, 04/19/2022 - 16:43

WordPress 6.0 Beta 2 is now available for testing!

This version of the WordPress software is under development. Please do not install, run, and test this version of WordPress on a production or mission-critical website. Instead, it is recommended that you test Beta 2 on a test server and site. 

You can test the WordPress 6.0 Beta 2 in three ways:

Option 1: Install and activate the WordPress Beta Tester plugin (select the “Bleeding edge” channel and “Beta/RC Only” stream).

Option 2: Direct download the beta version here (zip).

Option 3: Use WP-CLI to test: wp core update --version=6.0-beta2
Do not use this option if your filesystem is case-insensitive.

The current target for the final release is May 24, 2022, which is about five weeks away. 

Additional information on the full 6.0 release cycle is available.

Check the Make WordPress Core blog for 6.0-related developer notes in the coming weeks, which will detail all upcoming changes.

What’s New In Beta 2

As a reminder, contributors have fixed 209 tickets in WordPress 6.0, including 110 new features and enhancements. Each beta cycle focuses on bug fixes, and more are on the way with your help through testing. Here are a few of the changes you will find in Beta 2 specifically: 

  • Block Editor: Prevent styles from being added to the site editor (#55567)
  • Patterns REST API: Add ‘inserter’ to the schema  (#55567)
  • Don’t load remote patterns twice in WP_REST_Block_Patterns_Controller::get_items (#55567)
  • Add the ability to filter the whole notification email in retrieve_password (#54690)
  • Avoid translating empty plugin headers (#54586)
Note on Webfonts API

Last week’s announcement for WordPress 6.0 Beta 1 includes a reference to “Webfonts API: Manage local fonts with PHP or theme.json,” as a feature that would be included in the release. This specific functionality was not included in Beta 2 but may be available at RC.

How to Help

Testing for issues is critical for stabilizing a release throughout its development. Testing is also a great way to contribute to WordPress. If you are new to testing, check out this detailed guide that will walk you through how to get started.

If you think you have run into an issue, please report it to the Alpha/Beta area in the support forums. If you are comfortable writing a reproducible bug report, you can file one on WordPress Trac. This is also where you can find a list of known bugs.

Thank you to the following contributors for collaborating on this post: @dansoschin, @annezazu, @costdev, @priethor

And now a WordPress Haiku:

We code fervently

A breathless pause for the test

Key tapping resumes

Do The Woo Community: A WordPress and WooCommerce Presence at CloudFest

Wordpress Planet - Tue, 04/19/2022 - 10:00

Co-hosts Robert and Jonathan both attended CloudFest 2022 and share some interesting perspectives and comparisons.

The post A WordPress and WooCommerce Presence at CloudFest appeared first on Do the Woo - a WooCommerce Builder Community.

WPTavern: WooCommerce Plans to Bring Full-Site Editing Support to Single Product Templates

Wordpress Planet - Tue, 04/19/2022 - 03:35

WooCommerce is moving closer to closing the gap on its full-site editing support with the latest features announced on the Q1/Q2 roadmap. While the e-commerce platform already has support for nearly two-dozen core blocks, it’s not yet possible to use full-site editing for customizing every aspect of a store.

The concept of “Store Editing” is still in the early stages with active development happening in the WooCommerce Blocks repository. Currently, WooCommerce stores are fully functional with block themes with the help of a classic template block.

“We took a very transitional approach to this support by introducing a classic template block that works in concert with custom WooCommerce templates to make various existing PHP-based WooCommerce templates compatible with block themes,” WooCommerce engineer Darren Ethier said in the roadmap update.

More missing pieces from the Store Editing concept will be sliding into place soon with the introduction of the Mini Cart block, a cart button usually found in the header that shows a quick preview of its contents. The Mini Cart block is already available in the WooCommerce Blocks plugin and is anticipated to land in the May release of WooCommerce core. The team is also currently working on adding global styles support to its existing library of blocks.

Two new blocks are next on the roadmap – a Product Search Block and a Dynamic “My Account” link block. As major Gutenberg improvements for templates and menus are introduced in WordPress 6.0, WooCommerce developers will ensure Store Editing has compatibility.

Further ahead on the roadmap, WooCommerce developers have committed to “blockifying” the Single Product Template, transforming every aspect of the template to be powered by blocks. Ethier shared an early mockup of how that might look.

The ability to manipulate every part of a product listing, without touching any code, is something that was unimaginable before blocks. It is the culmination of everything promised by the block paradigm in the early days of the Gutenberg project.

A blockified single product template will empower store owners who might otherwise have had to hire a developer to make these kinds of changes to templates. Making customization more accessible is the reasoning behind the concept of Store Editing.

“The primary consumer of everything we build in this new Store Editing environment is the merchant,” Ethier said. “The end result is that merchants should have more ability than ever to be able to completely customize their store themselves even if they don’t know any code.

WooCommerce did not set a timeline for when the single product template will be fully powered by blocks but the plan is to update all of the plugin’s templates in the same way.

The move towards Store Editing will also have cascading effects on the developers ecosystem. Ethier anticipates it will create more opportunities for those who develop store customization products using blocks.

“Instead of the ecosystem having to reproduce various user interfaces and experiences in the solutions they build, they will be able to tap into a common set of APIs and components to create those solutions,” Ethier said. “This in turn will lead to a more consistent and powerful interface for the consumers of their extensions and themes and give more time back to the extension and theme developers to iterate on the unique logic/design of their solutions. There will also be potential for new emerging marketplaces that offer blocks, block patterns, and template part variations as improved ways for stores to be customized.”

WPTavern: Plugin Directory Limits Ownership and Committer Changes on Official Featured and Beta Plugins

Wordpress Planet - Tue, 04/19/2022 - 01:16

Plugin review team representative Mika Epstein announced changes for officially-recognized featured and beta plugins last Friday. Under the new rule, plugin owners will no longer be able to directly change ownership to someone else or add/remove commit access. The purpose is to prevent bad actors from pushing malicious code or premium upsells.

Plugin owners can still manually add and remove support reps for their plugins in the directory. However, they must email the plugin review team to change ownership or commit access.

Epstein wrote in the announcement:

This change was made due to the high profile nature of those plugins, and the potential for abuse if a plugin is given to someone who turns out to be malicious. We hope that it will prevent issues like a featured plugin being turned into a premium-upsell plugin.

The behind-the-scenes details were left out of the post. Presumably, the plugin review team would double-check requested changes or block them if something seemed awry.

The featured category displays the first plugins that WordPress users see from the Plugins > Add New admin screen. The beta category appears first on development versions.

Featured plugins via WordPress admin.

Active installs range from a few dozen to over 5 million for the two groups. However, the number does not matter, as pointed out by Epstein in the announcement. “If a 2-user plugin is made a Featured Plugin, then it will have this limitation.”

There are nine featured and 15 beta plugins. Many of the latter have low install counts, and some have not been updated for over half a decade. Some house cleaning is likely in order.

The limited number of featured plugins is not likely in any danger of changing hands. Most are owned by the WordPress project itself or Automattic.

The announcement almost feels like much has not changed. However, the assurance that bad actors have more hurdles to jump when acquiring featured and beta plugins is welcome.

The real danger with ownership changes lies with the other 59,000+ plugins in the directory. They have no such added protections.

Nearly a year ago, I started receiving reports that the Dark Mode plugin seemed to be doing something fishy. Once a proposed featured plugin, it went from being a simple tool for switching the WordPress admin color scheme to a copy of the premium Iceberg editor project.

This new rule change would not have gone into effect for Dark Mode had it existed a year ago. It never made it to the officially-sanctioned point of becoming a featured or beta plugin.

There is a 17-month-old ticket for notifying users of ownership changes, but there are limits to what is possible with such a system. For example, a company acquisition would not necessarily reflect changes on WordPress.org.

There have been clear and documented cases of developers and agencies acquiring a plugin and repurposing it. Dark Mode had only a few thousand users when new owners changed it. In the case of WP User Avatar, many of its 400,000 users had to deal with the aftermath of an overnight switch to a full-fledge membership solution. I have little doubt that the plugin review team catches cases of a more malicious nature.

It would be a management nightmare for the plugin review team to require manual approval every time a plugin owner decided to update the committers list. However, changing this for featured and beta plugins is at least a step in the right direction.

Gutenberg Times: Reaching the Future of Full Site Editing

Wordpress Planet - Mon, 04/18/2022 - 22:07

As you’ve likely heard, full site editing (FSE) officially landed in the WordPress world with 5.9, with more planned for 6.0 and beyond. If you’ve tried it out, you’ll notice that it was released with a beta label on its menu to indicate it’s in an early stage and that it needs feedback from people like you to evolve it. As people have begun exploring, though, questions abound: Who is full site editing for? Why is it missing XYZ feature? Will it meet my needs? Why was it released now when it isn’t yet fully formed? This post seeks to clear up some of these questions and provide a wider context for this current stage of WordPress. 

In some cases, the suite of features that come with full site editing has unlocked doors users have long wanted to explore, from editing headers directly to making site-wide design changes. In other cases, the current limitations of this initial beta version feel too rudimentary for some to adopt fully. This is all intentional – full site editing needs to start somewhere and will make sense to different people at different times. Ultimately, it was released now in order to get feedback early to better determine what’s needed to get it where it needs to go. If it’s not meeting your needs, provide that feedback and get specific about it in GitHub, whether on a current issue or in a new one. 

Who are the features for today vs in the future?

When thinking about who full site editing is for, as with all of WordPress, the answer is broad: WordPress seeks to be something for everyone. Ultimately, it is being built for all use cases but it can’t all be done at the same time. As a result, it does a disservice to only think about who full site editing features are for today vs. who they can be for in the future as the work continues to evolve. For now, I see these features as being best for the following situations:

  • People who are creating a new site and don’t have a deep experience with WordPress terminology/history. 
  • People who are familiar with WordPress and aren’t in need of some of the features listed in the next section. 
  • People well acquainted with the block paradigm and who have a technical understanding of how to make best use of templates, Styles, theme.json, etc. This includes those who might want to curate the experience
  • People with design skills who want to build a site in WordPress but don’t know how to code. 
What blockers do you see for adoption?

Right now, full site editing likely makes the most sense for those above from my vantage point, but it also sets the foundation for so much more and for everyone. If this doesn’t resonate for you, I encourage you to share what would help and to think about what would help all. I’ve heard from many of you and here are a few of the current blockers that I’ve heard prevent folks from adopting full site editing in its current state:

  • A way to lock blocks visually (this is coming to WordPress 6.0!) and in line with user roles. 
  • More theme.json options for both greater customization and more control. 
  • More options with the navigation block from mega menu items like having the ability to add headers to a menu to the ability to style interaction states.
  • Improved responsiveness options out of the box.
  • Being able to save drafts/more revisions as people were comfortable having with the Customizer.
  • Improving the accessibility of the editor itself and establishing accessibility norms for the future of block themes. 
  • And more! What do you see as a blocker? 

While full site editing features might not be for you today, let’s help get those features ready so they will be the right choice for you tomorrow. For more thoughts on this from the executive director of the WordPress project, check out the WordPress Briefing episode on “Is WordPress Made For Me?”

Photo from Jeff Golenski in the WordPress Photo Directory

WordPress.org blog: WP Briefing: Episode 29: How to Make a WordPress Blog

Wordpress Planet - Mon, 04/18/2022 - 12:00

In the twenty-ninth episode of the WordPress Briefing, Executive Director Josepha Haden Chomphosy reminds us of our WordPress roots — blogging — and discusses the basics of starting your first blog on WordPress.

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

Credits References Transcript

Josepha Haden Chomphosy [00:00:00]  

Hello everyone. And welcome to the WordPress Briefing. The podcast where you can catch quick explanations of the ideas behind the WordPress open source project, some insight into the community that supports it, and get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy.

Here we go.

Josepha Haden Chomphosy [00:00:39]  

All right. So you’ve been listening to this podcast for a while. You may be one of these contributors I keep mentioning; you may be an agency owner or freelancer. Maybe you’ve wondered how to make a WordPress blog for your big idea. Or, maybe you’re one of the many people who use WordPress for their project or business. Before WordPress was known as a content management system, as a way to get sites online fast, it was a blogging tool.

We have long since outgrown that, but even 19 years into our journey, blogging is still a key part of what WordPress enables you to do. That’s because even after those 19 years, the mission of WordPress is still the same. And that is to democratize publishing, to help people have a place online where they can tell their stories or share their projects or set up their businesses.

If you’ve ever tried to set up a blog, you know that there isn’t a lot of information about what to know before you get going at all. So I’m going to talk about that a little bit today. And just by the way, if you heard the word blog right now and thought, oh, Josepha, how old fashioned? I think it’s important to remember that there’s a business advantage to having well-written, relevant content on your website.

Josepha Haden Chomphosy [00:01:59]

And if you’re not blogging for business, because not all of us are, then the benefits are a little different but still important to my mind. Things like the cathartic benefits of journaling, a chance to build community, and the general importance of preserving wisdom for the ages. Anyway, back to the topic at hand. Before we can get to any of the fancy things that WordPress can do nowadays, it’s important to know a few things as you get ready to set up your first ever website.  

So let’s dive in. Here is how you need to get yourself started. First, have an idea and a plan. So have an idea for what you’re doing, the concept of your content, who you want to reach, and some concept of a domain name. I would encourage you to not necessarily get your heart set on a domain name at first. Cause, like, if you want the domain name, wordpress.org, like we own that, you can have that! But if you know that you want a domain like WordPressbloggingforthefuture.com, like that one might be more available. And if you know the kind of words you want in your domain, you can be a bit flexible about what is there. 

Josepha Haden Chomphosy [00:03:09]

The second thing that you need to do is that if you are just getting started, ask yourself the question, what sort of host do I want? We kind of mentioned all along the WordPress process that, like, you need a good host, but it’s not always clear where that decision has to happen. It happens right here at the start, before you even know what WordPress is most of the time.

So, the earliest question that you have to answer for yourself is what sort of host do I want? Where do I want my site to live? So ask yourself how much you want to get into the maintenance and configuration of your website and the hardware that it lives on versus creating content or keeping your shop up to date. 

There’s this whole spectrum of hosting options, and they range from full service where they will keep your WordPress software up to date, provide daily backups, and have customer support if something goes really wrong. So it ranges all the way from full service like that all the way down to essentially zero services, just kind of hands-off.

Josepha Haden Chomphosy [00:04:11] 

They give you a space to keep your WordPress software, to keep your WordPress site. But they leave everything else up to you. They leave the backups up to you. They leave updating up to you, things like. So that’s the first thing you have to ask yourself. And the first question you have to be able to answer. Most of the time, you will want to start with one of the full-service options. That way, you know that your software is set up correctly and safely from the start. And as you learn more about the software and what you want and what you need, and you have the ability to learn in the time that you have, the more that you can add on either service with the existing hosts that you chose or moving to a different host; however that works out for you.

So if that one sounds like the right option, then you choose a host, go to their site, and actually most of them will have a way to walk you through how to set up a WordPress site inside their system. Most of the time, it’s just one click and then they ask you some questions to get some configurations right.

Josepha Haden Chomphosy [00:05:10] 

The other option that on the like zero, zero service side, that’s not quite fair, but you know, the other side of that spectrum that probably will be appealing to you if you are already familiar with code or already know how to manage a server or, or you know how to work in this thing called c-panel, et cetera.

So if you already have a lot of information on how all of that works, you can, if you want to, head over to wordpress.org/download, and you can download a zip file of the WordPress software and set that up in your own environment. 

Okay, quick check here. If this all sounds roughly doable to you, or at least it feels like we’re in the right starting point, but you find yourself thinking, gosh, I just wish she would slow down a little.

I’ve got you covered. In the show notes, you’ll find a link to one of the Learn WP courses for getting started with WordPress. There’s a section on choosing a host as well as various other early steps of this process. So if you felt like I blazed through all of that, which honestly I kind of did, you can work through those lessons in that course, at your own pace, and it’s, and it’s really a very good guide.

Josepha Haden Chomphosy [00:06:24] 

All right. Let’s pretend we did all of that. Now you’ve got yourself a website. The thing that you will want to do next, or rather the first thing that you’ll notice once you get your site up and running, is that there’s this ‘Hello World’ post– there’s a post that already exists in there. The Hello World post is a placeholder for the common features of a blog post.

There, you can find your featured image, your title, your content, and even some fake comments. You can either edit this post so that you can see how your writing will look from the start, and you can kind of compare like, okay, the Hello World part over here on this page, exists in this field over here on this page. So you can kind of see where everything works, how it all looks together. Or, if you’re more familiar with WordPress or CMS in general, you can simply remove that and start fresh. 

Josepha Haden Chomphosy [00:07:17]

So we’ve got now a website, we know, kind of, how to look at our posts and create posts, where comments are, where they can kind of be moderated and stuff. And so, the most fun task for everyone is choosing a theme. But if it’s not a fun task, if it doesn’t sound like a fun task to you, I can help you kind of do some, choose your own adventure guiding questions here. 

Firstly, you can ask yourself how you want the site to look. Do you want it to mostly be a lot of photos or entirely words, mostly animations? You can head to the theme directory and search for a theme with most of the features that you want. There’s like a filtering system where you can put in, like, you want three columns so that you can have three columns of text if you want it to look kind of like an old school newspaper kind of layout and things like.

Josepha Haden Chomphosy [00:08:12]

There’s also a way to look for themes inside your instance, your WordPress site, but like, if you haven’t set that up yet, but you do still want to see kind of what your theme options are, you can go to wordpress.org/themes and and take a look at what’s out there. Just as a quick side note, if you get to that theme directory, if you get to wordpress.org/themes, and it feels overwhelming, which I can understand, I recommend starting with a theme that is designed for blogging specifically so that you can see how things look right away.

And there’s actually a theme that does come with every WordPress site. So if you’re not ready, you can skip this thing entirely and just work with the theme that’s already there. Every word, press instance ships with a theme and it is fully functional when you, when you get your site up and running. So you don’t need to choose a theme right now if you don’t feel ready.

And then the other very fun thing that people do with their WordPress sites is to add plugins to them. So plugins are these little pieces of software that you add on to the WordPress software that lets it do additional things. It adds additional functionality. The questions that you can ask to kind of guide yourself through what sorts of plugins you might want, what sorts of functionality you might want to add to your site are a little similar to the ones that you want to ask for figuring out which theme. 

Josepha Haden Chomphosy [00:09:36]

So figure out if there are tasks that you need visitors to do. Do you need them to contact you? Do you want them to watch a video? Should they review and respond to questions?

If you have a concept of the things that you want users to do on your website, then you can head to the plugin directory and search for a plugin with features that you need. Also, there are just endless lists of recommended plugins out there; if that is something that you find valuable as part of your research, those are also easy to find.

And as a general side note here, there are even more plugins than there are themes. So if you have gotten to this point and feel like you don’t quite know the answers to the questions that I shared, and, and it’s going to be a while until you feel like you can know what those answers are. That’s totally fine.

I’ll tell you this. I have never seen a site without a contact form. So feel free to begin your journey there. There are a lot of great plugins for contact forms and it can kind of help you figure out how to work with plugins in that way. So yeah, I made it sound like you can get a WordPress website built in like seven minutes and on the one hand you definitely can.

Josepha Haden Chomphosy [00:09:36]

And on the other hand, it’s still a little bit more complicated. So here I have a final note for everyone. You will hear around the WordPress ecosystem. And obviously, here, are some things that could make you feel a little nervous about doing this for the first time. Things like the five-second installation, which WordPress has been famous for years.

But also about how easy and simple it all is. And as somebody who was once in the position of learning WordPress for the first time, like I first encountered a WordPress site in 2009 and I started learning how to use WordPress in 2010. So I can say with confidence that once you learn it, it’s easy.

We are the easiest of the hard options for CMS. Like content management systems are just complicated, but we are the easiest one out there. And so, as you’re learning, I want to just remind you to celebrate your small wins along the way. If you feel like you’re late to this blogging game, like you should have had a website for years. I mean, sure that could be true. And yes, the best time to plant a tree was 20 years ago. But the second-best time to plant that tree is today. 

WordPress didn’t start out powering over 40% of the web, and your first site can’t be immediately measured in the millions of readers. So, what will your small beginning lead you to? 

Josepha Haden Chomphosy [00:12:25]

And now that brings us to our small list of big things. 

The first one, the next release of WordPress, WordPress 6.0, has reached its beta phase. That means the full focus is on finding and fixing the bugs we accidentally created during this development cycle. Beta two comes out tomorrow and you can follow along in the core channel in the Making WordPress Slack.

If you’ve never seen how those releases get packaged, and if you just want to keep an eye on what everybody’s doing so that you can be the first to know, yeah, Making WordPress Slack is the way to go. 

The second thing on our small list is that speaking of WordPress 6.0, we had the public walk through a couple of weeks ago, which means that in a few weeks, I’ll do a WordPress 6.0 sneak peek. I’ll share some highlights of the release features and why I think they are super important for you to take a look. Sooner rather than later. 

Josepha Haden Chomphosy [00:13:22]

And then the final, big thing, if you are new to WordPress and this episode has you all fired up to start your blog, we have a bunch of contributors over on the Learn WP team that have just the thing for you.

You can join the online social learning space called How to Make a WordPress Blog. It’s a free online event that will help you get started. I’ll link the information in the show notes below. And I’ll also share in the show notes, a list of WordPress Meetup groups, where you can find more opportunities to learn and get support from other people locally who are also doing things with WordPress. 

But you can also find a list in the dashboard of your newly installed WordPress blog you no doubt have after this podcast.  

And that my friends is your small list of big things. Thank you for tuning in today for the WordPress Briefing. I’m your host Josepha Haden Chomphosy, and I’ll see you again in a couple of weeks.

Do The Woo Community: WooCommerce Developer Life Snippets

Wordpress Planet - Mon, 04/18/2022 - 10:00

With every developer we have a conversation with, there is a story. Woo DevLife brings those short stories to the reader.

The post WooCommerce Developer Life Snippets appeared first on Do the Woo - a WooCommerce Builder Community.

Gutenberg Times: Gutenberg Changelog #65 – Gutenberg 13.0, WordPress 6.0, Inline Token Proposal and more

Wordpress Planet - Mon, 04/18/2022 - 08:04

Birgit Pauli-Haack and Mary Job discuss with their guest, Dennis Snell, Gutenberg 13.0, WordPress 6.0, an Inline Token Proposal and so much more.

Show Notes / Transcript

Show Notes

Special guest: Dennis Snell, WordPress core contributor and JavaScript wrangler at Automattic.

Dennis Snell’s post on WordPress and Gutenberg

Announcements What’s released What’s discussed or in the works?

Inline Token with Dennis Snell: Dynamic replacement of server-provided content in blocks and in HTML attributes

Stay in Touch


Birgit Pauli-Haack: Hello, and welcome to our 65th episode of the Gutenberg Changelog podcast. In today’s episode, we will talk about Gutenberg 13, WordPress 6.0, Inline token proposal, and so much more.

I’m Birgit Pauli-Haack, curator at The Gutenberg Times and WordPress developer advocate. And I’m here with my co-host Mary Job, WordPress advocate, support engineer at Paid Membership Pro, and community organizer of WP Africa.

Also with us today is Dennis Snell, software design engineer working deeply in Gutenberg, WordPress Core contributor, and JavaScript wrangler at Automattic.

Good evening, Mary. Good afternoon, Dennis. Welcome to our show. Seems we all three are digital nomads at the moment. So how is everyone today, and where are you located, and how is your weather? Three questions right out of the gate.

Mary, you want to start?

Mary Job: Yes, I’m doing great, Birgit, thank you very much. I’m right now in Kigali, Rwanda. The weather is quite better than in Nigeria, it’s not known to be hot over here. It’s usually cold, but not too cold. And I’m doing good, thank you for asking.

Birgit Pauli-Haack: All right. Dennis?

Dennis Snell: Thank you, yeah, thanks for having me on here. I’m currently in Tucson, Arizona until tomorrow, and the weather is sunny. The high today is around 30. For all my colleagues here in the US, that’s around 85 degrees. And I’m having a blast working on some blocks, working on implementing Gutenberg in context outside of WordPress. So yeah, I look forward to this chat today.

Birgit Pauli-Haack: Yeah. Well, it’s such a great pleasure to have you, Dennis, and thanks for joining us for the discussion of this week’s Gutenberg release and your Inline token proposal.

But until we start going into the details of both, tell us and our listeners a bit about you, Dennis. How did you get to work on WordPress and with Automattic?

Dennis Snell: I have a somewhat traditional WordPress entry story. Long ago, I was building webpages for my clients and wanted to give them more opportunities to edit their content. So I had a hodgepodge of home built, naively implemented content management systems.

And when I stumbled upon WordPress it seemed so easy in order to do what I needed. And so basically from the moment I found WordPress, I almost exclusively used it for the websites I was building.

Down the line, I was working at an electric utility as an engineer, and just really wasn’t getting enough programming in my day job to meet my wants since programming is a passion of mine. And so I wanted to find work that would let me dive deep into programming challenges really deep, and I was also looking to find a job that would give me more flexibility to do what I wanted with my day schedule and better meet my work habits. Again schedule, I work at night a lot.

So Automattic had been on my radar for a number of years and it was the pie in the sky dream I had. I applied and basically said I have no professional programming experience, but things worked out quite well. So that’s how I got to Automattic. It wasn’t something I expected to get, but it’s been a good eight years now that I’ve been there.

Birgit Pauli-Haack: Wow, eight years. That company has definitely grown in those eight years. Awesome.

Well, you were right at the beginning, if I remember that correctly, of Gutenberg, and you must know all the depth of the project.

I still share your article, Gutenberg Is Not HTML, from September 2017. And for someone like me who wrote HTML code manually at the web’s beginning, that was quite a conceptual jump to wrap my head around. It’s one of the many conceptual rethinking that was done with the development of Gutenberg on how content is created with blocks.

So I highly recommend the post to any developer who wants to learn building blocks or for the block editor, but it’s just the beginning. So then is what other revolutionary concepts implemented with the block editor are difficult for developers of the early internet days, or backend developers or PHP developers? And do you have any advice for them how to learn this better, faster?

Dennis Snell: A quick call out to the listeners who don’t get the opportunity to read that article before I start answering my question, is that I’ll point out that what I consider one of the more revolutionary concepts here is just that we see HTML on the web as the formatting language, and it is, but it’s a very low-level language in the way that assembly code is a very low-level programming language.

And with the Gutenberg block model, we’ve been able to heighten the level at which we describe the content we’re creating. And so while the image tag is absolutely the way to display an image in HTML most of the time, in Gutenberg we’re saying that’s an implementation artifact of the fact that we’re trying to create an image in our document. And the same way goes for other content types that get more complicated.

Other revolutionary concepts, I’m not sure they’re revolutionary so much as reflectionary. I think one of the things that I walked through in my programming journey on the web and that I’ve seen a lot of us do is I think when the web became a popular thing and HTML became the language we speak, we almost didn’t recognize the traditional programming practices that had guarded us in more typical software concepts around modularization, concepts around organization and design. We didn’t realize those could also transfer into how we generate web content and web pages.

We can recognize this in the way that we mix HTML and PHP, and even some of the bad rap that WordPress gets for mashing together those different things. None of this stuff had to happen. In fact, even back in the early days where everybody was writing pearl scripts, it was so easy to mix and match content and logic and presentation that we just did it out of convenience.

With the block model and with the editor’s data model, what we’ve tried to do is make the easy option operating on these more designed, structured interfaces.

The fact that this is all stored in HTML, going back to that article, is beside the point. The point is we’re able to interact with our modern expectations for creating web content, that’s things like being able to be responsive on different devices, being able to be progressively enhanced, interacting with other webpages and services out there. We can do this in a way that is principled by the default path.

And to me, that’s one of the biggest impacts that we’ve had. I think a lot of this stuff was a little nebulous in the beginning, it was an experiment. Can we do this? Can we build a structured system? Can we make it work? Can we do it without breaking backwards compatibility? Can we do it while preserving the openness that we love so much about the web?

And for the most part, it’s worked out really well, and I think that probably deserves a lot of consideration and appreciation as we move forward.

Birgit Pauli-Haack: Yeah. Well, awesome. There’s a similar movement to modernize and to structure and to systemize also in designer systems or design systems starting with the atomic design, and I think those principles actually matched up with Gutenberg. So I think that is where the web and the development on the web was going early on. But bringing it to WordPress, the monolith WordPress all of a sudden and then breaking it up into smaller pieces that then are assembled again.

So that has been a six year, maybe even seven year journey for you?

Dennis Snell: I looked that up recently, I think it’s somewhere around there, yeah.

Birgit Pauli-Haack: But you have been with Automattic for eight years, so pretty much three quarters of your time you spend on Gutenberg and the revamp of how you create content in WordPress.

So was there anything when you… I don’t know if you have it on top of your head or have thought about it. Was there anything that you started out thinking about and how this… And implement with the team, Matias and Grzegorz and Riad and all them, where you were surprised how it turned out after, I don’t know, 100 iterations or 100 plugin releases.

Dennis Snell: I was skeptical in the beginning of our JSON comments inside of the block come into limiters, and I was skeptical about how that would all go down. And really what became I should say the driving force behind that were the practical considerations brought in by thankfully the diversity of input at the time among the WordPress community to say, Hey, we care about backwards compatibility. We care about openness. We care about having one source of truth.

And so, like I mentioned, I went back to those early discussions in Slack, which are still publicly available, and we had a lot of discussion about how we would fundamentally store Gutenberg posts. And there was a strong argument in favor of creating a JSON data format that would be stored in the database. There were arguments for storing block information separately from the post content.

There were discussions about storing all of the attributes and data at the top or the bottom of the post in a delineated area. And so I think what’s neat about how this all developed is just getting input from a lot of different people forced us through these constraints.

Okay, well yeah, but what happens when you export your site? What happens when you don’t have the software anymore? What happens when you’re trying to archive these pages long-term? And I don’t remember when I was fully went over to the idea, it was after we built the initial models of it. But that one I think is still neat and what I consider one of those happy accidents or happy experiments in history.

Birgit Pauli-Haack: Yeah, and I still marvel at the 5.0 release in December, 2018 when nothing broke. The internet did not break with WordPress 5.0. And the conversion of classic content into blocks was very, very seamless. You could open up a… Yeah, and that was really surprising to me because normally when you change these technical paradigms then there is a strong break of backwards compatibility. And this is definitely a great step for that.

It’s still the wonder when I touch a site that still used the classic editor and I converted to block to Gutenberg. Yeah, it’s still totally amazing for me. So, well I think we could both talk quite a bit and maybe we get a chance to talk a little bit further into it, but we have a job to do tonight, or for me that we have the Gutenberg 13 release.


But before we go in there, I think we need to walk through the happenings of last week. There was a recording of the walkthrough, April 5th, of what’s possibly or not possibly to come in WordPress 6.0. And the recording is now available on WordPress TV and then Dan Soschin published a 6.0 product walkthrough recap with summary and issues list and the chat transcript as well as the video transcript.

So to get a sneak peek at what is coming to WordPress 6.0, what might still need some work before it’s available in Core, check it out. And it’s about an hour long, so you get definitely a sneak peek and see Matias Ventura, still the demo master of the master of life demos in that show. Did you watch it, Mary or Dennis? Did you get a chance to look at it?

Dennis Snell: I didn’t have a chance to look at it, no.

Mary Job: I haven’t been able to watch it either.

Birgit Pauli-Haack: All right, so let me tell you about the highlights then. The WordPress 6.0 Beta came out also this week and later on we will have some calls for testing. But the highlights of the sneak peak was that the style switching is coming with that you can… A theme developer can give you multiple theme JSON files and change the nature of a theme, so you don’t need to change the theme if you just want to change the color palette or some typography or the outlook, the graphical outlook of it, which is still really amazing.

And it’s going to have some great creativity coming into the fold. Then you get more template options, you can use the blocks to edit five more templates, the author template, eight categories tag, and any other taxonomy template. So that is definitely a relief for a few.

And a few people have been waiting for few million I think. And then you can easily select text across multiple blocks now and edit them to a liking or delete them. Then there has been great efforts made to keep custom styles in place when blocks are transformed into other blocks, like from paragraph to list or from group to cover. Or a button so you don’t have to replicate all the settings again.

More patterns will come into place with a quick insert that surfaces patterns at certain relevant semantic kind of thing. I haven’t seen that yet, I will see how the mind reading works from the developers. The list view will have some improvements and there will be some design tools. There will also be new blocks, the comments block, the read more block, the post author biography block.

And then the whole block blocking UI will come into WordPress 6.0. And last but not least, what we saw latest also coming in 12.9 is the export of themes that you created or modified with the site editor. So a question for you all, is there anything that you are particularly looking forward to seeing land in WordPress 4?

Dennis Snell: I’m excited about a few things. I don’t know if you want to go first, Mary.

Birgit Pauli-Haack: Well, go for it, Dennis.

Dennis Snell: I don’t think we can understate how valuable the partial text selection is going to be, great work there. Just super valuable for I think everyone, because that’s something that we’ve lost when you’re trying to select across multiple blocks but you don’t want everything. There’s a switch over that we’ve had that it just defaults to selecting the block instead of the text within a block. So that’s going to be incredible.

And that’s I think going to make it easier to adopt Gutenberg and even more context, because those are expectations that people have. By the way, that’s not an easy problem. And so it’s going to continue to get better, but it’s a hard problem to solve in these web-based editors.

Birgit Pauli-Haack: Yeah, I saw a comment that Notion, that’s a project management note-taking application, they just after 10 years or so had that feature, they didn’t have it before either. So it’s really a hard thing to do. And having that now in the block editor is definitely something that will improve the writing experience considerably. Because it’s one of the things that I heard a lot of people who write in the classic editor, they were surprised that wasn’t working and it threw them a bit.

Dennis Snell: Yeah, apart from that, I’m really excited about some of the underpinnings that we’re seeing with these style variations to make it easier, to more interactively adjust different elements of your site’s theme non-destructively, to be able to move sliders and visually see the feedback, and close this cycle of okay, anticipate what change might have, code in some value, reload the site.

Instead we can just flip back and forth in real-time and see that. And I’m also excited about the bit that we’ll talk about later that I put in there, which is just preserving broken blocks. Because I’m not the only one who’s ever hit save on a post and immediately after save realized that the block I just wrote is now broken. So we’re doing a lot of work actually to support other changes going on in future releases, but we’re doing a lot of work to make sure that if the editor’s unable to understand what’s loaded in post content, that it doesn’t change that or get rid of it. So those are the three big ones for me.

Birgit Pauli-Haack: Yeah, and I’m glad you mentioned that we are talking about that a little bit more when we come to the change log of 13. Mary, what is it that you are looking forward to 6.0?

Mary Job: I think Dennis already hit the nail on the spot. It’s that more to select, being able to select… You don’t know how many times I’ve tried to select a block and then I have to take them one by one. And I’m like, “Why can’t I select all of this at once?” But I quite understand when he says it might look simple but it’s difficult to achieve, because if there’s one thing that I’ve come to realize since doing WordPress support is that the simplest of the problems are the ones that you end up spending the most amount of time on because you underestimated it. So I can relate to that.

But I’m excited about that feature, and honestly, I can’t say thank you enough to all the people who are working on Gutenberg.

Birgit Pauli-Haack: Yeah, I’m looking really forward to all the list view improvements because that has been the power tool that I saw, and that has gotten so many small improvements that make working with it so smooth and easy to navigate your big template or your big posts, that there are some really great changes in there.

All right. So as I mentioned, the WordPress 6.0 Beta 1 has come out. And dear listeners, you are our core team. We need you because the release team has published not one but three calls for testing. One is titled help wanted, test WordPress 6.0, that’s the direct testing of the beta versions. Not only the Beta 1, next week we will have… April 19th, we will have Beta 2. And then later the release candidates. So we have that post and it walks you through testing environment, testing tips, then the key features to test, the editor, the blocks, the design, and the theme plugin development or backwards compatibility to how the plugins and themes work with 6.0.

It has been in great detail so you don’t have to come up with making all the decisions what exactly do I have to test, that is really a great post to follow along.

Then, Anne McCarthy has from the full set editing outreach program at the call for testing 13 out, which walks you through authoring an author template. That’s one of the five templates that will come to WordPress 6.0, but it will also walk you through testing the blocks or lock UI as well as customized no results for the query block and more design tools.

Again, Anne McCarthy has some very detailed instructions for you. And last but not least, help test the custom blocks for WordPress 6.0.

So up until now, we had one block for the post comments to add to a template or to a theme, but there was a team of developers who started out similar to the post template, having each data item like the content, the author, the date, the link, all in individual blocks. And now those can be styles, those can be used much more granular in your decisions. But it needs testing definitely, and the testing will also decide if it will come to 6.0.

So that’s definitely, you got your work cut out for you, dear listeners, if you wanted to follow or heed all those calls for testing. And then there has also been on the make blog an update on the state of the discussion and the explorations for standardizing styles and presets for themes. There’s a whole proposal was there from Mark Rutwiley and there were comments, and also some problems that themes also anticipate with the full site editing that they needed to be standardized, and the customizations being… Typography being it’s how will primary and secondary color change?

All these names, can they be standardized? How custom CSS will be coming into or dealing with blocks and full site editing? So Roman has published a post where he summarizes not only the challenge but also has links to the first explorations and the PRs that you can follow along with and test them. This is all under the big headline style engine for WordPress and Gutenberg.

He also has a section there how to get involved, so definitely check it out if you want to be at the forefront of the discussion and decision-making. 

What’s Released – WordPress 5.9.3 and Gutenberg 13.0

So what’s released? There were three releases. One was the WordPress 5.9.3, if you haven’t updated yet or if you haven’t updated automatically, stop now listening to this, go and update your websites to 5.9.3, security and maintenance release with a few bug fixes.

If you want to hold off on 6.0 when it comes out, you definitely want to have the bug fix system we’re backboard from the block editor. And we will have the link in the show notes for the list of changes that come in 5.9.3. 

So now that you’re back from updating, WordPress 6.0 Beta came out and we will have the link to the beta release notes. And of course, we have all the calls for testing for that in our show notes.

And now we come to Gutenberg 13, it’s the… Adam Zielinski led this release and published a release post on the make blog on April 14th. So that was after beta, but all the features that went in Gutenberg 13 is the last plugin version that will… Which of the features and enhancers make it into WordPress 6.0. Afterwards will only be bug fixes and the like.

And Grzegorz Ziolkowski, our friend here, a long time co-host, also handled the merge in for the Beta 1 release into Core. And there are also a few things that might not make it, few things in this release that might not make it into WordPress 6.0, and we will point them out as much as we know. But this is quite the big release, it’s 234 PRs or no, it’s 234 line items in the change log that’s about a mile long by 70 contributors with… Alone enhancements were 90 of that. So that’s really something.


So do want to start out Mary in the enhancements of the block library?

Mary Job: Okay, Birgit. So we have a couple of enhancements, I’ll start with the block library. Yearly, weekly, daily archive settings have been added to the archives block. We also have an enhancement to the code editor, which now presents the source of unrecognized blocks inside of the code editor.

Dennis Snell: Well, as alluded to just a little bit ago, this is the preservation work for what I like to call unrecognized blocks, the editor calls invalid blocks or missing blocks. And just the idea is it’s a workflow that I hit more often I think than a lot of people just because I’m often wanting to go in and play with markup changes, or I’m developing a block and it’s undergoing periodic changes. Or I want to see, what if I made this change both in the code editor and in the visual side now if your blocks are marked as invalid by the editor? It won’t touch that, it’ll basically just leave it as is.

So in the code editor there was this funny behavior where if you went in and made an edit, and for some reason it didn’t validate properly, as soon as you left the code text area, the content you wrote just would either disappear or change or get corrupted somehow. So right now, it’s going to treat that just as your plain notebook text editor. It may still mark the block as invalid, but as far as the editor goes, whatever you type is going to stay around.

So a lot fewer headaches for me for that. And then, yeah, the partner to that is on the visual side, if a block breaks, it’s going to show the HTML preview and forever since the origin of the project, that it might show the HTML preview if you’re lucky enough, but it was regenerating that block content from the attributes that the editor already knew it didn’t recognize.

So just a little note there is that if something is broken, it’ll leave it broken, and that makes me excited beyond probably what it should.

Birgit Pauli-Haack: Yeah, and I think the one stepping stone that a lot of developers found was actually the deprecation of blocks, the whole versioning system of the static blocks. And it’s so cumbersome for many developers that they decided to go with dynamic blocks right out of the gate or after they went through it with their first block, and render from the front end, from the PHP, which then circumvents that. But it also has a downside that it might take another trip to the server to actually show it and slows down the content creator.

So, I think you’re doing God’s work there and angels are working on it to make that experience a little less daunting for a developer. I see blocks that have these big, big separate file that the deprecation of blocks versioning system, that part could be longer than actually the rest of the plugin.

Dennis Snell: One other note on that is it has been very difficult to create invalid or unrecognized content in the editor up until now. And we often talk about the code view and the fact that this is all stored as serialized HTML in post content as an escape hatch. If there’s something that you really need to do and the editor doesn’t support it, and your writing post and you just need to get this published by Friday, you can now go into that code editor and add your custom HTML to your paragraph block.

And effectively, what that will do is it will lock it from the visual side because the editor says, Hey, I don’t know what to do with this so I’m not going to do anything, but it lets you go ahead and make the change. And that’ll be saved as a revision in the document so you can always see what it was. And we always have the other fail safe, which is add an HTML block. But sometimes the HTML block just isn’t as convenient as jumping in, making the change you know you need, and moving on.

Birgit Pauli-Haack: Yeah, thank you. There are quite a few bloggers out there that have always fiddled with the HTML, and now they have this outlet again. That’s wonderful.

Mary Job: Okay, still on enhancements, the column block also there’s been added block tabs. This means that you can now control the space from zero right space to large app gallery style gaps. The space around your columns is an integral part of your layouts.

Birgit Pauli-Haack: Yeah, it’s great. The block gap support is now… It was already in the gallery and now with 13, it also comes to the columns block. So that’s definitely… A lot of people were looking for that to control the gutter so to speak. And then there’s some… This enhancement to the cover block is definitely one that gets me excited, when I can use a cover block dynamically and then add the feature image for the post template.

So I can use the cover block as a part of my query loop when I want to… Or my single post template when I want the hero image as a background and then the text of the title on top of it. So that wasn’t possible before with Core block but now it is, and I’m glad it comes to 6.0 man.

The group block has two variations, we know about the roadblock variation, but now it also has a stack variation. And that is the first time that responsiveness comes in as intrinsic layout or design layout to Gutenberg, and responsiveness comes now… Is now available for the group block at the stack, which means if it stacks it in multiple columns, it’s a flex CSS. So you have four buttons or three columns that are stacked in a… Or three paragraphs that are in a group block, you can get them to display in a wide screen in three columns, but you can also, when you go to the smaller screens, it stacks them into one column or adapts to the width of the screen. And that is definitely a great feature to have now.

All right, what I like is that the list block gets a box size order box, which means that you can have a background on a list block but the list stays where it is. So the content is not padded on left and right like it was with a group block when you needed it before, the list can now handle background color. And this is awesome.

The navigation block got some updates and it added… So when added to the template or template parts, now the default is to grab the first available menu that was created in the background when only one exists. So that eliminates a few steps, before you had to click on it and then select the dropdown. There was only one in there, so it’s a much faster way to add a navigation block and a menu to the navigation block. It also now supports text decoration, like underline or strikethrough.

Why would I strike through a menu item on a navigation block? 

Dennis Snell: Builds mystery.

Birgit Pauli-Haack: It’s the mystery of the web, yes.

And then with this release site, owners can also add a link description to the navigation link blocks, which is definitely an enhancement. Because that could be the beginning of the mega menus that people would like to build with a navigation menu, navigation block, but it’s not available yet. But you can add the link description to it.

There were also some minor up fixes as well as small changes. Also want to highlight that the post comment block that was previously used is now deprecated in favor of the granular post comments blocks, like date and author and content and link. So it will be hidden in the inserter, although if it’s not coming to 6.0 I’m going to keep an eye on it. But we won’t deprecate the post comment block there.

The quote block now also supports color, which means background color, text color, and link color, all that is now coming to the quote block.

But there’s also, and we talk about it later, the experiments, a new version of quote blocks in the experiments that uses inner blocks, which is quite nice. But we’ll talk about it later.

Dennis Snell: Okay, very good.

Birgit Pauli-Haack: Yeah, we’re going through the change log so people when they follow along or go back to the release, they can find it. So the RSS block had a few enhancements has now all the missing class names that is needed, you can free pen the HTTP to the URL. Is it HTTPS or is it HTTB, and you can also update the maximum items. I think the RSS block was very rudimentary and now got a few features in there, enhancements.

And the last enhancement that I want to point out, as I said, there are 90 enhancements in this release and about 30 in the block library, 34 in the block library alone.

So the last one I wanted to point out is the site logo and the featured image in the post template blocks of the site logo for the seam block and the feature image for the template… Post template or page template there now have duo tone in the placeholder. So even if you don’t see the image or the logo, you will see that the duo tone has been attached to it.

There are a few components changes to the borders and the border control, as well as the color palette, but they will seem to be quite technical with most of it not user facing, I think, or you wouldn’t know. There is the style sidebar, that’s the global… Previously was called global style, but that’s the right sidebar for the template editor for the site editor itself now has a search in the block types list and also has labels for the global style variations, and has a tweak in the preview box.

I really like when you go through the styles and then you see the preview of the styles, it’s really cool. The multi selection you can now partially… Select partials of for instance, paragraph block where you have the last line of the top one, and then there’s the first line of the second one. And you can highlight those and either make it bold or italic or just delete it, editing over… It’s only for rich text I think, but that’s a huge improvement on the writing experience in the block editor. Definitely.

And you can directly link to files stored in the media library by using the link user interface. Oh, what I really like in the document settings in the post editor is there is now a summary panel on top of all the settings where you can see the featured image, the title, and the excerpt. And I really like that.

So you see just a glimpse of the final post when you go into the document settings. And before you hit publish you can see how that is, how it looks, and you can actually have a maximum height control there.

All right. Mary, what is the block locking coming up?

Mary Job: Yes, the block locking interface also got some enhancements. So I’m particularly excited about this because what it means is that as a site designer, if you do create your site for your clients with good and bad, then you can lock the blocks and prevent the site from breaking the site.

I know I’ve had to do backups to prevent this from happening in the past, so I’m excited about this. So it also got some enhancements, there’s PR was introduced to use block lock feature. This makes it easier to assess lock status. Also display lock status, you cannot display lock status in list view. This is good. And then styling changes have also been introduced for this model. This means you can remove those separator lines. You can increase patterns so nested items line up correctly.

You can swipe existing icons for locked on locked icon indicators. And you can over this block to see that also. Okay, and lastly, reusable block edit locking has also been introduced. This means that you can… There’s the option to lock editing for usable blocks as well.

Birgit Pauli-Haack: Yeah, it’s really great. Yeah, it has been wanted for so long and now we have these user interfaces. You were able to lock those blocks as a developer in certain ways, but now a site owner can lock the things for their editors or a theme developer can lock block patterns as well. That’s also part of this, I believe.

And this is so much cleaner now that people don’t… And the reusable block is also important because there were some accidental changes to reusable blocks when added to a post or page. And people didn’t know that that was a reusable block that only when you hit publish it made them aware that they actually changed something that might have been… And the changes might have replicated over the whole site, wherever that particular reusable block was used.

That is really, really helpful. There’s some changes also to CSS and styling, and it was a bit in discussion where the block gap UI should reside. Should it be in the global standards or in the layout, and I think right now the decision is to have no block gap UI for the global standards but have the block gap appears on the individual block settings level when it’s supported through the theme or the block JSON.

And Dennis, if you have something that I’m… Found something wrong that I was saying, please feel free to correct me.

Dennis Snell: No, no. I have no correction right there. Thank you.

Birgit Pauli-Haack: I didn’t see you if you making faces or not. So there’s something that the next one was a change in the block API that allows now multiple view scripts to a block. And it seems that’s not coming to 6.0, but what does that mean, Dennis. Do you know?

Dennis Snell: It appears that this is part of work to make sending out different versions of client JavaScript and style sheets for different browsers based on support or whatnot. Again, I’m just skimming the actual PR’s here. I think that’s the purpose to be able to optimize, so maybe send a version of the content out to modern browsers that don’t need as much backfilling, polyfilling support. But no, I’d have to read more through this. I’m not familiar with that work.

Birgit Pauli-Haack: Yeah, okay. It’s definitely one of the efforts to reduce the payload of the page when blocks are rendered and with different contexts you would need different scripts.

So the next section is then the changes, enhancements for the patterns. There is now an option to pick a pattern on page creation, meaning when you hit add new page the theme could offer you as a site content creator a various block patterns that you can start out with on your page and then fill in the gaps or modify, just have different modifications there.

This is definitely a great enhancement so you don’t have to assemble with multiple blocks but you have that one page, standardized page or a subset of standardized page views that you can add to your site. And the theme creativity here is so you can have a landing page and have all the things that you need. You need to hear a image. You have the text, the first flow text, then you have the call to action, and then the pricing list and that… So your content creator wouldn’t forget anything or it will all look the same. And you just have to fill in that text and the data for that particular page.

But it only works when you of course have patterns that are registered with that. There is in the note in the PR you will see how you can check if you’re a plugin developer or team developer, how you can check if there are post content patterns available. The API is experimental so it’s not documented, and there is no promise that it will stay that way. So just as a caveat for that particular thing.

And the theme export has gotten a number of features. It converts spaces into tabs with the theme JSON, it declares a version number. If it doesn’t have… If the theme declares a version number then the schema link will be added. It restores the appearance tools when exporting the theme that got missed in the first version of it. And now it also sorts the theme, JSON properties alphabetically so you can find things. But it looks a little weirder.

And the theme export features from Gutenberg 13 have been backported to come into WordPress 6.0. And the last enhancement part is the web fonts API. And right now there’s a discussion that it probably won’t make it into WordPress 6.0 because it didn’t make it to Beta 1. There was feature freeze. And that’s such a huge new API that it’s probably not going to make it to 6.0 because it hasn’t been tested all that much. But you can use it with a Gutenberg plugin, so go ahead and start testing it.

You can register the web ones with the style variation. It will register and queue the fonts by font family. And it will only register the fonts that are required to render the blocks that are present on this page. And there are also a number of optimizations for the HTTP requests when grouping fonts by font family.

Bug Fixes

Then we have 43 bug fixes in this release, and one of them, I mentioned that I like all the new features for the list view, but the list view is now one of the most used sections of the block editor I find. And if you don’t just write the blog post and it really starts getting immensely powerful when using it in the context of template creation. There’s now the multi block selection and collapsible expanding section that was in 12.9, makes handling multiple blocks much easier. You can move them all together. You can drag and drop them to wherever you want to drop them. Especially when they are nested ones, like with columns or group blocks we have all these nested blocks where you hit and miss when you’re in the canvas or in your content. But it’s very easy to point them out on the list view.

It now also paints a little box around it around the block when you hit him in the list view on the canvas, it shows you where you are, where the block is. That’s really neat. That might have been long there before, but I just saw it when I tested it.

You also see the lock for you cannot move the blocks when they are locked, which is certainly wanted. And you see the lock next to the block that are locked. Say that 15 times, block that are locked in a locked. And now you can also… There’s a better CSS targetability, I don’t know if that’s a real word, but you can now, if you style the editor or want to style the list view, you could target the title of the block with CSS, which I find neat.

Are there any other bug fixes that stand out? There’s so many…

Dennis Snell: There’s one I think hinted at in limiting the slug to Latin characters, there are some fixes in place, particularly prominent when people are pasting from something like Word or Google Docs. Sometimes you’d get a funny object character that isn’t quite a letter and looks weird, so I know people have been working on that just to smooth over one headache.

Sometimes if you did that it wouldn’t necessarily appear in the editor, but when it creates the site slug it adds some extra content you didn’t want. So that should be patched up now.

Birgit Pauli-Haack: Yeah, okay. Yeah, so sometimes you find yourself having emojis in there, that wouldn’t work.

Well, thank you for pointing that out. Awesome. So there are… I’m skipping over a few of the bug fixes and jump right to the developer experience. 

Developer Experience

There were a few adjustments to the schemas for block JSON as well as for the theme JSON schema, the block Jason now has an ancestor prop and also supports lock property that is added to the schema. So you can manage that as well.

And the theme JSON now adds an avatar to the schema, as well as the title key is now part of the internationalization as well. And that’s the title key for the pattern that are mentioned in the theme JSON, which is of what a feature that came in 12.9. But this is definitely an oversight to make it translatable for the internationalization.


And we come to the experiments of the section of the… We didn’t have an experiment section for so long in the plugin release, and now you have to switch them on when you install the plugin and you have to go to the menu that says Gutenberg.

And then there is one item there, experiments, and you get two things. One is the list block version two, and the other one is the quote block version two. And both experiments deal with having different other blocks in the list. You can have images or paragraphs or list and lists. No, I don’t… You can also use all the other blocks or some other blocks also in the group and have inner blocks support.

Dennis Snell: We can see what’s going on is the great implosion of core blocks right now, because we’re taking all these other blocks and stuffing them inside. So these two experiments are exciting. They’re experimental because if we were to actually go ahead and do this, we’d make these changes now, there’s additional roadblock with backwards compatibility. So we’re actually building the framework to the point where we’ll be able to do these in the future without as many steps.

But HTML allows arbitrary nesting of list content and quote content. So like you said, I know me personally, I use Gutenberg every day for my work journal, I track what I do. And a lot of times I have bullet points. And something I want to do all the time is add a code block inside of a list item, and that’s not possible unless I just create it as text. It doesn’t get the highlighting.

So with quotes and lists, the work is ongoing to be able to embed these things in another. Like maybe you want to quote someone quoting someone else, so to me this is really exciting. The image gallery is using inner blocks now, and we’re just getting to that point where all these things are embracing the fundamental nestability to expand what was until now an arbitrary limitation.

There’s no reason we can’t add an image inside of a list block. So keep an eye on these, they’re experiments again because they introduce some backwards compatibility problems that hopefully will be fixed by the time they’re done being experiments, but check it out because there’s a lot of UI and interaction challenges to solve, lots of feedback would help with that. So it’s exciting.

Birgit Pauli-Haack: Yeah, I’m totally excited about that too. Especially for the quotes, sometimes you want to have just a little image of the person that you’re quoting there or it’s a description of what the quote is, a description of a picture, and then the picture needs to be someplace else.

And the code list block and the list is definitely a great use case for that, yes. And I see the compatibility problems that I think Glen Davis ran into that when he was working on the gallery block, the second version of the gallery block when image blocks came into it. And then how to transform them back and forth from the version one to version two and keep some of those settings as well.

And it was quite the undertaking, but I can see that the learned lessons there will introduce also for a list and a quote version two.

Dennis Snell: Yeah, and hopefully moving forward, we won’t have to have these very long transitions as more blocks adopt the inner blocks.

Birgit Pauli-Haack: Inner blocks came much later to the block editor. It came with the columns block but it was a little different implementation before it came to the block editor.

Dennis Snell: Interestingly just a small historical bit there. The inter blocks were technically supported by the editors since some of the earliest days, but none of the blocks use them and a lot of the UI functionality lag behind.

There are actually some more interesting opportunities we have to unlock in the future if we want to add some complexity into the inner block system, that currently again, there’s no support in the UI. But the future compatibility is there, giving us some choice. So just a fun tidbit you can pull me aside at a word camp if you want to talk about.

Birgit Pauli-Haack: Yeah, I will.

Dennis Snell: Thank you.

Birgit Pauli-Haack: Yeah, and then there’s another other experimental block patterns to load the block patterns. Why are the rest API? And that’s the part when the pattern comes from the directory, is that the…

I highlighted it, but then I forgot about what it was.

Dennis Snell: There’s going to be a lot of utility to gain from loading more of these things from the API, because there’s a lot of context where we don’t need them. And so ideally we only load the code that we want to use when we use it. So this is working towards that ends to make it easier to dynamically load some of this stuff to make the editor boot faster.

Birgit Pauli-Haack: Awesome. Yes, cool. So there are quite a few documentation changes coming in. Some are minor, some are fixes, typo’s or grammar fixes, and then there were some code quality changes. They’re quite technical and I’m not sure user facing. Yeah, I didn’t highlight any of that.

Code Quality

But Dennis, you wanted to talk about the core data piece and the migration to typescript. What is it about?

Dennis Snell: Well, this is a very developer centric change, but in the past few sprints of work here, we’ve been doing a lot of work with typescript in the core system and the data system, both in the package called data and the package called core data, which gets confusing.

Basically, we’re trying to incorporate more and more typescript into the project for the sake of making Gutenberg’s internal APIs more self-documenting. So if we step back a moment and we think about what typescript is and why it’s used in the project, fundamentally types in the programming sense are about automating safety and automating bug detection.

And to that end, the project has a long history of using a type system embedded in JavaScript through comments. And that has worked out fairly well. typescript is taking that one step beyond which introduces a host of ergonomic enhancements for developers to remove some of the ad hoc nature of the way that we’ve described the types in the JavaScript, and make them a first-class citizen.

Some of those affordances open up or at least make other avenues a lot easier to get, which is what I’m interested in. And that is the self-documenting nature, because just as types allow the computer to understand our code better, to make different checks for quality, when it understands that it can also communicate back to us. And so the work going on in core data revolves around adding typed information to get entity record and its family of functions.

So for developers who are doing things like grabbing a post from the server or grabbing a list of tags, or interacting with this entity system that exists there in Gutenberg, what these changes are going to need are a couple of major things. Number one, when you tell Gutenberg to get an entity, it’s going to tell you what entities are available to get. Whereas before, a lot of time you had to know what you wanted or start reading the source code to figure out what’s there.

And the second thing is it’s going to tell you what data you get back. So when you make that request, you’ll get an object and your text editor, your IDE can tell you what properties are available and what kind those properties are. Some of that work isn’t going to land in six, but the foundations are being put in there. And the flip side data is the same kind of stuff, except instead of focusing on API calls it’s work on the store.

So if you’re writing a block and you want to get information out, like a block list or the list of inner blocks, or the site title, and you’re using select and dispatch, what this is going to lead to is when you type select, it’s going to tell you which stores are available to select from and then it’s going to tell you which selectors are available.

And then it’s going to tell you which arguments are necessary, and it’s going to tell you the kind of data it returns. So in this process there’s been a lot of low-level preparatory work, fixing things as mundane as our documentation generator for the project that builds the docs on the block handbook, fixing different linting issues, fixing different systems, like tests, that all break in these weird, specific ways.

And there’s a couple of big PRs out there for hitting the magic, and as soon as all this preparatory work is done, those PRs will get in and people will be able to start interacting in the source code the way that you might be able to if you open up the developer console in a running site and explore what’s in the state.

Birgit Pauli-Haack: Yeah, I got the high-level concept of that, and I think one question is probably in other developers’ minds as well. Do I have to learn typescript on top of JavaScript to actually interact with the Gutenberg and block editor and the building blocks?

Dennis Snell: That’s a good question, and one everyone asks. And there’s different ways to respond to this. One way is, well, if you’ve been developing in Gutenberg to some extent you’ve already been working with typescript, because the way that the project has chosen to mark the types of the functions and the data is actually being processed by typescript and uses typescript language, they just do it in a way that doesn’t change the JavaScript from being JavaScript.

The second part of that is for the most part, the effort that’s going on is what I consider the ideal goal. We’re shooting for the maximum benefit from the type system with a minimum amount of effort to use it, which means things like you won’t have to be working in typescript when you write your code. But if you happen to call, use… Or call, get entity record, or get editable entity record or dispatch editor store dot update block, or select block, what this means is that information is going to be drawn out of the core project and presented to you because almost every IDE and code editor these days is able to read that information without you having to write into it.

Birgit Pauli-Haack: So it’s actually really a tool, you don’t have to know everything because your IDE is picking up on all the information and you will see what the attributes are, what any of the additional information. That’s wonderful.

And thank you for doing all the underpinnings to that so it can come.

Dennis Snell: It’s really about documentation and lowering the barrier to getting involved in some of the core systems that Gutenberg has to offer. And in fact, while we’re making these changes, because the more we embrace typescripts type system, the more our mentality is about understanding the reality of what’s there in the code and building a mental model to work with it. So as we do this, as we have to put our archeologist’s hat on and figure out, well, what actually is expected here? What actually uses these properties? How are they passed around? It’s giving us the chance to go back and document a lot of code that was built in stages organically and oftentimes in haste.

And those documentation updates are going to present themselves when you’re writing the code. So the way we’re talking about the style, the theme style variation selector, and closing the feedback loop, this is the same thing. Let’s get people out of the source code. Let’s get people out of a handbook, and let’s put the documentation and the guideline and the instructions and examples right in your editor at the cursor where you’re pointing it or where it happens to be.

Birgit Pauli-Haack: So what are the editors who would support that? I know VS code definitely would be. What about Adam?

Dennis Snell: Yeah, it would almost be an easier exercise to indicate which editors don’t. So Microsoft’s Notepad, to my knowledge, doesn’t have support for this. I don’t think the old Unix, Linux editors, Pico and Nano, or the stream editor, but yeah, VIM and Emax will support it. Anything that’s supports Microsoft’s language server protocol will support it. All of the jet aim  software supports it. Adam, Eclipse, pretty much everything universally supports it these days.

Birgit Pauli-Haack: Excellent. And now you have it listeners, we dove into the underpinnings of Gutenberg and we are not done yet, but this was the Gutenberg change log of the plugin release 13.

And of course we have the show notes in the show note release post from Adam Zielinski, and we also saw the discussion in the release font. I think I mentioned it already that the web funds API probably won’t be in the 6.0 as the feature hasn’t received any meaningful testing yet because it was just coming into parts of Gutenberg.

Yeah, and that concludes also our section what’s released. 

What’s in Active Development and Discussion

And we come to what’s in active development or in discussion, and that was… Now Dennis, you posted a proposal and that’s why you are on the show actually right now, that was the trigger why I asked you to come onto the show, because you were exploring something that was missing of the… And still is, we have these… Gutenberg takes away a lot of mystery meat from the old workers, not old, but the classic workers kind of thing.

Yeah, what is a widget? What is a shortcut? What is a… All the other, the sidebar items and all that. And with a short code, there’s the handling of, okay, whatever is in a short code you can put in a block and it’s a much better interface. But there are certain things that are missing or dynamic content pieces that are in the flow text, in the paragraph, in the rich text. So that’s the overall thing. Is that what you have been working on with this Inline token proposal?

Dennis Snell: Yeah, and I’m glad you mentioned short codes because the best way right now that I’m framing this work in my head is this is like shortcuts 2.0.

So when we started Gutenberg, what we observed is that by and large short codes were somewhat abused in order to build structure into HTML documents. Now the short code system didn’t work very well, that Gutenberg post in HTML has a sister post that I wrote called short code shortcomings. That goes into some of the details about why short codes failed to build layout and structure.

So we built the block model, and the block model captures the essence of what was lacking and we all moved to blocks. Well, guess what? On the other end of the spectrum, we have some let’s call it abuse of the block model to add essentially what’s inline content, to add what short codes were really good at. And blocks live on their own, they’re heavy weight, they’re high-level. And one of the things that short codes are good at is adding something very simple, generally plain text, such as the site title, the author name, the date of the week. And so this has been a long known deficiency in Gutenberg, and there’ve been some experiments over the years to try and figure out what it means to implement a system for bringing in this other content.

And it’s content that has some identity on its own. A site title is a site title, it’s not an image block site title. It’s not a quote block site title. It’s just the site title. The featured image is mostly just the URL of the featured image, it just comes from outside of the post and it’s not tied to the block for the most part.

So in this proposal, we’re looking at ideas of how we can realize this on a technical level and gather input to figure out what people want from this system. It turns out, like most things, there’s a wide array of use cases people have in mind. And a lot of this work is just decluttering those needs and trying to identify what the different specific needs are, and if they’re actually the same or if they’re not.

So it’s really early on I’d say in its design stage, but I’m actually full of anticipation. I think this is going to turn into something that we’ll see used everywhere, and hopefully will make it trivial for people to write their own plug in to register these tokens or these short codes to change things.

People are wanting to do things like write email newsletters that include merge fields like you’d use in Word to address each email recipient, and obviously pulling in parts of your site or post information inside the loop as we build templates for full-site editing, those kind of things.

Birgit Pauli-Haack: Yeah, and I’m really excited about it. And when you, dear listeners want to follow along on the proposals, you also see that Dennis shared quite a few code examples, how this could play out. How would this play out in a plugin or in a block, or the token. Even the comments in the block, how that would show up. So it’s very tangible to read as a developer and it also helps you a little bit visualize how it can end up exactly as you said, as a merch tag in the newsletter glue plugin that we’ve for instance used on the Gutenberg Times.

So how has the reception been, there were a few comments there. What are the roadblocks there to… What’s the difficulty in the decision how to go?

Dennis Snell: There’s a lot of people working on this problem and there’s a lot of people I think that this problem is important to, and so we’re starting to get some input. And I really appreciate that. I would say where we’re at right now, the roadblock is the typical design process. This is just the way it works, and I like to repeat good designs are discovered or good APIs, good interfaces are discovered, they’re not designed.

And so it’s real easy for us to just think of something, code it up and get it working, and push it out there. And it probably does what we intended it to do in a limited circumstance, in a limited subset of all possible circumstances. And what we’re trying to do here is go a different way, which it’s funny you mentioned that there’s code examples in the discussion thread because there’s no actual implementation code yet.

I think I started prototyping some parts of these ideas a little bit, but didn’t save that code intentionally. The whole idea is let’s get together, let’s write the code that we think we wish we could write, toss it into the stew, shake it around, and see if the way that we have been talking about these ideas actually matches the model that we have when we write the code to use it.

And so I’d say one of the bigger roadblocks right now is trying to understand, is it the same problem or are there two problems in author introduced tokens? In other words, I’m writing a paragraph. I want to insert the date that the post was published, so I say, when I wrote this blog post on insert the token published date on January 13th, I was racing to get back to normal life after the new year’s.

There’s one definite concrete use case we have, but what happens if I’m writing my own block and I want my image to be able to draw its source from the featured image? Well, that wouldn’t make sense, but let’s say draw its source from some AI system that’s a plugin I wrote that goes and asks a computer to give me an image for the post. It may not be a great example, but in that context, I’ve statically encoded somewhere in the code this thing can accept tokens.

Are those the same problem? Are they different? And where’s the line between what I as a developer want to use as tokens versus what I as an author want to use as tokens.

Birgit Pauli-Haack: Yeah, I find myself as a block editor always thinking, okay, a developer would do that but do we need a UI for it? Yeah, it’s the same thing. And I like what you said that the designs are actually only discovered and not built, was that… Am I quoting you right?

Dennis Snell: I misquoted myself when I first said it, but I say good interfaces or good APIs are discovered, they’re not designed. Yeah.

Birgit Pauli-Haack: Yeah, it’s a parallel to the system bible where it says pathways to success can only be found, not made. Yeah, it’s system built and you build systems. So it’s an interesting field of tension. Do we go all in or do we start small? Where is that? Yeah, it’s interesting to see.

Well, thank you so much for the proposal and what is that… So what is it that you ask from our listeners, if they’re interested in that to read and comment?

Dennis Snell: Well, it’s always good to have diverse input. How do you use these things? What do you wish you could do that you can’t do right now? What do you do right now that is frustrating or cumbersome to do where you have that impulse that says, there’s got to be a better way to do this? And this is specifically around tokens, short codes. Sometimes they call these pills because they’re drawn with a contrasting background with rounded corners.

Google Docs not too long ago introduced the ability to insert some of these things, and various other editors have added the support. We had a very, very limited webpage title builder on WordPress.com where we used that. So we didn’t like… When you’re in WordPress and you’re telling it how to generate the HTML title, we didn’t like bracket, bracket, bracket, bracket, curly bracket, curly bracket, Omaha site title.

We found that confusing and error prone, so we built a little, a little token-based entry. And that captures the essence of what we want here, but there’s a deceitfulness in that simplicity of the end result. And so really just people sharing what they want, what they’ve seen, what they’ve done.

We have one person on that thread who actually wrote a plugin to do this in some form, and we’ve been talking back and forth, okay, are you solving the same problem as core? Are you solving a subset of it? And this is all that we can do right now is figure out what problem we’re trying to solve. And it could turn out that it’s just way simpler and I’m making it in this proposal. There could be one really simple problem and a separate, much more complicated problem that at a glance looked the same. So just talking and figuring that out is going to be the critical help and the critical way to move it forward.

Birgit Pauli-Haack: And it’s also going through the plugin repository and see what kind of solutions people came up with, and see, is it possible to do this with the token system or not?

Most probably another research angle to that, yes. All right, anything else you want our listeners to know about the proposal, about Gutenberg, about your work? Or do you have any other announcements, because I’m thinking we are already 60 minutes in, if not longer, to come to the end of our show.

Dennis Snell: I don’t need to bore anyone with more discussion, but again, I’m happy to chat in-person or on WordPress Slack. My username is @DMSnell, so if people want to dig into some technical or philosophical points about the data flow, about the block model, about the editor in general, they’re welcome to reach out to me.

Birgit Pauli-Haack: Thank you.

And Mary, you haven’t said a whole lot of things today, sorry about that. But is there anything that you on your work for the last two weeks that you would like our listeners to know that is not so much Gutenberg related, but also of course, Gutenberg related?

Mary Job: Yeah, not so much Birgit. I think I’m very quiet today, I apologize for that. Actually I went through the proposal that Dennis shared. I think it’ll be good to be able to select an image to use as a featured image every time you publish a post. Because before now, you would have to put a featured image. Like if you share the post to Facebook or I’m speaking from a writer’s perspective, it would be nice to be able to think of it as a block instead of just a featured image, because sometimes I have to go look for a code to disable featured image straight away because you do some things and then they would show them.

And then you also have your image and the person, you’re like, no, I want this one to be the featured image and not this one. So from a user’s perspective and a non-developer perspective, that’s my opinion. I think it’ll be great to have that as a block instead of just a featured image.

Birgit Pauli-Haack: Yeah, that’s an interesting use case.

Dennis Snell: Yeah, a quick follow-up to that. Part of the motivation for prioritizing this work now is being able to use these in block patterns. So a lot of times we want to pull in a pattern with default data and okay, I would really just like to plop in this page heading pattern that references the featured image or references the site title.

And so currently there’s not a good way to do that. So yeah, just like what you’re saying, but even to the next level of building reusable block patterns that we could potentially share on the marketplace.

Birgit Pauli-Haack: All right.

Well, before we end the show, I want to invite everyone. There are three calls for testing that could use your attention and also your feedback. If you get in half an hour or even an hour, test the beta WordPress 6.0 Beta 1 or next week, the Beta 2. And the instructions on how to do that are in the posts that we share in the show notes.

And of course, every time you do this, I would be available to… If you have questions at BPH in the WordPress Slack or on Twitter, my DM’s are open. And as always, the show notes will be published on GutenbergTimes.com/podcast.

And this is the podcast 65, Gutenberg times.com/podcast. And if you have questions and suggestions or news that you want us to include, send them to changelog@gutenbergtimes.com.

Yes, that’s an email address. That’s changelog@Gutenberg times.com. Thank you so much, Dennis, for all your explanations and being on the show with us. I really appreciate all the depth of knowledge that you have.

Thank you, Mary, for coming and being our co-host. And thank everybody for listening. And good-bye.

WPTavern: How to Align a Nested, Partial-Width Group Block via the WordPress Editor

Wordpress Planet - Sat, 04/16/2022 - 01:21

I was slightly frustrated last week when sharing a tutorial on a hero-style post header. I had planned to create a layout with a left-aligned Group with a maximum width, as shown in the following screenshot:

This would allow the focal point of the background image to shine through on the right. However, neither of the two known techniques seemed to be ideal.

One of the most common methods is to use a 50/50 Columns block, leaving the right column empty. This was messy at some screen sizes. However, as noted by Andrew Starr in the comments, setting a specific width for the left column and clearing the width for the right-side column addresses this issue. Hat tip to him for finding a way to work within the system. Still, it is not the most intuitive method and leaves an empty <div> in the HTML for no good reason. It feels like a hack that we should not be teaching users.

My gut was telling me that my preferred solution was the right one. It was also the simplest to implement without resorting to hacking columns. It uses the content alignment matrix control for the Cover block combined with a set width on an inner Group block. However, I ran into issues with this but did not understand why. That was until I dove back into it this week (I will get to this later). Plus, I am stubborn enough to keep trying something until it magically works.

Therefore, I went back to the drawing board. Tired of looking at the previous design, I pulled up one of the first pattern ideas I had about a year ago and recreated it with the latest design tools:

I also wanted to make sure this solution worked well on any screen size. When moving toward smaller viewports, the content should take up more room until it hits the edge. The method in this tutorial handles this beautifully:

This entry in the Building with Blocks series walks through how to create this layout. As a bonus, I will also show how to accomplish it with the new Stack block in WordPress 6.0 for cases where a Cover container does not make sense.

Building With a Cover Block

For this walkthrough, I am using a custom theme. However, I have also tested with Archeo, Avant-Garde, and Twenty Twenty-Two. It has worked consistently across the entire group. I am also running WordPress 6.0 Beta 1 without the Gutenberg plugin active.

Step 1: Add Cover Block Cover block with left-aligned content.

For this step, insert a new Cover block along with your preferred image. Most of the settings are not going to matter. I chose toggle on the full-height and full-width options.

The most crucial part of this step is to select an option from the content alignment matrix control. In the toolbar, it will be an icon with nine tiny squares, almost dots (see screenshot). To align the blocks from the next steps in the left-middle of the Container, select the first “dot” on the second row. Of course, feel free to play around with different options.

Everything else about the Cover design is up to you.

Step 2: Add Fixed-Width Group Adding a Group block with specific width.

To contain the content you will add in step #3, insert a Group block within the Cover from step #1.

The “Layout” tab in the block sidebar panel contains the only necessary options you must set. You will need to define the content and wide options.

This is the point where I hit a roadblock in my earlier tests. Percent (%) units behave differently from all others. When used, the Group block is always full-width, and its contents are always centered. No others have this issue. However, not all of them may be used for this particular layout. Viewport-width (vw) and viewport-height (vh) units will align as expected but not expand across the screen on smaller devices.

The vital thing to remember is to use a unit type like px, em, or rem. You may also select “Inherit default layout,” but how it behaves will depend on your active theme.

I set both the Content and Wide options to 40rem (there is no need for the Wide setting to be larger than Content for this type of design). Technically, this is a max-width value rather than a fixed width. This allows it to adjust to smaller screen sizes.

Step 3: Add Content Adding custom content.

For the final step, you simply need to add your preferred content inside the Group from step #2. I opted for adding Heading, Paragraph, and Buttons blocks. This can be anything you want—there are no rules.

Building With a Stack Block

WordPress 6.0 will introduce a new Stack variation of the Group block. Instead of the typical top-down flow, it is a vertical flex layout. I covered this new block in the Gutenberg 13.0 release post this week.

To test the following technique, you must either install WordPress 6.0 Beta 1 or the latest version of the Gutenberg plugin. The alternative option is to wait a few weeks for the general release.

Step 1: Add a Stack Block Adding a Stack and aligning its content to the left.

Insert a new Stack block in the content canvas for the first step. You may choose to give it a background color or gradient. I chose the latter to keep things fun.

Unlike the Group block, Stack has content justification controls. If you made it through the first part of this tutorial, you should probably already know where I am going with this. There is a “Justification” control in the sidebar for aligning nested blocks left, center, or right. A duplicate option is also in the toolbar.

As with the Cover block, feel free to play around with the options. Otherwise, set it to “left” to follow along.

Step 2–3: Rinse and Repeat Fixed-width Group aligned left inside of a Stack variation.

Steps #2 and #3 are literally the same as when using the Cover block as the outer container. Therefore, you need to only repeat the process outlined earlier. Again, the most important thing is to define a fixed width for the Group block.

This ended up being surprisingly easy after the frustration I had last week. This is also an example of how powerful the block editor has become and how the user experience can sometimes not live up to expectations. If I am hitting roadblocks as someone who lives and breathes WordPress almost every waking moment, other users are likely running into those same issues. I hope that I at least shined a little light on one aspect of layout building in this tutorial.

WPTavern: Gutenberg Contributors Begin Early Exploration of a New Distraction Free Mode

Wordpress Planet - Sat, 04/16/2022 - 00:03

A truly zen, distraction-free writing experience is my white whale of WordPress features. The one that landed in WordPress 3.2 was pretty close to perfect, but the block editor changed everything.

In the early days of the Gutenberg project, contributors worked on different ways to improve the writing experience after reviewers said they found it distracting and disruptive, that the concept of blocks may not be fully compatible with the simple task of writing. The block editor introduced settings like Fullscreen mode, top toolbar, and Spotlight mode, in part to mitigate the less than optimal writing experience.

Plugins like MRW Simplified Editor and Iceberg have attempted to bridge the gap, but it’s not the same as having a built-in, core option for distraction-free writing. WordPress does so many things well but I would love to see it provide the best writing experience on the web, without a third-party plugin.

Gutenberg contributors have returned to this challenge again with an early exploration of what a drastically reduced interface might look like as a new setting for improving focus. The PR outlines the reasons for the exploration:

  • The UI of the post editor is so heavy it makes it hard to focus. Things appear and disappear: mostly the floating block toolbar and the insertion point flashes depending where your mouse rests on the screen.
  • Using the top toolbar eats screen real estate.
  • Using reduced interface does not reduce much.
  • Writing and general content creation can be more pleasant on a blank canvas with little chrome to obfuscate line of thought.
  • Having full UI power at the press of a key (ESC) is simple enough.

Automattic-sponsored Gutenberg engineer Andrei Draganescu created a video to demonstrate what a “reduced interface” setting might look like. Most notably, this mode keeps the editor top bar hidden and prevents the block toolbar and insertion point from appearing. It also hides the drag handle in the block toolbar and some icons in the editor top bar.

After some feedback, contributors agreed that it would be good to make the top toolbar available on hover. They also explored the possibility of detaching panels from the top bar so that they float on the canvas.

In this mode, users familiar with the keyboard shortcuts can still invoke them to bring the hidden panels to the forefront again.

“I wouldn’t call this a writing mode per se because for some people the best writing environment would be the default one, or top toolbar; for others it might be spotlight, etc,” Gutenberg lead architect Matias Ventura said. “The ‘reduced interface’ (which I hope to rename ‘distraction free’) is more about removing UI from the canvas and working more with keyboard and shortcuts.”

The PR for exploring a drastically reduced interface is still in the exploratory stage. It’s a good start at reducing the pain points felt by users who just want to write without the distraction of block-related interface elements constantly popping into view.

WPTavern: Gutenberg 13.0 Adds Text Selection Across Multiple Blocks, New Stack Group Variation, and Featured Cover Blocks

Wordpress Planet - Fri, 04/15/2022 - 03:29

Gutenberg 13.0 landed earlier today in the WordPress plugin directory. It is one of the heftier releases lately, containing the final features that should ship with WordPress 6.0.

The more prominent features include multi-block partial text selection, Cover blocks with featured images, a Stack variation for Groups, and pattern-based page creation. And there is much more to dig through.

I have covered many of the big-ticket items in this post. However, to understand the full scale of the release, check out the tickets linked in the Gutenberg 13.0 release announcement.

Other notable highlights include spacing support for the Column block, web fonts optimization, duotones for Site Logo and Post Featured Image placeholders, and vertical alignments for blocks with flex controls.

Partial Text Selection Selecting text across two blocks.

Users can now select text across multiple Rich Text blocks, such as Paragraph, Heading, List, and Quote. In the past, highlighting partial text would automatically create a multi-block selection, which is typically not desirable.

The change supports hitting the Enter key to delete selected text and create a new block, Backspace for removing and backward merging, and Del for removing and forward merging. Typing will replace the selected text with the new input.

I covered this new feature in an in-depth post last month.

Stack and Group Variations Group block followed by Row and Stack variations.

Gutenberg 13.0 introduces a new Stack variation for the Group block. The change creates three variations altogether, counting the default output and Row.

At first glance, Stack and the default Group block may not seem much different. After all, they are both containers for vertically-stacked content. However, the Stack variation is technically a flexbox rather than a flow layout. I am unsure how this will play out for end-users who may not immediately understand the distinction. However, this should be a welcome tool for building more advanced layouts in themes.

The Stack variation entirely encapsulates any nested blocks, disabling their alignment controls (e.g., align right, align wide, etc.). However, the Stack itself has justification controls for aligning content left, right, and center.

Stack variation with content justified right.

One setting that may seem unclear is the control labeled “Allow to wrap to multiple lines.” There is at least one potential use case for that. It is possible for a stacked layout to also be horizontal if there is a height set. However, no such height control is currently shown in the UI.

The Row variation is also much improved when first inserting it. There is now a clear indicator that newly inserted blocks are laid out horizontally.

Alongside partial text selection, users can quickly put the selected blocks into a Group, Row, or Stack via the toolbar.

Cover Block + Featured Image Using a featured image inside Cover block for single post headers.

There is now a new “Use featured image” toggle in the toolbar when inserting a Cover into the editor. Switching it on ties the image data to the block.

Sometimes it is hard to pick favorites when new features are landing as fast as one can test them. However, using featured images within Cover blocks is easily one of the things I am most excited about. I already have plenty of ideas rolling around in my head, a couple of which I shared when covering this feature last week.

I am eager to see what theme authors and users do with it. This opens up a whole new world of layout possibilities for block themes.

Global Style Variations Light and Dark global style variations in sidebar.

Work continues on fleshing out the global style variations feature. First launched with Gutenberg 12.5, it allows theme authors to ship multiple /styles/*.json files that users can switch between. Essentially, it is a “skins” selector specific to the theme.

The update supports a new title field in the JSON files for a human-friendly label. Otherwise, it falls back to the filename without the extension.

When a user hovers a style card in the UI, it flips it to reveal the title and more of the colors available for the variation. Unfortunately, the flipped version of the box pulls the first four colors defined by the theme. This can sometimes result in a nice-and-clean showcase of the variation. It can also be an eyesore that provides no useful information to the user about the style itself.

Theme authors can control this by maneuvering their color definitions into place in their *.json files. But, it is a hack, at best. Because this methodology is not official, there is no guarantee that it will work in the future. Plus, it is a fast way to create disorganized code for those who like to keep things tidy.

New Border Control Components Defining individual block borders.

Gutenberg 13.0 introduced new BorderControl and BorderBoxControl components. This is an overhaul of the previous border design tool implementation. It will eventually allow users to define the border width, style, and color of all four sides for blocks that opt into border support. Plus, theme authors will have the same level of fine-grain control via theme.json.

While the new components are available now, block support is not slated until Gutenberg 13.1. Technically, it is already merged into the development version of the plugin.

Create New Pages With Patterns Pattern modal when adding a new page.

Creating complex page layouts has gotten simpler. When adding a new page, a modal pops up over the screen. It allows users to select from a list of “content” patterns to insert into the page. This can be as simple as a few blocks for creating an about/profile layout. Or, it can be a full-blown front-page design. From that point, users can customize the parts specific to their sites.

This feature hinges on theme authors registering custom patterns for the core/post-content block type. Otherwise, users will only see the default editor. Themers should start experimenting with how they can showcase this new feature as it lands alongside WordPress 6.0 next month.

Comments Query Loop Replaces Post Comments Block Comments Query Loop block in site editor.

The existing Post Comments block has been deprecated in favor of the newer Comments Query Loop and associated blocks. It will still work, as with other deprecated blocks. However, it will not appear in the inserter.

Comments Query Loop offers a much better designer and user experience. However, it does not yet have feature parity with the solution it is replacing, at least in Gutenberg 13.0.

Some of the issues I noted in my earlier coverage, such as the missing comment ID and classes, have already been addressed in trunk. However, there is not yet a solution for the “X replies to Post” title. I expect this and the remaining wrinkles to be ironed out in the coming weeks. However, theme authors who build on the bleeding edge should be mindful of existing issues.

Post Status: WooCommerce Function of the Week: wc_price

Wordpress Planet - Thu, 04/14/2022 - 21:09

The wc_price function solves your WooCommerce price formatting problems. Using it means you can ignore the WooCommerce price settings.

When you work on WooCommerce customization in your plugin/code snippet, you often need to format a price in order to display it correctly on the front-end.

Unfortunately, this can get tricky: you need to get (from the store settings) the WooCommerce currency symbol, the number of decimals, the decimal separator, the suffix, and so on. “Rebuilding” the price format each time can be really time-consuming.

Developers; please meet wc_price.

This neat WooCommerce function can finally solve your price formatting nightmares and make you completely forget about the WooCommerce price settings: it'll do the job for you.

As usual, we'll take a look at practical examples; but first, let's analyze the function code.

Function Code

By doing a quick search of the WooCommerce plugin's files for the “function wc_price” term, we get a single result under \woocommerce\includes\wc-formatting-functions.php:

/** * Format the price with a currency symbol. * * @param float $price Raw price. * @param array $args Arguments to format a price { * Array of arguments. * Defaults to empty array. * * @type bool $ex_tax_label Adds exclude tax label. * Defaults to false. * @type string $currency Currency code. * Defaults to empty string (Use the result from get_woocommerce_currency()). * @type string $decimal_separator Decimal separator. * Defaults the result of wc_get_price_decimal_separator(). * @type string $thousand_separator Thousand separator. * Defaults the result of wc_get_price_thousand_separator(). * @type string $decimals Number of decimals. * Defaults the result of wc_get_price_decimals(). * @type string $price_format Price format depending on the currency position. * Defaults the result of get_woocommerce_price_format(). * } * @return string */ function wc_price( $price, $args = array() ) { $args = apply_filters( 'wc_price_args', wp_parse_args( $args, array( 'ex_tax_label' => false, 'currency' => '', 'decimal_separator' => wc_get_price_decimal_separator(), 'thousand_separator' => wc_get_price_thousand_separator(), 'decimals' => wc_get_price_decimals(), 'price_format' => get_woocommerce_price_format(), ) ) ); $original_price = $price; // Convert to float to avoid issues on PHP 8. $price = (float) $price; $unformatted_price = $price; $negative = $price < 0; /** * Filter raw price. * * @param float $raw_price Raw price. * @param float|string $original_price Original price as float, or empty string. Since 5.0.0. */ $price = apply_filters( 'raw_woocommerce_price', $negative ? $price * -1 : $price, $original_price ); /** * Filter formatted price. * * @param float $formatted_price Formatted price. * @param float $price Unformatted price. * @param int $decimals Number of decimals. * @param string $decimal_separator Decimal separator. * @param string $thousand_separator Thousand separator. * @param float|string $original_price Original price as float, or empty string. Since 5.0.0. */ $price = apply_filters( 'formatted_woocommerce_price', number_format( $price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator'] ), $price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator'], $original_price ); if ( apply_filters( 'woocommerce_price_trim_zeros', false ) && $args['decimals'] > 0 ) { $price = wc_trim_zeros( $price ); } $formatted_price = ( $negative ? '-' : '' ) . sprintf( $args['price_format'], '<span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol( $args['currency'] ) . '</span>', $price ); $return = '<span class="woocommerce-Price-amount amount"><bdi>' . $formatted_price . '</bdi></span>'; if ( $args['ex_tax_label'] && wc_tax_enabled() ) { $return .= ' <small class="woocommerce-Price-taxLabel tax_label">' . WC()->countries->ex_tax_or_vat() . '</small>'; } /** * Filters the string of price markup. * * @param string $return Price HTML markup. * @param string $price Formatted price. * @param array $args Pass on the args. * @param float $unformatted_price Price as float to allow plugins custom formatting. Since 3.2.0. * @param float|string $original_price Original price as float, or empty string. Since 5.0.0. */ return apply_filters( 'wc_price', $return, $price, $args, $unformatted_price, $original_price ); }

There are quite a few PHP statements inside that function!

Let's break down each section:

  1. The function starts by getting the $args, which are basically what we said in the introduction: separators, currency, number of decimals, and suffix. These will be used later to formatting a number as a WooCommerce price.
  2. Next, the function converts the raw price to a float in case it's not a float: $price = (float) $price. This is for PHP 8 compatibility.
  3. Then, should the price be negative for whatever reason, $price * -1 does its magic and makes it a positive number.
  4. Now to the cool part. The number_format PHP function converts the original floating point number into a price by using the $args we previously gathered.
  5. Optionally, wc_trim_zeros( $price ) trims trailing zeros. (Yep, wc_trim_zeros is now a candidate for one of the next WooCommerce function of the week posts!)
  6. We then move to HTML; our “number” is formatted thanks to a series of spans, tags, classes and wrappers. It's stored inside the $return variable.
  7. A filter, wc_price, finally allows us to change the price format if necessary. (A different name might have been better to avoid confusion, but that's how it is.)

And that's it!

Function Usage

We know the code now, so let's look at how it's used.

Let's pick a number:


Let's call wc_price and print its result:

echo wc_price( 5.6 );

And finally, let's take a look at the generated HTML:

<span class="woocommerce-Price-amount amount"> <bdi> <span class="woocommerce-Price-currencySymbol">$</span> 5.60 </bdi> </span>

Magic! (Please note the currency symbol, the currency position, the price with two decimals… that's all from the settings.)

Function Example

Now to the case study.

It may happen that you need to display the total discount the customer has totaled based on the items in the cart.

You'd calculate this total as a float, and with wc_price you can nicely format it based on the store settings without concerning yourself with them!

Let's trigger a notice on the Cart page:

/** * @snippet Display formatted discount | WooCommerce Cart * @how-to Get CustomizeWoo.com FREE * @author Rodolfo Melogli * @testedwith WooCommerce 6 * @donate $9 https://businessbloomer.com/bloomer-armada/ */ add_action( 'woocommerce_before_cart', 'bbloomer_show_total_discount' ); function bbloomer_show_total_discount() { if ( WC()->cart->is_empty() ) return; $discount_total = 0; foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) { $product = $values['data']; if ( $product->is_on_sale() ) { $regular_price = $product->get_regular_price(); $sale_price = $product->get_sale_price(); $discount = ( $regular_price - $sale_price ) * $values['quantity']; $discount_total += $discount; } } if ( $discount_total > 0 ) { wc_print_notice( 'Your total discount is: ' . wc_price( $discount ), 'notice' ); } }

Right there at the end, I've used wc_price to format the total discount inside the notice: wc_price( $discount ).

Here's a screenshot of the output:

(Regular price was $997, sale price is $897, and quantity = 1, therefore the total discount is $100.)

I hope you enjoyed yet another WooCommerce shortcut.

Just my wc_price( 0.02 )!

WPTavern: Elementor 3.6.3 Patches Critical Remote Code Execution Vulnerability

Wordpress Planet - Thu, 04/14/2022 - 14:15

Elementor has patched a critical Remote Code Execution vulnerability that was discovered by threat analyst Ramuel Gall from Wordfence on March 29, 2022. Wordfence disclosed the vulnerability to Elementor via its official security contact email address but did not receive a timely reply. On April 11, 2022, Wordfence disclosed the vulnerability to the WordPress Plugins team. Elementor released a patch in version 3.6.3 on April 12, 2022.

Wordfence described the vulnerability as “Insufficient Access Control leading to Subscriber+ Remote Code Execution.” It received a CVSS (Common Vulnerability Scoring System) score of 9.9 (Critical). The vulnerability affects Elementor’s new  onboarding module, introduced recently in version 3.6.0.

Wordfence published a technical explanation of how an attacker might gain unauthorized access:

The module uses an unusual method to register AJAX actions, adding an admin_init listener in its constructor that first checks whether or not a request was to the AJAX endpoint and contains a valid nonce before calling the maybe_handle_ajax function.

Unfortunately no capability checks were used in the vulnerable versions. There are a number of ways for an authenticated user to obtain the Ajax::NONCE_KEY, but one of the simplest ways is to view the source of the admin dashboard as a logged-in user, as it is present for all authenticated users, even for subscriber-level users.

Elementor is installed on more than five million WordPress sites, but this particular vulnerability affects versions 3.6.0 – 3.6.2. At most, this would affect ~34% of users, according to the stats for the plugin’s current active versions. Now that the vulnerability is public, Elementor users are advised to update immediately to version 3.6.3 or later. A related security fix is packaged with version 3.6.4, according to the plugin’s changelog: “Fix: Optimized controls sanitization to enforce better security policies in Onboarding wizard.”

Do The Woo Community: Site Ownership, WooCommerce and Insights into the Open Web

Wordpress Planet - Thu, 04/14/2022 - 10:00

Aaron Campbell has a passion for the Open Web, open source and WordPress with the goal that everyone should have access to all things on the web.

The post Site Ownership, WooCommerce and Insights into the Open Web appeared first on Do the Woo - a WooCommerce Builder Community.

WPTavern: WordPress 6.0 Might Ship a Feature for Picking a Block Pattern on Page Creation

Wordpress Planet - Thu, 04/14/2022 - 01:52

I once said that full-page patterns were the missing link for block theme development. Theme authors have been able to include such layouts since the patterns feature was rolled out in WordPress 5.5 last year. However, core WordPress has never provided an experience built around them.

This may be changing when WordPress 6.0 ships next month. There is a bit of an 11th-hour push to land the first iteration of the feature. It is expected to ship with Gutenberg 13.0 and WordPress 6.0-beta-1 for testing (grab the Gutenberg nightly ZIP to test now).

Earlier this week, Jorge Costa merged an implementation that made full-page patterns part of the page creation experience.

Pattern modal when adding a new page.

There does not seem to be an official name for this new feature. “Full page” might not be the most appropriate terminology. In reality, it is more of a content-pattern inserter.

The goal is to present users with pre-built layouts that they can insert and customize—plug-n-play style. A modal appears when creating a new page if the theme has any registered patterns for the content. Insertion is as simple as finding a starting point and clicking.

Inserting a content template on page creation.

Of course, users can also choose to start from scratch as usual by hitting the “x” icon to close the modal.

There has always been a disconnect between what WordPress themes are capable of and users recreating what they see in the demo. Everything developers have attempted in the past—from shortcodes to theme options—has often fallen a few steps shy of creating an ideal user experience. This new feature could bridge the gap in a way that we have not seen before.

Want to build that portfolio page from the theme’s demo? Just go to Pages > Add New, select the Portfolio pattern, and you got it.

Want that contact page layout? Yeah, same process.

There are still some pieces of the puzzle to figure out. The most notable is the initial user experience. There should be an option to disable this entirely for users who prefer to start with a blank content canvas.

Riad Benguella also recommended a config flag for custom post types to enable or disable it by default. The pattern inserter only appears for pages right now.

There is a high chance that the feature could land in WordPress 6.0 because it does not add any new APIs or special pattern categories. Instead, it piggybacks off the existing blockTypes flag when registering custom patterns.

Theme authors who want to give it a spin can register patterns for the core/post-content block type:

register_block_pattern( 'namespace/slug', [ 'blockTypes' => [ 'core/post-content'] // ... ] );

After spending more time than I am willing to admit testing the feature, I am happy with the initial implementation. In the long term, there might be more that it could do.

When I think of starting points like this, I often want to hand over control of the entire page’s output. This includes everything from the header down to the footer. Remember, this feature focuses directly on the content. Depending on the theme, such patterns might work well alongside a “Blank” template:

Selecting a “Blank” page template.

Templates like this are typically open canvases that only display the content. In a possible future version, I would like to be able to trigger the selection of such a blank template when specific patterns are chosen. Or, perhaps, there might be a mechanism for choosing between “content” and “full page” patterns.

For now, allowing users to select a pattern on page creation is sure to be a boon for theme authors. It makes me want to step back into the theme development game for a bit, if for nothing other than to see what limits I can push with it.

WPTavern: #22 – Daniel Schutzsmith on How He’s Prepared His Team To Use the Block Editor

Wordpress Planet - Wed, 04/13/2022 - 14:00

On the podcast today we have Daniel Schutzsmith.

Daniel is the Website and Digital Project Manager for Pinellas County Government, where he creates websites to help the public get the information they need.

We start off the conversation by talking about the future of themes in WordPress. Since WordPress 5.9 websites have been able to use block based themes. These allow you to do more with your website without having to touch the code. You can add headers, footers, and create your website navigation.

The principle is that more and more functionality is going to be moved into blocks and, given that much of this functionality was the domain of themes, do we now need a multitude of block based themes? Would it be optimal to have one ‘base’ theme built into Core? A theme which you can build on top of, and everyone is familiar with.

His team is quite large and when the Block Editor came around in WordPress 5.0 he, like many others, needed to decide whether to jump on board or stay with what they were familiar with.

They began using the Block Editor, and on the podcast today we talk about how that decision went.

We talk about how they managed educating their team in the new workflows, and how they created videos and tutorials to assist them as the problems arose.
Daniel is very excited about the future of WordPress, especially about the utility of block patterns and the new Pattern Creator, but he’s also excited about the future of the internet in general, and so, towards the end of the podcast we get into a conversation about how he thinks that automation is going play a key role in future website and web application builds.

Useful links.

Daniel’s website

Does WordPress Need 1,000s of Block Themes in the Era of Full Site Editing?


[00:00:00] Nathan Wrigley: Welcome to the juke box podcast from WP Tavern. My name is Nathan Wrigley. Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, the block editor. If you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast, player of choice, or by going to WP tavern.com forward slash feed forward slash podcast. And you can copy that URL into most podcast players.

If you have a topic that you’d like us to feature on the podcast, well then I’m very keen to hear from you and hopefully get you, or your idea featured on the show. Head over to WP tavern.com forward slash contact forward slash jukebox. And you can use the contact form there.

So on the podcast today, we have Daniel Schutzsmith. Daniel is the website and digital project manager for Pinellas county government, where he creates websites to help the public, get the information they need.

We start off the conversation by talking about the future of themes in WordPress. Since WordPress 5.9 websites have been able to use block-based themes. These allow you to do more with your website without having to touch the code. You can add headers footers and create your website navigation. The principle is that more and more functionality is going to be moved into blocks. And, given that much of this functionality was the domain of themes, do we now need a multitude of block-based themes? Would it be optimal to have one base theme built into Core? A theme which you can build on top of, and everyone is familiar with.

His team is quite large. And when the block editor came around in WordPress 5.0, he, like many others, needed to decide whether to jump on board or stay with what they were familiar with.

They began using the block editor and on the podcast today, we talk about how that decision went. We talk about how they managed, educating their team in the new workflows and how they created videos and tutorials to assist them as the problems arose.

Daniel is very excited about the future of WordPress, especially about the utility of block patterns and the new pattern creator. But he’s also excited about the future of the internet in general. And so towards the end of the podcast, we get into a conversation about how he thinks that automation is going to play a key role in future website and web application builds.

If you’re interested in finding out more, you can find all the links in the show notes by heading over to WP tavern.com forward slash podcast, where you’ll find all of the other episodes.

And so without further delay, I bring you Daniel. Schutzsmith.

I am joined on the podcast today by Daniel Schutzsmith. Hello Daniel.

[00:03:28] Daniel Schutzsmith: Hello. Great to be here. Thank you.

[00:03:30] Nathan Wrigley: Yeah. Thank you for joining us on the WP Tavern Jukebox podcast. We’re here today to talk about your approach to website development with WordPress and your ideas about what’s happened in the recent past and possibly what’s going to happen in the future. In order to paint some picture, give it some context, would you just spend a few minutes telling us about yourself, how you’ve come to be on a WordPress podcast, how you use WordPress, and all of that stuff.

[00:03:57] Daniel Schutzsmith: Yeah, for sure. People may have seen me making the rounds in the past few months at different places to talk it about WordPress. So I’ve been using WordPress since probably about 2007, I believe. Before that I was using Drupal, and for most of that part has been in the agency world. So making websites for clients. Going from a design to making a build, to training a client on how to use that.

About 2018, I believe I started to get more involved into the WordPress community. Started out as a WordCamp organizer for WordCamp NYC, and then ended up doing work at Miami, which was a last WordCamp right before Covid hit, and also was on the WordCamp US team for 2020, which ended up getting canceled.

After that, you know, since COVID hit, I was like, I got to get involved somehow, some other way and do something interesting. So I started creating a WP live streams directory. So it’s just WP live streams directory dot com. It really just shows live streams like your WP Builds every week and shares the different upcoming streams that people can do from their home, while we’re all home, in the spirit of time.

And from there it quickly morphed into, you know, I wanted to do my own thing for a little bit, so I did WP Talks as well with my co-host Winstina Hughes. We’re still doing that. We have an episode coming up in the middle of April and also another episode at the end of April.

And for that we focus on more the human side of WordPress but it’s held on Twitter spaces. So it’s a live, live event and people sign in, listen to us on Saturday mornings. And then my day job, just so you know, I actually do get paid to do these things as well. Some, I’m a web development and design manager for Pinellas county government in beautiful Tampa, Florida on the Gulf coast.

[00:05:33] Nathan Wrigley: Thank you so much. That’s brilliant. Now we know all about you, Daniel. The reason that I reached out to you, or you reached out to me, I can’t remember how we exactly hooked up, but it was all to do with a post on the WP Tavern. And I will link to it in the show notes, but the post was all about the need as it was seen, to have lots and lots of block-based themes. You may or may not know dear listener that in the future, if you wish to interact with certain parts of WordPress. So for example, you wish to use full site editing, you are going to have to use a block based theme. And you had an opinion on that. Would you just like to share your opinion and give us the details about all the numbers that were being bandied around and so on?

[00:06:16] Daniel Schutzsmith: Yeah. So, I happened to be at the the State of the Word in New York City, this past December where Matt Mullenweg was talking about, you know, full site editing and that future of it, which actually I’m very excited about. But one of the things that stuck out was he was mentioning about just having, thousands of themes basically built around full site editing.

Core things that I’ve come to understand though, is it feels more like we could really do with just kind of a, dozen good themes or maybe even less, that we really start as our starter themes and then build on from there. Meaning that a lot of the things that we would usually put in a theme, like the user patterns, the styles, all kinds of things like that are actually separated out a little bit more and a little bit differently.

And so it makes me think, if we’re going for thousands of themes, what is that? What is that reason as a purely for the styles? Because a lot of the patterns, as you know the pattern directory is now completely open and anyone can submit a new pattern to there. Those things are taken care of.

We don’t need a theme necessarily for that, unless it’s something really unique. But in that case, I’d say, put it in a plugin. If you’re doing a really interesting type of block or something and then put it in a plugin and put it out there. That was my challenge a little bit, and that got picked up on the Tavern and Justin Tadlock was talking about it, and my response to Brian Gardner, cause he was looking at creating another theme, he created Frost WP, which is a full setting theme. It’s absolutely terrific. So it’s just, thinking of it in those terms.

[00:07:34] Nathan Wrigley: Yeah. So the idea is that the functionality that may have been tied into your theme in the past, all of that is going to be available inside of blocks. And therefore, if you can have all of that functionality inside of blocks, what’s the need for, let’s say a thousand, two thousand. I believe the number that Matt was shooting for was five thousand.

What’s the point in having those, if all of the functionality can be brought to bear by simply clicking on a block? It’s interesting. Would your pitch for that be, why don’t we just have one base theme. I believe, I think it was Rich Tabor who a little while ago, 2019, I believe it was mooted this idea that in a block-based world with full site editing and block themes, why don’t we just have one theme, the theme which ships with core and everything else could be built on top of that. Does that seem to you to be optimal?

[00:08:29] Daniel Schutzsmith: Yeah. I mean, that’s exactly the way I’m going. So even when you look at the 2022 theme. That could be the base theme for a lot of these things. We’ve already seen this happening, just a lot of people haven’t realized. 2020, 2021 those themes had a whole other plugin that someone created called Twentig. It’s T W E N T I G. But Twentig basically increased the capabilities of those themes to make them like a starter framework in a way. And that’s very much where I see Frost WP and I, you know, and like some of these other types of themes out there that kind of were you know, out first. Guteen is another good one as well that just came out. Those all really are the base theme to work with, and then you just put the styles around that.

The thing that’s missing though, from an agency’s perspective and also just a larger, I think a larger branding perspective is that, a lot of times when I’m coming up with a design with a client, there’s a design system, right?

At my current job at Pinellas county government, we’re doing a website redesign right now. We start with the design system first. We start with figuring out the digital branding behind all that. What a button looks like, what a piece of content looks like. And the way we modeled it was after the core blocks. We knew that going into it, that we would override some of the CSS to make it look a certain way. The way we wanted it to. All of the different full site editing themes though so far, I haven’t seen really providing us, their information on what those styles are, what those things are that we can override.

And so, once someone does that, and I was mentioning this to Rich in one of his Twitter threads. Once someone does that’s the game changer. Really truly is. Because folks like Elementor know this, they have the design kits, and they have this whole site settings to be able to override, the topography and the colors and everything everywhere.

And that’s loosely inside of what’s going on in full site editing. And I’m sure that’s where people are thinking they’re taking it, with the theme dot json concept. But right now, it’s not there. So it’ll be interesting to see where it goes. And if it does become a core thing or it becomes something that someone creates.

[00:10:23] Nathan Wrigley: Do you think? I know it’s a fairly bland question, but do you think that right now, we are recording this in April, 2022. Do you think that right now non-technical users of WordPress would be able to benefit from the block editor? Or do you still feel there’s a lot of work to be done if they were going to try and do some of this full site editing stuff, navigation, and so on?

[00:10:47] Daniel Schutzsmith: So at my full-time job we’ve been doing this reason like I mentioned, and so we have a lot of editors, almost a hundred people in there, editing thousands of pages and custom posts that we’ve created. For that, they’re using the block editor for the most part. There’s only a few custom post types where we kept to just the classic editor feel to it, just had certain fields in there.

But they’re using the block editor. And so, the reoccurring things that come up as people just get a little bit uneasy and unfamiliar of it at first, but once they start using it, once they’ve done two or three pages, I’ve actually seen them being able to pick it up and do it fine. Where, it expands or where it contracts more, is that as people get used to it, I’ve noticed they get into a comfort zone, so they don’t necessarily explore the other blocks that are available in there.

So they have like their, certain way of doing things or there’s certain set of blocks that they’ll just reuse over and over again. A good example is, you could do an image on a left side with the two column image on the left side, text on the right, and so you have a column image and text, but you could also do the same thing with the media block.

So people just don’t realize that. And so it’s that education, I think, that needs to happen a lot of times. And there are terrific tutorials out there, especially the learn program from WordPress Core. But I think getting the people to those learning pieces is really going to be the thing that any agency or anyone working with an end user in the administration side is going to have to really press on.

The other thing I was going to mention was full site editing. No, it’s not ready for non-technical users. It’s just not there.

[00:12:18] Nathan Wrigley: Okay. Yeah. Interesting. The thing that I think about the block editor is that just as you said, you very quickly become used to its quirks. So there are certain actions that you might perform and it leads to certain consequences, and those consequences might not actually be output onto the front end of the site, or there might be, or there might be some quirk in the padding that you see on the backend, it looks as though that purple background is larger than it actually is, and you’ve just become familiar that once you’ve saved it, it’s still going to look like that on the backend. But on the front end, it won’t look like that, there’ll be a slight difference.

But then there’s all sorts of quirks, like if you hit the return key, you end up with a blank paragraph underneath that didn’t belong there. And in this endevour to offer a tool, which is what you see is what you get like the proprietary page builders, like you mentioned Elementor a minute ago, we could list a whole bunch of others. It does feel as if there is still some work to be done.

There’s work to be done on the UI and the UX so that we have this expectation that what you see is what you get is achieved. And I feel that that’s the direction that the project should be going, and that it literally looks the same on the back as it does on the front. Would you agree with that? Is that a desirable outcome or is that not something we want?

[00:13:35] Daniel Schutzsmith: I think ultimately it would be a desirable outcome. It’s a separation of concerns. Elementor for example, like you’re saying it’s a WYSIWYG, it’s what you see is what you get. It’s, one-to-one pretty much of what’s going to be on the front end.

When I first heard full site editing, that’s actually what I thought the term meant. So I didn’t think it meant being able to add headers and footers and being able to override templates, because to me that was like, that’s just the theme thing, it’s not that difficult at that time. In a PHP based theme.

So that’s really what I thought it was. And when it was, I was surprised because the one-to-one is more what I would see a lot of folks would want. If you look at other competitors like Webflow or Squarespace, things like that, again, WYSIWYG one-to-one, it’s something that people are getting used to. So when we pull them from someplace like a Webflow and bring them in and use the block editor, it’s a little bit of a jarring experience because, they’re going backwards in time. I don’t think it’s a bad thing necessarily, it’s just, it would be good to know if that direction will end up going that way or not.

What’s really interesting though, is Matt Mullenweg actually mentioned yesterday and jokingly a few folks with me were mentioning it on Twitter as well, that we, a lot of us had started on Frontpage or Dreamweaver or something like that, in the early 00’s.

We were doing all this types of stuff back then. That was WYSIWYG that was us putting things around the page and seeing where it would go. And now we’re returning to that again. So it’s a whole industry of millions of dollars behind this to get back to where we actually started out. And everyone kind of poo-pooed for a dozen or maybe even 15 years, to come back to it again.

[00:15:10] Nathan Wrigley: It’s interesting that you singled out full site editing as the piece which at the moment is the least ready for general public’s use, and I guess that’s the road that we’re on right now. We’re trying to figure out what that bit of the puzzle looks like, and how it can be made so that it’s not too complex that nobody wants to use it.

And when to say nobody, I’m specifically thinking about non-technical users. I’m thinking about things like the navigation block, which whilst totally usable is perhaps a little bit of overwhelm the first time you use it and so on. But I think that with six coming down the pipeline fairly soon, hopefully some of these things will change and hopefully, people will be drawn to using it and they’ll find it relatively easy.

One of the most exciting things for me in adoption is something that you mentioned a minute ago, which was block patterns. And I can see that being the full piece, the entire website, more or less being built off just patterns, which are in the library. So let’s just get into that. Are you pretty confident? Do you like the idea of block patterns?

[00:16:14] Daniel Schutzsmith: Yeah. I love that concept. I loved it when we have the, just even the reusable blocks and things like that as well. Anything that’s going to lend itself closer to the concept of a design system inside of WordPress, I think is going to be a win. I can’t stress enough that you could even just be a small pizza shop in your town, but if you have some remnants of a design system to work with, it makes it so much easier to kind of know, what things are gonna look like in that website. And so it could just be simple as figuring out fonts, colors, and a few different content layouts, basically, and those are your black patterns. That’s what those content layouts are. The closer we get to that, I think the more of an advantage WordPress will have over other types of systems like that.

[00:16:55] Nathan Wrigley: The size of the ecosystem means that there’s going to be a lot of eyeballs on that in the near future, building those things, and by good coincidence, the pattern creator tool launched earlier in the week, and now it’s available for everybody to test out and see if they can come up with their own patterns.

And again, the barrier there has been hopefully stripped away, and whilst there’ll be a learning curve to using that tool, and probably it will iterate over time, hopefully people without the technical expertise, without the knowledge necessarily of things like CSS and what have you, who can click things and drag things and move things, will be able to start building up their own little repository of blocks, which they wish to use over and over again.

[00:17:36] Daniel Schutzsmith: This is also a great feature we’ve seen in other successful page builders before. Elementor does it with their design kit. We’ve seen Divi do this as well. There’s even, there’s a whole ecosystem that’s created, I think it was called pager cloud or page cloud, something like that, where you could put any of these page builders on the worldwide web basically, and use them again on another site. It’s this repeatable process, I think that’s really important that we’re going to see the, you know, as agencies and even just as developers we kind of latch to.

[00:18:03] Nathan Wrigley: Yeah, we had a podcast, not that long ago, all about the block protocol, which we won’t particularly get into now, but the idea that the blocks within WordPress would become interoperable with blocks outside of WordPress. So it may be that your CRM has a block which you can consume data from and put it into your WordPress website, and at the minute you need probably some sort of complicated plugin and API integration, and that might be stripped away. So the complexity there, the things that are going to be possible, hopefully will compel people to use it and make it much more usable over time.

You mentioned that you, at your place of work, you’ve got this large workforce and they’re interacting with these things over time. I’m intrigued to know how straightforward it was for them to move to the block editor. For example, did you just say, okay, from tomorrow, we’re going to do it, or did you have to come up with some learning materials for them and administer things in such a way that they were able to slowly drift into it. What did you do around that?

[00:19:03] Daniel Schutzsmith: So the folks that are doing this, they’re mostly liaisons from various departments across the organization. Pinellas county government, I believe is a couple thousand employees all together. Like we’re relatively large for a county in Florida. The folks that are working with us is like one or two people that are from each department.

And so for them, these aren’t folks that are usually doing web design, these are not folks that are usually doing, a lot of editing except for maybe in Microsoft Word. So for that, we needed to really do some training. So we actually did some live webinars. So I did, I think it was two or three.

And then we also recorded it. And those trainings we put right into, as videos, right into the WordPress dashboard. So I created a whole thing in WP admin, and that’s a whole help section for them. So they have the videos back there they can refer to any time. And then we also took it a step further, and I love doing this. I love making things as simple as possible for people to work with. In that help section that I created, we also had put in little videos that were about 30 seconds to, some of the things that were a late, maybe around five minutes, on how to work with different pieces of content and how to work with the block editor in unique ways that we had created for us, for our organization.

So that really also opened the eyes for people to understand how to create a specific type of executive order, or how to add an event with the events calendar. Things like that. And then we also had plenty of documentation back to the actual Learn WordPress core website as well.

And that’s, that’s really helped over time. That’s really what it’s been. We do have, I do have a counterpart that works with me as well, and she focuses primarily on the content side. And so she’ll get questions from folks on how to do specific things. But a lot of it too is them understanding those materials and being able to go back to there.

[00:20:42] Nathan Wrigley: I’m really interested in the system here, because it sounds like you took this move to the block editor really seriously. You’ve created video content and you’ve got a dedicated space for it in the dashboard. What was the cue? How did you decide, okay, we need to make content around this. Did you just decide, we’ll just do content for every conceivable thing at the beginning.

Or did you say, okay, we’ll wait until we’re fighting fires and then we’ll make a video or we’ll create a piece of content around the problems that are actually being witnessed?

[00:21:12] Daniel Schutzsmith: Yeah. Me, myself, I’m a professor by nature, a teacher by nature. So I taught at school visual arts at NYU in New York city for several years. And I can already see the frustration people are going to have. Cause when I was going in and playing around with a black editor on my own projects and especially, one of the first things we had to do before the website redesign is we actually made a Covid 19 website.

When I got to Pinellas County Government, I got there two or three weeks before Covid started. And so I’m meeting my coworkers, and then a few weeks later we’re all working from home and we have to scramble and make a brand new website super quickly.

So we used WordPress as the way to do that super quick, very fast. I knew I could get it up and get it running very quick with a minimal team, and also just minimal time to work with. But that was also our litmus test to see really, if we’re working with a block editor, will it hold up? Will it be something that we can actually work well with?

So I had a little bit of, you know, a test environment already with all of our, they’re called public information officers, so PIOs. So it’s basically the public relations people in the government. And so they are the ones that are helping me run the Covid-19 website. So I could see from them the frustrations they were already having.

And so when we went to do the redesign, I knew right away what videos we would want to do, but also I knew based on the new things that we were creating, the new features we were creating inside of there, that I’d want to be able to show them that as well. And so that’s where, a lot of those come from. You’re right, as things pop up, as things change, as we see little fires or something’s getting too confusing for folks, that’s where we make another video and put it in there.

I think altogether we have, it’s the least over a dozen videos might be a little bit more. Basic things like how to use the block editor in the first place or how to turn things on and off are all dealt with in that, those two webinars I did. So those are also on there. But the little, the short ones are more, more focused on specific tasks they might be doing in there, like adding a new page or adding a specific type of custom block that we’ve created.

[00:22:59] Nathan Wrigley: I do like the idea of putting into the dashboard. That just seems really sensible. It’s just right there. Isn’t it. It’s not like they need an external URL. They don’t have to go to a different website where your knowledge base might be. It’s just right on hand. That’s really ingenious. Have there been any breaking changes over the past, let’s say two years or so, that you’ve noticed where the things which were once true broke when WordPress updated, maybe there’s been a modification to a block or something, and then that has stalled you once more. My experience was that the things which worked two years ago still work, but it may not be on the scale that you’re dealing with.

[00:23:37] Daniel Schutzsmith: For the most part, I do remember there was one thing, Nathan, but I can’t remember what specifically it was. I just remember the emotion. I remember the, oh Lord, this is not going to be a good emotion that came up, and the heat on the back of your neck, But I remember it was something other people had similar issues and we found a workaround real quickly and fixed it.

I don’t remember what it was. It was something, it definitely had something to do with the custom block we had created, and the way it was put together. But for the most part, no the upgrades have been fine, even the fact that now FSE is already built into Core, it hasn’t messed with our theme at all, which is not a full site editing.

[00:24:09] Nathan Wrigley: No so long as you don’t put yourself a full site editing theme in the website, then you can carry on as normal. And I imagine that will be the case for a long time to come. Did you rely on any external sources of knowledge? Obviously you’ve created your own content. I’m just curious to know whether or not you were also directing people to tutorials elsewhere. Some of the initiatives that wordpress.org are doing. The learn initiative and so on. I don’t know if any of that got used and whether it was useful.

[00:24:37] Daniel Schutzsmith: Yeah. Learn.wordpress.org, that’s really the main one that we have external links to and some of the specific tutorials on how to use the block editor. I didn’t have people go through like the workshops there or the lesson plans or anything like that. I think that’d be kind of an overkill overkill for this group, but definitely for developers I work with, when they want to know, especially for full site editing and they want to know, what it’s about, what things are coming, how it works.

That’s where I’ve been pointing people. It’s just, take a look at learn dot WordPress.org, because really, they have their pulse, they have the thumb on the pulse of what’s happening with all that and how it’s changing so rapidly.

[00:25:08] Nathan Wrigley: Now that you’ve got this experience of shifting a team of people over, do you try in any way to disseminate that knowledge to other people? I mean, obviously here you are on a podcast. You’re attempting to do it in this way, but I was curious if you took that any further and were linking up with other people, organizations maybe nearby or far away, remotely or close to home to enable them to assist them in this process should they wish to do it.

[00:25:31] Daniel Schutzsmith: Yeah, not yet. So usually the way I operate and I’ve done this model a few times, I’ve done a similar thing with non-profits, tech and WordPress websites over there and I’ll do the same thing in the government spaces. Usually I’ll go through the motions and I’ll try these things out myself, do a little case study, and then from there probably do a little tour of speaking or sharing or putting it out on different trade publications. For this, I’ve been going more towards Twitter and towards the WordPress communities and talking about it. So it’s been really cool to kind of, have that conversation with folks so far.

[00:26:01] Nathan Wrigley: One of the things which I find curious is that in the more recent past, if we go back, let’s say a decade or more, it was fairly difficult to use WordPress. And I don’t mean that in the sense that it was really difficult. I just mean it was a difficult job for a non-technical person. You had to be relatively prepared. You had to probably get out some reading materials and learn a bit of PHP and CSS and HTML and all of that. The last five, ten years have seen a real shift away from that. Obviously the block editor is trying to emulate that shift in the industry to more, what you see is what you get tools. I wonder if we’re going to lose something in our community.

I wonder if there’s going to be a real stark divide between the people who code, which may be smaller as a proportion of the user base of WordPress, and then the rest of us who are just building things and never dabbling in the code. And I wonder if it will have an impact on our wonderful community?

[00:26:54] Daniel Schutzsmith: Yeah. So I see two things. I do see no code as the future. I’ve thought that for a long time even more than a dozen years or so. When Webflow was starting up, I actually reached out to Vlad. This was about 2000 and oh, I think 2011, maybe something like that. And I said to him, you know, this would be great for WordPress.

Like we should do this over there because we need to really make it easier to work with WordPress stuff. And he decided he just wanted to do his own thing. And that’s how, Webflow became Webflow, with it’s own ecosystem. I think that future is where we’re going with WordPress gosh, I hope so.

But the one thing I want people to realize is I don’t think it’s going to be a separation of factions between like developers and builders. The problem, I think that happens a lot of times as we put ourselves in those spaces. And we say like, well, I’m a developer and this is going to take away a job from me or it’s going to make life more difficult.

I am a developer and I’m actually very excited about that because if I can make tools that way, or if I could take the thinking I already have about web development about using HTML and CSS, PHP, and JavaScript and bring it into that environment. I already have an advantage of that thinking of that way of thinking.

And when these building tools surface, it just makes it much, much easier to kind of work with. What also kind of interests me is the core tenant of WordPress. The core tenant of WordPress is about democratizing publishing. What better way to democratize publishing than to actually go into more no code of solutions to that.

I don’t see us not needing WordPress developers. The one thing I am a little bit confused at, for full site editing though, is how we do the more complex things. So it seems because of the way false editing works, there’s no PHP in it. It’s really HTML and json basically, and CSS. Where we put in the logic that we would usually put in the theme. The things we would usually do on a functions dot PHP file or the things that we would usually throw in to kind of override different PHP things. With templating, how are we doing in this FSE environment?

And people have kind of hinted to that and explain, you know, and, and, surely things like the query block help with that, but they don’t go far enough. There’s a large disconnect between the work that we do, on a larger sites with customizations on agency types of projects that just can’t be done in FSE yet because those limitations are there.

I’m really interested to see where that goes as well. I don’t think they’re going to completely ignore it. I don’t think they can. That’s part of the problem. You have to find ways to make it more custom and capable to make those changes. But it’s going to take some definite, changing of thinking for a lot of us on how we would work with things, for sure.

[00:29:25] Nathan Wrigley: What’s keeping you excited in this industry these days. Keeping it to WordPress, what are the things which are actually causing you be optimistic about the future. And making you pause for thought and think that’s something I want to be getting involved in.

[00:29:39] Daniel Schutzsmith: Yeah, a large part of me, I know people have been concerned, I’ve been concerned too with, you know, the direction WordPress goes, and for the community, as far as some of the things that are happening in Core. Full site editing, all those types of things. I get that change is difficult, but I also really am excited about that and kind of embraced it. The things I’m getting even more excited about are the areas that not a lot of us have touched on yet, which are automation, which you see a lot in the no-code space. So for instance, you’ll see people moving data around from like Airtable to Bubble to a Webflow. It hasn’t happened as much or earliest isn’t talked about as much inside of WordPress.

And so there are great tools out there, like Uncanny Automator, Zapier that can do these types of things. But I don’t think people realize that we have that capability. Joe Casabona has been talking about it a lot lately in the past year with his creators course, and that whole concept of automating all of this stuff, making it so that you literally don’t have to keep copying and pasting things from your WordPress site until whatever data sheet you’re using or whatever you’re doing. All that stuff to me is really important to the future of where we’re going. Combine that though with Bertha.ai, which I think you’ve played around with before. Is that right? Nathan? Yeah. So Bertha.ai, very similar to Jasper, which used to be called Jarvis.

It’s a artificial intelligence basically to help you write content. Created by Andrew Palmer and Vito Peleg. The thing that excites me about that is not so much that again, it’s not going to replace editors. It’s not going to replace people writing content. It’s actually going to help them do it better and do it faster. That’s the way I see a lot of this stuff. For web development in Visual Studio Code there was this thing that came up from Github that actually allows us to just start typing in a few pieces of code. And it’ll actually complete the whole thing for us. All with artificial intelligence, same concept.

Those types of things to me, rather than being afraid of them or walking away from them, I’m really looking to embrace them and see how we can use them to speed things up. If I can, like the sites I’ve created so far WP live streams directory, WP developer’s toolbox. This past weekend I made a thing called tiny press.email, which is purely just, three links, once a week that I sent out about WordPress design and development. Putting those things together, if I can do those in a few hours or a day, like that’s huge. If we can come up with concepts and just build them out super quick, that to me changes the game. So it changes the game for what we do, for us being entrepreneurs, for us working with clients, really changes the game. It makes everything speed up and be able to come to fruition much quicker.

[00:32:09] Nathan Wrigley: I remember the moment when I was at a WordCamp, it was in WordCamp London, and there was a talk by, I believe it was somebody working for Adobe and they were talking about the future of building websites, not necessarily WordPress, but just websites in general. And just the idea that you would be able to talk to the website and instruct it in the way you wished it to change. So it might be okay, make that the box on the left red. And can we have rounded corners of about five pixels? Let’s try that. Oh no, make it 10. And can we make the picture of a dog now a cat? These were the examples that were coming out of his mouth and this is what he is working on.

And just thinking, gosh, that just seems like something out of Star Trek, frankly. And yet this is the direction that we’re heading in, and it always feels to me, like we now think we’ve got a mature internet, but if you think about it, we’re still, we’re not even at the toddler stage of the internet really yet, are we?

There’s so much, which is going to happen in the days weeks to come. You think about the way that technology has been put into your back pocket in the last 10 years, that’s all it’s taken for mass computing power to be available in everybody’s hand. Imagine what we’ll be seeing in another 10 years. I like the excitement that you’ve got around that. That’s really interesting.

[00:33:26] Daniel Schutzsmith: The thing I was gonna mention too, you mentioned Adobe there. They actually are a great example of this as well because the gentleman you talked to might have actually been from the Adobe marketing program there. Adobe has its own CMS and its own marketing suite, which most people don’t know about.

Most people know Adobe have Photoshop and Illustrator and all that stuff. But the marketing suite is enterprise level and basically the way it works is it watches you and changes the website based on your interaction with that brand, either in their app, on the website in actual environments, like going to a store.

So it sees all the times that you’re basically interacting with that and will change what actually shows up on a homepage or change what shows up on a product page to cater to you. And so most people don’t realize that they have this capability already. I’ve seen maybe one or two plugins out there that did something similar with WordPress, but no one really took off.

I think they actually even shuttered at the time. But to me that’s another market where creating this whole environment that makes websites, respond to how you interact with them is also a huge thing that, it’s just wide open for the picking with AI.

[00:34:30] Nathan Wrigley: The best that I’ve seen in that regard are plugins, which can modify dynamically based upon certain conditions. So it may be that you’ve come from a particular website. And so it then displays, I don’t know, some additional messaging based upon where you’ve come from, or it may be that you’re in a particular geographical location, but that’s very much based on hard data. Whereas what you’re describing is, really kind of a bit fuzzy around the edges isn’t it? It’s things which at the minute are in the realm of humans. A human can detect that your eyes are dwelling on this part of the page. So there must be some interest about that thing. Really fascinating.

I’m going to ask you two questions and they’re basically the same question, but they might have different outcomes. I don’t know. So we spent the podcast talking about how you and your team have moved to the block editor and how you found that. Personally, if you were to build a blog tomorrow, just a blog where you are putting content, images, videos, text, and all that. Would you use the block editor to do that?

And then, if you were doing a site the very same day, but it was much more complicated in design, would you be using the block editor for that? Or would you still be going and using a page builder?

[00:35:45] Daniel Schutzsmith: So if I’m just building a basic site, I’m just trying to put things together. Lately I’ve been really excited using either the 2021 theme or 2022. But I’m not sold on FSE yet. So the full site editing experience is a little bit more difficult to work with. So, ironically I’ve been using 2021 theme for my latest projects like tiny press email. Purely because it’s quick, and I use that with that Twentig plugin. So basically it increases the capabilities, what you can do with it. And you basically run it like an Astra theme or like a Hello theme, but using the block editor. And that to me has actually been a really great quick process to be able to use and reiterate on these sites that, aren’t overly saturated with a lot of different, interesting CSS.

If I’m doing something that’s a more complicated design and we’re talking about a lot of things would be more like outside of a grid layout. If we’re offsetting things, stuff like that. I tend to go ahead and actually do kind of a more traditional theme around that.

Depending really on who the end user is and who the who’s going to be kind of working on that. Usually I’ll go to Understrap theme or something like that, or the other one’s Picostrap, to use the bootstrap framework and do something more, more interesting from there.

I’m not a big proponent of bootstrap. The only reason I use it is because there’s so many developers that I can throw into something that’s been built with bootstrap, for CSS and JavaScript that know how to work with it. So that’s really the end reason.

[00:37:03] Nathan Wrigley: Yeah, it’s interesting that even amongst people who’ve been using it for a large amount of time, as soon as the level of difficulty ramps up, the reliance on old trusted techniques still kicks back in doesn’t? We haven’t quite got across that bridge, but I feel that with WordPress six and maybe looking towards WordPress seven, which is still a long way off, I know, that we may be getting closer to the point where that decision is more and more straightforward to make.

[00:37:29] Daniel Schutzsmith: The larger thing for me is the reason that we can’t do more complex things inside the block editor really has to do with the version control. Because if I’m overriding CSS. If I do it in WordPress right now, I don’t have version control around the custom CSS I throw in. I can’t go back and see what I had done before. Whereas if I do that with code and I do that, putting it inside of Git version control, or something like that, I can you know, go back in time and get back to old stuff that we’ve done and see that progression. That’s another million dollar idea.

If someone builds in a better version control system into some of the coding aspects of what’s inside of WordPress, I think that would also get developers to really take off in there. I just think that the future of WordPress to me is, it’s looking very bright and I know sometimes we might feel a little grim, especially coming out of the pandemic and especially with so many things happening in the world.

But I’m really hoping that what we see kind of in the next, few years here really just kind of changes the way that, we realized that we’re pressed as a very professional system and we’re just growing up. If we follow along and if we tread our own path, and I think we’re all gonna come out okay.

[00:38:29] Nathan Wrigley: Daniel Schutz Smith. Thank you for joining us on the podcast today. I really appreciate it.

[00:38:34] Daniel Schutzsmith: Yeah, thank you.