WordPress Planet

March 19, 2022

Gutenberg Times: Block Pattern Directory, Export FSE Theme, Integration with BentoJS and Tailwind CSS – Weekend Edition 207

Howdy,

Thank you for keeping in touch between weekend editions. I am always grateful to read your comments and ideas. I learn so much. Keep ’em coming👍 .

I just finished testing the submission process for the block pattern directory. It’s a great experience. It showcases how the block editor can be used outside the content creation process. It is also a test case to for integrating Openverse into a media library and how to handle custom post types with the block editor. If you are eager to learn more about either of the topics the code is public and available on GitHub.

I hope to see you at the Gutenberg Developer Hours on Tuesday.

Be well,

Yours, 💕
Birgit

Gutenberg Plugin Version 12.8

Hector Prieto coordinated the release of the 12.8 version of the Gutenberg Feature Plugin. In his release notes What’s new in Gutenberg 12.8? (16 March), he highlights the following topics:

Many of the other changes are subtle, vital changes to the interface, to make the users feel more comfortable.

As always, WPTavern’s Justin Tadlock wrote about it, too: Gutenberg 12.8 Launches the Web Fonts API, Improves Group Nesting, and Adds Keyboard Shortcut for Links

Mary Job and I recorded our Gutenberg Changelog episode 63 last night and it should already travel to your podcast app. We really hope that we figured out the sound issues now, although technology wasn’t cooperating very well. We still had fun chatting about family and travel, off the record.

 “Keeping up with Gutenberg – Index 2022” 
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test and Meta team from Jan. 2021 on. Updated by yours truly. The index 2020 is here


Gutenberg for #nocode site builders and Content Creators.

Beatriz Fiahlo is a product designer at Automattic and open-source contributor, among others she worked on the new News theme on WordPress.org and the site of the Block Museum of Art.

In her most recent post and video, Designing a theme in the WordPress Editor, Fiahlo recounts how you can create a theme by just using the Site Editor. “We’re finding that it’s more and more possible to design a fully-featured theme using just the Site Editor, skipping that Figma step entirely. This takes us from a rough idea to a working theme in just a matter of hours, and doesn’t require opening a code editor at all.” she wrote about the theme design process at Automattic. She also had a few tips along the way.


This week’s Gutenberg Block News show with Jamie Marsland landed. First, Marsland demos the new theme export features. Go from modifying and existing theme via Styles, to uploading it as a new theme in six steps:

  1. how to modify a theme,
  2. export it via the site editor,
  3. make three minor changes,
  4. re-zip it and
  5. upload it to a website and
  6. activate it.

Check it out and learn about Marsland’s Theme of the Week, the review roast and more.

Still shot from WordPress Gutenberg News March 18th, by Jamie Marsland

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Have you been using it? Hit reply and let me know.

GitHub all releases


Lesley Sim, founder of the Gutenberg first Newsletter Glue plugin and used her on the Gutenberg Times, published an in depth tutorial on how to build your own paid newsletter on WordPress with Paid Memberships Pro. If you ever wondered what it took to create a Substack-like tool for writers, educators and consultant, this could be your blueprint.


In the series Building Blocks, Justin Tadlock walks you through his tutorial How To Build a Recipe Card via the WordPress Block Editor. The end product is a pattern, created all with existing blocks and available to copy/paste into your site via a GitHub Gist the wp-recipe-card-pattern.html


Anne McCarthy started the 3rd round of Full-Site Editing (FSE) Questions. “If possible, please focus questions specifically around WordPress 6.0 as those will be the most high impact to address ahead of this upcoming release.” she wrote. You can either submit your questions via the Survey Form or leave a comment on the post by March 30th, 2022.


Alex Shiels from the Meta Team just announced that the Block Pattern Directory will soon be open for public submissions. You are invited to test the submission process before it goes live. You can create your block pattern using a stand-alone front-end block editor, using all core blocks, except theme blocks, for instance site title or tag) and dynamic, site related blocks, like a query loop.

Openverse is integrated as media library, and you can use images released with the Creative Commons license “CC0 license, no attribution needed”, to keep everyone out of licensing troubles.

Once you hit the submit button for your English block pattern, volunteer translators on the Polyglot team will make it available as well for other locales.

First designers submitted Block Patterns to the directory: Carolina Nymark and Rich Tabor.

After the WordPress Photos Directory, the Block Pattern Directory is another opportunity for creative people, non-developers to contribute to the WordPress community.

Sarah Gooding on WPTavern wrote about it in her article: WordPress.org to Launch Pattern Creator to Expand Pattern Directory.


Jamie Marsland has 10 WordPress Gutenberg Block Editor Tips That Save You Time. From disabling the pre-publish step, over the List View to the Slash command, you’ll find a great array of tips and tricks for the new and power user alike in Marsland’s video. Personally, I also enjoyed the Mac Shortcut to get a list of Emojis to use in your content 😉.

Developing Blocks and for the block editor

Where are WordPress Block Plugins used on my site? Rene Morozowich looked for the clues in the database and shares what sure discovered. She walks you through the process can code.

If you are uncomfortable with raw database tables and SQL you can also install the plugin Find my Blocks. This plugin provides you the list of used blocks, the post, and pages, you used them on and the unique identifier of each block. You can use the search in WP-Admin > All Posts enter the unique identifier string into search box, and you will get a list of posts where you used a particular block. I described the process in detail on GitHub, commenting on the tracking issue for Block Manager enhancements.


Pascal Birchler, core contributor at Google, explored building Gutenberg Blocks with BentoJS components. His tutorial, How to create WordPress Gutenberg blocks with BentoJS, is part of the official BentoJS documentation. Birchler and Alain Schlesser, maintainer of WP-CLI are meeting up at CloudFest in Germany, to explore the use of BentoJS with the block editor.

BentoJS website | Pascal Birchler’s GitHub repo for the Gutenberg Carousel.


Munir Kamal, author of the Editor Plug plugin and founder of the Gutenberg Hub, posted a tutorial on How to create a Custom Block Category, a section in the Inserter that can hold your group of blocks.


Ben Ritner, founder of Kadence Theme and now part of Liquid Web and StellarWP, was this week’s guest on the Torque Social Hour with DocPop and Nick Diego.

The Kadence blocks plugins was available even before the block editor was merged with WordPress 5.0 and has now over 200,000 active installations.

On the show, Ritner discussed the realities of a WordPress theme developer and listed a few major features that he found missing in Gutenberg, before Ritner would consider it a site builder. “How there is no responsiveness in any of the Core Blocks is blowing my mind. How are we working on full site editing and not handling that key aspect of web development?”

Ritner also explained, why his team doesn’t yet consider making a child theme for the full-site editing experience. “It’s not ready yet”. Kadence created a design library early on, so there is no need for Block patterns in the theme. Once they create a child theme for full site editing, they will recreate some of their templates as Block Patterns.

These are only a few insights you get from the show. It was a candid discussion that is well worth your time.

Speaking of responsiveness. The Gutenberg contributors have been tackling this for quite a while. You can follow along on these issues on GitHub, chime in and test.


Developing Themes for Gutenberg

Justin Tadlock discovered a New Plugin for Writing WordPress Theme JSON Files via YAML by Sascha Paukner, a web developer from Berlin, Germany. In his article, Tadlock walks you through on how to use the Theme YAML plugin. For some developers YAML is an easier format than JSON.


It seems the feature of configuring the block editor via the theme.json file sparks great creativity for tooling. If you are searching for other tools check out this list:

You also might be interested in our post How to disable theme features and Lock Block Templates for Full-Site Editing in WordPress


Misha Rudrastyh shared their insight on Learning Full Site Editing with Kubrick Block Theme. Riad Benguella rebuilt the long-time default theme as block theme. Rudrastyh’s walk explains how the pieces fit together.


David Dwyer published a demo plugin how he was able to integrate the create-block script with Tailwind CSS. Say hello to ‘Tailwind Blocks’. The plugin started its existence with the recommended @wordpress/create-block script and auto enqueues all JS and CSS (including Tailwind styles). 

In this week’s Twitch stream, Ryan Welcher invited his follower “Let’s add Tailwind CSS to our custom blocks and create a create-block template for it.


Nyasha Green of MasterWP posted an interview with Anne McCarthy on WordPress’s coolest new project: the Museum of Block Art. Green wrote about her response to the museum: “Speaking for myself the best thing about this project is that it reminds us that we are artists.  Even those us of who are not designers, or the best at Front End work.  We still create masterpieces in the form of code, websites, apps, etc.  I think you have created that link that makes us go to ourselves, “Hey we are making art!” And I for one am very grateful for it. “


Are you interested in Automating your Gutenberg Block development? The next Buddy.works webinar will take place on March 23 at  17:00 PM UTC / 1 pm Eastern / 10am PT.

With Grzegorz Ziolkowski, Open Sourcerer @ Automattic and Maciek Palmowski, WordPress Ambassador @ Buddy. 

You will learn 

  • How to start WordPress block development
  • How to leverage JavaScript developer tools for WordPress plugin and block development
  • How to automate your development workflow to maximize confidence in the codebase and monitor its health
  • How to configure a pipeline in Buddy to automate the development process

WordPress Social Learning Events

If you are a developer working with code, the Gutenberg Developer Hours are for you. The next event will take place March 22nd, 2022 16:00 UTC / noon ET.

With Joni Halabi, Tammie Lister and Fabian Kägy

March 22, 2022, at 3 am ET / 19:00 UTC
Intro to Theme Blocks with Wes Theron

March 23, 2022, at 1pm ET / 17:00 UTC
Builder Basics: Exploring Block Layout, Alignment, Dimensions, and Spacing with Nick Diego

March 25, 2022, at 11 am EDT / 15:00 UTC
Block Theme Discussions: Custom Fonts with Daisy Olson

March 28, 2022, at 11 am ET / 15:00 UTC
Hello Blocks! Coding a custom block with Wes Theron and Ryan Welcher

March 29, 2022, at 3 pm ET / 20:00 UTC
Beginner’s Guide to Full Site Editing with Sarah Snow

April 1, 2022, 11 am EDT / 15:00 UTC
Block Theme Discussions: JSON Schema with Daisy Olsen

April 6, 2022, 2pm EDT / 18:00 UTC
Builder Basics: Designing with Columns, Group, and Row Blocks (Part 2) with Nick Diego

April 8, 2022, 11 am EDT / 15:00 UTC
Block Theme Discussions: Supports in theme.json with Daisy Olsen

April 12, 2022 2pm EDT 18:00 UTC
Builder Basics: Headers and Footers in Full Site Editing w/ Nick Diego

April 15, 2022, 11 am EDT / 15:00 UTC
Block Theme Discussions: Presets in theme.json with Daisy Olsen

April 19, 2022 2pm EDT / 18:00 UTC
Builder Basics: Exploring Block Layout, Alignment, and Dimensions (Part 2)


Featured image: DC Metro-ChinaTown platform by Sara Marcondes found on the WordPress photos directory


Don’t want to miss the next Weekend Edition?

We hate spam, too and won’t give your email address to anyone except Mailchimp to send out our Weekend Edition

Thanks for subscribing.

by Birgit Pauli-Haack at March 19, 2022 07:00 PM under Weekend Edition

Gutenberg Times: Gutenberg Changelog #63 – Block Pattern Directory, WebFonts API and Gutenberg 12.8

Birgit Pauli-Haack and Mary Job discuss Block Pattern Directory, WebFonts API and Gutenberg 12.8.

Show Notes / Transcript

Subscribe to the Gutenberg Changelog podcast via your favorite podcast apps!
🎙️ Spotify | Google | iTunes | PocketCasts | Stitcher |
🎙️ Pod Bean | CastBox | Podchaser | RSS Feed 

Show Notes

Announcements

Community Contributions

Gutenberg 12.8

Stay in Touch

Transcript

The transcript is in the works.

by Birgit Pauli-Haack at March 19, 2022 06:23 PM under Gutenberg

WPTavern: WordPress Community Team Reconsiders Guidelines for In-Person Regional WordCamps

The pandemic has dramatically slashed the number of in-person WordPress events that volunteers are organizing and events have been slow to start up again. This has caused the WordPress Community Team to reconsider the guidelines for hosting regional WordCamps.

Historically, these guidelines have generated lengthy discussions, as many vocal opponents found them to be needlessly prohibitive. WordCamps began as local, city-based events, and organizers were not allowed to put together a regional WordCamp without jumping through a lot of extra requirements. These included having experienced event organizers that represent all WordPress communities in the region. The guidelines state:

Before applying to organize a regional WordCamp, there should be at least 3 cities in your region (but very possibly more) with a local group that meets monthly, and that have hosted at least one WordCamp. The size of your region (in geography and population) will affect the expected number of established communities.

In 2017, WordPress Community Support (WCS) shut down WordCamp Netherlands in favor of city-based WordCamps, sending the Dutch community into an uproar. The region, which is roughly the size of Maryland, had successfully held six editions of WordCamp Netherlands before WCS decided not to approve its application.

The camp was reinstated in 2018 after organizers agreed to meet additional requirements in the guidelines outlined above. This was not without a significant struggle, as the project moved to shed its “one-size-fits-all” approach to WordPress events. WordCamp Netherlands is once again on the schedule for 2022 as an in-person event.

In 2017, WordPress Community Manager Hugh Lashbrooke proposed the idea of micro-regional WordCamps, which makes exceptions to the meetup requirements for regional camps in situations where neighboring cities share meetup organization responsibilities. The idea received widespread support, as it makes sense in certain instances.

“Exception is the keyword here,” WordCamp Netherlands organizer Marcel Bootsman said at the time. “If these local communities are active and healthy, let them organize a WordCamp. Be happy with the fact that people want to organize.”

WordPress is slowly coming around to this idea – that volunteer-run events thrive better with more flexible guidelines that allow for cultural and geographical differences.

In 2020, the Community team relaxed a number of guidelines, including some for regional online WordCamps, in order to help keep communities connected during a difficult time.

“This resulted in a bunch of online regional WordCamps in CentroamericaGreeceFinlandIndiaItalyJapanSpain, and Taiwan, among others,” Community Team Representative Hari Shanker said. “These events were quite successful in bringing together local communities even despite the challenges of the COVID-19 pandemic.”

Now that WordPress events have taken a hard hit, the Community Team is considering loosening these restrictions for in-person regional events.

“Some local communities have also approached WordCamp Central, expressing their interest in organizing regional events,” Shanker said. “At this time, our organizers are still encouraged to plan smaller city-based WordCamps over larger regional events (especially in the light of COVID restrictions that are still in place in many regions). However, I strongly feel that the Community Team should revisit the existing guidelines for regional events due to a renewed interest in the same.”

Shanker is asking for feedback on the discussion before April 4, 2022. A few contributors and organizers have already weighed in.

“Switzerland is such a small country that having separate WordCamps for Geneva, Lausanne, Bern and Zurich seems to be unnecessarily complicated,” Mark Howells-Mead said. “By re-establishing WordCamp Switzerland – which takes place in a different city each time and which was organized as a regional event until 2015 – we can better ensure that the visibility of the event and repetitive work can be more efficiently organized.”

Marcel Bootsman once again called on the Community Team to use common sense as a guide when evaluating whether a region is fit to host a WordCamp.

“We’ve had quite a few discussions about regional WordCamps in The Netherlands,” Bootsman said. “Let me just say I’m happy WCNL is back on the agenda, and I hope regional/local (city based) WordCamps are evaluated according to the country geographical size, and the feedback of the people organizing them.”

by Sarah Gooding at March 19, 2022 04:44 AM under regional wordcamps

WPTavern: New Plugin for Writing WordPress Theme JSON Files via YAML

I have a new favorite WordPress development-related plugin: Theme YAML. Sascha Paukner released it a mere day ago, and it may find its place in many theme developers’ toolboxes before long. It allows themers to write theme JSON in YAML format.

To use, theme authors only need to create a new theme.yaml file and begin adding their custom configuration in the human-friendly YAML format. The plugin will convert it into JSON and save it to the theme.json file.

As someone who has had his fair share of headaches writing directly in JSON, I have never been happier to look at the following in my code editor:

That is pretty.

I just wish I had thought of this plugin idea first. I routinely work with YAML files when dealing with other systems and convert the data to PHP and JSON. It just made sense as soon as I saw the plugin description.

JSON is not the easiest-to-write format when dealing with configuration files, which is what the theme.json file is. It works well for cross-language data storage, but I sometimes cringe when opening a JSON file to type in, especially if it has 100s or 1,000s of lines. Plus, you cannot leave inline comments to remind yourself or others why a particular decision was made or a setting configured.

Is YAML better? It has its pros and cons, and in my experience, parts of the syntax can become complex for the unfamiliar. However, supporting inline comments alone is worth it.

The plugin’s documentation was bare-bones at best. It said nothing about how it worked under the hood. I had questions. Is there a setting for the conversion? Is it automatic? Does it happen on every page load?

I peaked under the hood so that you do not have to. The plugin automatically searches for a theme.yaml file in the active theme’s root folder when a page is loaded. If found, it will check its last modified time and store the value in the database. If there are new modifications, the plugin parses theme.yaml, converts it to JSON, and writes it to the theme.json file.

If the active theme is a child, it will also automatically run through this process for its parent.

The downside to the plugin is that it leaves the resulting JSON minified, which is tough to read. This is OK when you have the theme.yaml file on hand. However, when submitting to the WordPress.org theme directory, this “build” file would typically be something a theme author would not bundle in their theme ZIP.

I firmly believe in shipping code that is readable and editable to whoever receives a copy. There are a couple of options for theme authors to do this. They can ship both the theme.json and theme.yaml files or change the following code in the plugin’s main file:

$themeJson = json_encode($themeObject, JSON_UNESCAPED_SLASHES);

We merely need to toggle on the JSON_PRETTY_PRINT flag for the json_encode() function:

$themeJson = json_encode($themeObject, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);

I hope the plugin developer will consider this change in a future version or allow theme authors to filter it.

There are other solutions for theme authors who shy away from theme.json. I have split my JSON into manageable chunks across multiple files in the past. Then, I used a webpack plugin for merging them during my watch/build process.

I recommend using the JS YAML Parser or a similar package for those who prefer YAML but want integration with their build system.

by Justin Tadlock at March 19, 2022 03:32 AM under Themes

March 18, 2022

Akismet: How to Create a Custom WordPress User Registration Form

Converting visitors into registered users is a big win for any website. If you’re going to build a loyal community, a quick and easy user registration form is essential.

Fortunately, there are various ways to create a custom WordPress user registration form. With the right tool, you should have no problems capturing leads, building your mailing list, and reaping the many other benefits of user registrations.

In this post, we’ll discuss why registration forms play a huge role in running a successful website. We’ll then cover four ways to create an effective form.

An introduction to user registration forms

Internet users typically create accounts with websites by entering their personal information into registration forms. You’ll find these forms across the web, including on forums, online job boards, membership websites and social media sites.

An admin can create user accounts in the WordPress dashboard by navigating to Users → Add New, but this process requires time and effort, especially if you have thousands of users. 

The admin also needs to know all of the user’s personal information and assign them a password. This can become a security vulnerability if the new member doesn’t change their login information immediately.

By creating a public user registration form, you can significantly reduce your admin’s workload. You can also improve your website’s security since the admin doesn’t know the passwords for the user accounts.

Additionally, if you offer memberships, a quick and easy registration form is essential for capturing leads and driving conversions. You might even generate a profit by charging your members. 

Many online stores also use registration forms to encourage brand loyalty. After completing the signup process, customers may be more inclined to visit your store again.

In addition, many registration forms collect personal information, like customer postal addresses. You can then use this data to auto-complete subsequent forms. This feature can improve the checkout experience, potentially reducing cart abandonment rates

You might even use this information to target visitors with personalized content, advertisements, or email marketing. For instance, you could create targeted email campaigns.

These segmented campaigns typically deliver 74.53 percent higher click rates than non-segmented ones. Your targeted campaigns may include exclusive coupon codes for products that customers have previously purchased. The emails could also include new blog posts that subscribers may be interested in reading. 

Overview of 4 different ways to create a custom WordPress user registration form

Now that we’ve explored the pros and cons of each approach, let’s see some solutions in action. Here are four different ways to create a custom user registration form for your WordPress website!

1. The WordPress built-in user registration form

You can create a basic user registration form with WordPress built-in settings. This feature is quick and easy to set up and requires no extensive configuration.

Note that the built-in WordPress registration form simply collects a user’s email address and password. You can’t add more fields without diving into your site’s code. This means that you miss out on capturing important information. 

For example, if you’re running an eCommerce site, you may want to record a visitor’s postal address. It isn’t possible to get this data with the WordPress built-in registration form, potentially impacting the effectiveness of your membership functionality.

The built-in registration form will also appear on a separate page, without an easy way to change its location. For a more seamless user experience, many sites choose to embed registration forms within their content. They may even add the feature to recurring areas, like the website footer.

Featuring this form alongside your site’s content is a great way to encourage signups. This isn’t possible using WordPress built-in features unless you’re willing to edit your website at the code level.

2. A custom-coded user registration form

As an open-source platform, WordPress gives you complete access to its source code. This openness lets you extend the core software and add extra features.

If you’re comfortable editing WordPress at the code level, it’s possible to customize the built-in registration form. This option has more flexibility without weighing down your site. 

It can also help you control the data that customers enter into your forms. This is particularly true when comparing this method to using a third-party plugin or external form-building tool.

Note that writing custom code requires a considerable amount of technical knowledge. Editing WordPress at the code level can also be risky. For example, if you make a mistake, you could take down your site or cause conflicts with existing themes, plugins, or WordPress core. Or you could even create a security vulnerability that hackers might take advantage of.

To minimize the dangers, we recommend implementing all of your changes through a site-specific plugin. You can then deactivate this plugin if it causes issues on your website. 

Still, it’s wise to create a full backup before making any changes at the code level and test them on a staging site so you can spot and resolve issues before rolling out changes to a live site.

3. Third-party tools 

You can also offer user registration with a third-party tool like Google Forms. Typically you’d be able to share the same form across multiple locations and platforms by opting for a cloud-based service. 

For example, you might embed the form in your WordPress website, email marketing campaigns, and social media pages.

With cloud-based platforms, you can often view your responses in a single, centralized location. This setup can make it easier to analyze your results and share them with your team members. 

Still, it may be difficult to seamlessly integrate third-party forms with your website. You’ll also need to ensure the form perfectly complement’s your site’s branding. 

And not all third-party form builders are correctly optimized for mobile, including some big names like Google Forms. This limitation means that people visiting your site on mobile devices may not have the best user experience. With over 90 percent of the global internet population using a mobile device to go online, a lack of form optimization is a significant drawback. 

Depending on your chosen tool, third-party forms may also negatively impact your site’s speed. This is bad news for conversion rates and your website’s overall performance.

4. Form builder plugins 

You can also create a wide range of custom WordPress user registrations forms with a plugin. These tools often give you complete control over your form’s design and the type of information you collect.

Some plugins can impact your site’s performance or conflict with other software. So, we recommend researching potential plugins carefully. 

If you’re downloading the plugin from the official WordPress repository, then you can check out its most recent reviews. 

We recommend paying special attention to the most recent feedback. A plugin may have a positive average star rating, but an influx of recent negative reviews can indicate an issue with the latest release.

How to enable user registration in WordPress

Before you can start accepting registrations on your site’s front-end, you’ll need to enable signups on the back-end. 

To do this, navigate to Settings → General. Now, find the Membership section, and select the accompanying Anyone can register checkbox.

While you’re here, you can configure the role for new signups. This setting restricts the actions members can perform on your site and the data they can access. 

To keep your site secure, it’s wise not to automatically assign roles that give visitors elevated privileges, like Author or Editor. Instead, consider using Subscriber.

After making these changes, click on Save Changes. WordPress is now ready to accept signups, so the next step is giving visitors a way to register with your site.

How to create a user registration form in WordPress

Many websites offer membership functionality. With this in mind, it’s unsurprising that there are multiple ways to create a user registration form in WordPress. Here are four options:

1. Use the built-in WordPress user registration form

Out of the box, WordPress has everything you need to add a basic registration form to your website. The form page is similar to the standard WordPress login screen for accessing the admin dashboard. Although it appears on a separate page, you can link to it from any widget-enabled area on your website. 

To create this link, navigate to Appearance Widgets. Now, find the area where you want to add the Register URL, like Footer Column 1 or Below Header. Then, click on this section to expand it.

Now, select the + icon and search for the Meta widget. When it appears, give it a click.

To save your changes, click on Update. Now, if you check out your site’s front-end, you should notice a brand-new Register link.

Clicking on this link will take visitors to a separate page with WordPress’ built-in user registration form. If the person already has an account, they can select the widget’s Log In URL instead. This will take them to a similar form to sign into their account. 

2. Write custom code

It’s impossible to edit the built-in registration form using the standard WordPress tools and interface. Fortunately, you can edit the registration page with WordPress hooks

Hooks are functions that you can apply to any Action or Filter. WordPress will perform Actions when a specific event occurs. In contrast, Filters can modify certain functions.

To customize the WordPress built-in registration form, it’s a good idea to make your own site-specific plugin. It will contain all of your custom code. 

Placing all of this functionality in a separate plugin can ensure that you don’t lose your modifications whenever you update your site’s theme. This setup will also make it easier to activate and deactivate the registration form feature if required.

To start, connect to your server via File Transfer Protocol (FTP) using a client like FileZilla. Once you’ve made this connection, navigate to your site’s /wp-content/plugins/ folder.

Create a new file with a descriptive name like registration.php. Next, open this file in your computer’s default text editor. 

You can now implement all of your hooks. This step will vary depending on the user data you want to collect. You’ll find a demo over at the WordPress Codex, plus a breakdown of some of the hooks you may want to use.

3. Embed a Google Form 

There are various third-party form creation tools. Google Forms is a popular option that stores all data in your Google Drive account, where it’s easily accessible. 

To create a custom WordPress user registration form, head to the Google Forms website. You can then either make your form from scratch or use one of Google’s ready-made templates.

To start, give your form a descriptive title. You can then add fields using the + icon.

If you’re creating a long registration form, you may want to group your questions into sections. You can achieve this with the Add Section icon. 

Before visitors can sign up, you’ll need to make your form public. In the upper-right corner, click on the three dots, and then select Add Collaborators.

In the subsequent popup, click on Change. You can now make this form accessible to anyone who visits your website.

Next, select the Send button. This opens a popup containing an embed link:

To add this form to your website, copy the embed code. Then, switch to your WordPress dashboard and navigate to the page or post where you want to use this form. You can then open the page and insert a new Custom HTML block.

Paste your embed code into this block. You can now update or publish this page, and your form will be ready to accept registrations. 

Finally, head back to Google Forms and open your user registration form to view your responses. From here, select the Responses tab, and you can see all of the submitted information.

4. Use the Contact Form 7 plugin

When it comes to WordPress, there’s a plugin for almost everything — and building a user registration form is no exception. You can create a wide range of forms using Contact Form 7.

After activating this plugin, navigate to Contact → Add New. Now, give your form a descriptive name.

Contact Form 7 automatically creates fields for collecting the user’s name and email address. It also adds a space for them to write a message and a subject line. Since we’re creating a user registration form, you’ll likely want to delete those last two fields.

If you want to collect more information, you can add extra fields. For instance, you might want to give visitors the option to create a username. 

The easiest method is to copy/paste a section of the pre-existing field code. You can then modify the Label, which is displayed to the user. Finally, change the text* value, which is only visible on your site’s back-end.

Alternatively, you can create fields with the buttons above the main editor, like email, URL, or tel. Clicking on any of these buttons will launch a popup where you can configure your field:

By default, submissions are sent to the email address associated with your WordPress admin account. You can change this by selecting the Mail tab. You can also customize the text included in Contact Form 7’s messages. 

When you’re happy with your form, click on Save. Then, copy the provided shortcode and navigate to the page or post where you want to embed this form. Here, insert a new Shortcode block.

Paste the embed code into the Shortcode block. Your custom user registration form should now appear on your website.

How to protect your WordPress registration forms

Malicious third parties often try to exploit user registration forms. In fact, one in five account registrations is fraudulent. If hackers create an account on your site, they might use it to launch more sophisticated attacks or even flood your website with spam. With this danger in mind, securing your registration against attackers is essential. 

1. Use an anti-spam tool

Akismet works in the background, so it doesn’t interrupt the user experience or require any complicated setup. If you’re using a contact form plugin for your registration form — like Contact Form 7 — Akismet can run submissions against a global database of known spam. That means that you won’t have to deal with spammers and hackers on your forms; Akismet will take care of everything for you.

2. Change your form URL

If your form is located at an obvious URL, you may want to consider moving it. This new location makes it more difficult for hackers to find your form with automated bots. 

You can modify the default WordPress user registration form URL with a plugin like WPS Hide Login.

3. Set up automated email authentication

If you only expect a small number of registrations, your admin may be able to review each submission manually. Still, this isn’t feasible for all websites. 

If you receive many submissions, performing automated email authentication using a plugin like User Verification may make more sense. This tool enables you to respond to incoming registrations by sending verification emails to the addresses associated with those submissions. Users can then confirm their identities by clicking on authentication links.

4. Use a honeypot or CAPTCHA

Another option is protecting your form with a honeypot verification field or a CAPTCHA/reCAPTCHA, using a plugin like reCaptcha by BestWebSoft. These tools are specifically designed to stop bots in their tracks.

5. Limit access based on location

If your website has strong ties to a particular location, you might even restrict access based on the user’s geographical area, using IP2Location Redirection.

All of these techniques can help to keep your registration form safe. Still, you can also benefit from having a professional spam detection plugin in your corner. 

6. Prevent brute force attacks

Brute force attacks occur when hackers use bots to try thousands of username and password combinations until they gain access to your website. Once a hacker gets into your site, they can use it for whatever malicious purpose they have in mind. 

To protect your registration forms, you’ll want to enable brute force attack prevention with a plugin like Jetpack. It automatically blocks malicious actors before they even reach your site, and keeps hackers from gaining access or slowing things down due to repeated login attempts. 

Drive conversions with WordPress user registration forms 

Getting people to your site is no easy task, but convincing them to stay can be even more difficult. By offering user registrations, you boost your chances of transforming one-time visitors into loyal, repeat members.

Let’s quickly recap four ways to create a WordPress user registration form:

  1. Use the built-in WordPress user registration form.
  2. Write custom code.
  3. Embed a Google Form.
  4. Use the Contact Form 7 plugin. 

With one of these methods, you should have no problem making a quick, convenient, and high-converting registration form. This feature then opens up a world of possibilities, including email marketing, retargeting campaigns, and personalized advertising. 

by Simon Keating at March 18, 2022 03:21 PM under General

Post Status: Post Status Notes #490

Newfold acquires YITH, Hostopia. Wordfence stops FastOrSlow.com. DigitalOcean acquires CSS-tricks. Tips and tricks for WordPress devs.

Courtney has the week's news from the people making WordPress at .org. 🏗 Check out David‘s podcast and video picks for the week. 🎙 Have you found greater benefits or costs from being assertive in your workplace? ✋ Would WordPress benefit from public relations messaging around security issues? 🤔 Tell us what you think! We want to hear your take.

.kt-block-spacer-_18c045-63 .kt-divider{width:80%;}

Joost Exploring Projects Beyond Yoast

Joost de Valk is transitioning to a different role at Yoast. He says he is “spreading his wings” in anticipation of pursuing other dreams “outside of Yoast.” He states he's not leaving Yoast but possibly devoting attention to other companies he's invested in:

My ambitions outside of Yoast were my main personal reason for selling Yoast. I really was getting bored. After our sale to Newfold, Yoast is running rather smoothly without me interfering on a daily basis.

.kt-block-spacer-_537dfc-c6 .kt-divider{width:80%;}

Newfold Acquires YITH and Australian Hostopia

This week, Newfold Digital announced it has acquired YITH and their team. YITH bills itself as the “#1 Independent Seller of WooCommerce Plugins.” It is the biggest WooCommerce marketplace alternative and competitor to WooCommerce.com.

Last week, Newfold expanded its portfolio by acquiring Hostopia Australia for $23 Million (USD). Hostopia was founded in 1999 and acquired by Deluxe in 2008; it acquired another Australian host, Digital Pacific, for $52 Million (USD) in 2017. (Digital Pacific was itself a consolidator of other regional hosting companies.) Only the Australian arm of Hostopia is being acquired by Newfold.

Hostopia's website describes it as “delivering a white-label platform for Deluxe's suite of small business solutions.” Deluxe (NYSEDLX) is a US-based publicly-traded international company focused on small business needs. Based in Minneapolis, Minnesota, Deluxe dates back to the origins of the personal checkbook and adapted in the digital era to payment processing and fintech.

There have been nine acquisitions in 2022 within the WordPress space to date.

.kt-block-spacer-_ccf749-3c .kt-divider{width:80%;}

DigitalOcean Acquires CSS-Tricks

This was a bit of a surprise: CSS-Tricks is being acquired by DigitalOcean. CSS-Tricks (currently running on WordPress) has been a popular source of CSS (and at times WordPress) information for 15 years. Founder Chris Coyier said he “will be working with the DigitalOcean team as an advisor as we transition CSS-Tricks to DigitalOcean’s management,” but then he will “step back to focus on my other projects.”

Maybe it's not so surprising. This week, I received an email from Digital Ocean announcing, “Your personal account is now a team.” (Teams are a relatively new feature for collaboration at Digital Ocean that's included with all new accounts — and now apparently all old accounts.) Digital Ocean is emphasizing its value for agencies, freelancers, and solo developers. As Digital Ocean CEO Yancey Spruill says in his blog post about the CSS-Tricks acquisition:

“CSS-Tricks will broaden and complement our existing library of content, furthering DigitalOcean’s reach with both frontend and full-stack developers, and supports our community strategy, a key differentiator for DigitalOcean in the cloud computing space.”

— Dan Knauss

.kt-block-spacer-_38915f-90 .kt-divider{width:80%;}

Fast, Slow, and Stop

Mark Maunder, Founder & CEO of Wordfence, recently informed FastOrSlow.com users the service is shutting down on March 31st.

As a lesser-known Wordfence property, Mark noted, “FastOrSlow never really gained much traction as a product… the total number of users we gained was just over 7,000… it isn't showing growth, and it is a burden on our operations team to operate. It's also outside our core business, which is cybersecurity.”

This is a shame. FastOrSlow developed into quite a beautifully designed and useful service I've certainly taken for granted. I'm not sure I even knew it belonged to WordFence. Rather than shut it down, I wonder if someone else might be interested in acquiring it?

— Dan Knauss

.kt-block-spacer-_435457-b8 .kt-divider{width:80%;}

How Page Experience Ranking Works

If SEO is important to you, then check out Search Engine Journal‘s Roger Montti summarizing the key details in a talk with Google‘s Search Advocate, John Mueller: “How Page Experience Ranking Factors Actually Work.”

Mueller addresses Core Web Vitals and says their “ranking signal might account for small changes, but it’s not the kind of signal that would result in a huge change” in a site's position in search results.

.kt-block-spacer-_23dfb8-ea .kt-divider{width:80%;}

Registering a Custom Font in the WordPress Editor for Block or Classic Themes

Geoff Graham demonstrates two ways to register a custom font with the WordPress editor: the “future friendly” theme.json way and a PHP alternative for those working in classic themes.

.kt-block-spacer-_bff7db-6e .kt-divider{width:80%;}

Don't Peeve the Plugin Team: A Guide to Successful Plugin Submission at WordPress.org

If you're a plugin developer or aiming to be one, then you might enjoy Ronald Huereca‘s new guide through a series of workflows and tips for a successful plugin submission to the wordpress.org plugin repo. An example:

WordPress “hosts” your plugin. It isn’t a dev environment.

Excessive plugin commits will peeve the plugin review team. Do your development somewhere else.

.kt-block-spacer-_4b0634-c2 .kt-divider{width:80%;}

This is not a pipe, it's Pipe Viewer

Tom McFarlin shares how developers can use Pipe Viewer to see what's happening between two applications. His use case is a database migration. If you are importing the contents of a very large SQL file into MySQL, then you want to know its progress as the import is happening. Pipe Viewer can do that.

.kt-block-spacer-_a3cc97-d8 .kt-divider{width:80%;}

Just Cargo Cult and Paste

Mitchell Hashimoto, the founder of HashiCorp and creator of Vagrant, writes and shares his processes for learning and contributing to complex software projects: “The first step to understanding the internals of any project is to become a user of the project.”

Next, you need to learn how to build the project, and you don't have to know a great deal about it: “Don’t bother with understanding the build system, the dependencies, etc. Just cargo cult guides, websites, whatever you need to reliably and repeatedly go from source code to runnable binary on your system.”

by David Bisset at March 18, 2022 04:24 AM under themes

Post Status: Would WordPress benefit from public relations messaging around security issues?

After looking at the latest WordPress security report from Patchstack, Rob Howard challenges some of its numbers. He believes core WordPress is more secure than the report indicates. He notes a significant overlooked statistic: “core WordPress vulnerabilities went from 22 in 2020 to just one in 2021.”

Rob also thinks open-source transparency about bugs and security issues “puts us at a bit of a public-relations disadvantage” that ought to be counteracted with positive messaging. No one outside of Shopify and Squarespace knows how many security issues those platforms had in any given year. That may be a competitive advantage in marketing.

This isn't a bad idea:

“It would benefit everyone if we could figure out a better public-relations solution to these announcements. When writers use only raw numbers (millions!) or low-context statistics (150%!), it degrades the WordPress brand for no good reason… we [also] need WordPress security messaging that doesn’t come from people who sell WordPress security software.”

Not a bad idea at all.

What do you think — should we spin up the bright side of WordPress security issues? Would it make a difference that matters to market share, brand reputation, the WordPress community and ecosystem, or…?

by David Bisset at March 18, 2022 03:31 AM under Security

WPTavern: How To Build a Recipe Card via the WordPress Block Editor

Last summer, I was on a pattern-creating bender. In two months, I had designed just shy of 100 block patterns. Outside of work and necessary household duties, I spent every waking moment building things with the block editor for fun. I had complete creative freedom, no need to roll out a commercial product, and no one to please but myself.

As an artist, I was living the dream. There was no pressure to do anything other than create whatever came to mind. Of course, I crashed after a while. The real world always catches up, but I built some neat patterns over the summer.

There was about a three-day stretch in mid-June where I focused solely on patterns for food bloggers and recipe sites. I distinctly remember my sister, who stayed over for the week, asking why I was on the computer instead of watching the movie on TV.

I angled my laptop in her direction and said, “Look at this. I’m building a way for food bloggers to insert recipe cards in their posts. You know, like that card you see after scrolling through 2,000+ words of someone’s life story when you’re just trying to find a recipe? Pretty cool, right?”

That may not be an exact quote, but it is close enough — this is my story, so I will tell it like I remember.

I had one of those pivotal moments during this stretch of building food-blogger patterns. If I can do this now, eventually, designers will be able to create and bundle any layout with themes, and users can insert them at the click of a button, I thought.

I was already on board the block bandwagon at that point. However, there are always those moments where things seem to come together. The lightbulb clicks on. The stars align. Whatever you want to call it.

Unfortunately, only a few patterns from the Summer of ’21 have seen anything beyond a folder on some obscure GitHub repository. For today’s entry into the Building with Blocks series, I pulled one out to share. It also provided an opportunity to rebuild it from scratch with newer block design tools.

Building a Recipe Card

For this Building with Blocks tutorial, I will walk you through each step for creating a simple recipe card. I recommend activating the Twenty Twenty-Two theme for the same results. However, I intentionally only used black and white for the text, background, and border colors so that it transfers across as many themes as possible.

When finished, your recipe card should look similar to the following:

While I encourage trying out each step for yourself, feel free to copy the pattern HTML from Gist and paste it directly into the editor.

The final step of this walkthrough requires the Social Sharing Block plugin by Nick Diego. If you prefer to stick with the core WordPress blocks, you can omit the last section.

Step 1: Card Group

Inserting Group block with border.

Let us kick this walkthrough off with something simple. There is no need to complicate matters this early.

Open a new post or page in your WordPress admin and add a Group block. In the block options panel on the right, look for the “Dimensions” section and set the “Block spacing” option to 0. This is necessary to get the card design we are after. Then, add a border of your choosing.

Note: you can add a background color for the entire card during this step. However, if you do, WordPress will add some default padding. So, you will also need to set the “Padding” option to 0.

Step 2: Card Image Header

Inserting Image block for card header.

This is the first moment where you can really make a decision about your card. The two most obvious choices for a recipe card image are the Image and Cover blocks. I chose an Image and placed it into the Group block from Step #1.

The veggie pizza image is by Jennifer Bourn and is available in the WordPress Photo directory.

If you decide to add a Cover block, you can add the recipe title and description from Step #4 inside of it.

Step 3: Card Content Group

Inserting Group block with padding after Image block.

Let us continue keeping things simple for now. We need to group the “contents” of the recipe card together. Again, add a new Group block.

The only change you need for this block is to add some space around it. In the block options panel in the sidebar, set the “Padding” option to 2rem or your preferred value.

Step 4: Card Title and Description

Inserting Heading and Paragraph blocks.

Inside the Group block from Step #3, insert a Heading block. Use this for the title of your dish. Then, insert a Paragraph immediately after for a description.

This is more of a free-form step, so go crazy with as much or as little detail as you want to add.

Step 5: Card Meta

Inserting Row block for recipe meta.

Thus far, everything should have been relatively straightforward. The previous four steps did not do anything complicated with the layout. This about to change.

You need to create a four-column section showing cooking times and other recipe metadata for this step. The best solution in WordPress for this is the Row block. If you want, you can try it with Columns. Both experiences can feel a bit janky in small spaces.

Add a new Row block inside the Group block you have been working in. I selected the “Space between items” option for the “Justification” control. This makes sure that everything is evenly spaced, but the choice is yours.

Then, click the “+” icon in the Row and add a Paragraph block inside it. For my first Paragraph block, I added the text “Prep Time” first. Then, I hit Shift + Enter on my keyboard to create a line break and added “2 Hours.” For fun, I popped in an emoji.

The trick to making the rest of this easy is to get the first Paragraph block styled just like you want, duplicate it three times, and customize the text.

Step 6: Card Ingredients and Directions

Inserting Heading + List blocks for recipe ingredients and directions.

The hard part is out of the way. I promise. This next step is as simple as adding Heading and List blocks for an Ingredients section and doing the same for a Directions section. These should still be placed in the same Group that the previous blocks were in.

For the Heading blocks, I set the level to H3. The only other settings change I made was to select the “Convert to ordered list” button in the toolbar for the list under Directions.

Step 7: Card Social Sharing

Inserting a new Group and Social Sharing icons.

You cannot have a modern recipe card without a social section, right? You will need the Social Sharing Block plugin installed for this. Or, you can stop now with your completed card.

For this section, insert a new Group after (not inside) the Group used to house the recipe content. Change the text color to white and add a dark background color. You can also tinker with the padding (I set it to 2rem) or use a Spacer block if you want extra breathing room.

For the “Like This Recipe?” text, add a Heading block with the H3 level. Then, insert the Social Sharing block below it. Feel free to play with the design. I used centered justification and enabled the “Show labels” option.

That is a wrap!

Notes and Other Thoughts

I wanted to use core WordPress blocks for everything in this recipe card. The social sharing section was the obvious roadblock, so I needed to rely on a third-party plugin.

Compared to many modern recipe cards that I have seen around the web, this solution still lacks two features:

  • Task-style checkboxes or radio inputs for crossing out ingredients or steps.
  • A “print this recipe” button.

For the task list, the Todo Block plugin by David Towoju works as a great alternative to the List block. It is lightweight and will allow site visitors to cross out items as they work through the recipe.

For a print button, I do not have a recommended solution. It would not be particularly tough to do via code, and I would love to see a theme author take this pattern idea and run with it.

by Justin Tadlock at March 18, 2022 03:28 AM under Building with Blocks

March 17, 2022

BuddyPress: BuddyPress 10.2.0 Maintenance Release

Immediately available is BuddyPress 10.2.0. This maintenance release fixes five bugs. For details on the changes, please read the 10.2.0 release notes.

Update to BuddyPress 10.2.0 today in your WordPress Dashboard, or by downloading from the WordPress.org plugin repository.

Many thanks to 10.2.0 contributors 

 niftythree, oztaser, maleemuse, Nihanthk, devanshijoshidd32 & imath.

by Mathieu Viet at March 17, 2022 10:15 PM under releases

WPTavern: Newfold Digital Acquires YITH to Expand WooCommerce Expertise

Newfold Digital, the parent company of Bluehost, Yoast, and Web.com, has acquired YITH, a WordPress plugin company with more than 100 WooCommerce extensions.

YITH’s has more than 2.3 million active installs across its suite of products. The company hosts 31 plugins on WordPress.org, many that are lite versions with commercial upgrades. YITH’s most popular product, the YITH WooCommerce Wishlist plugin, is active on more than 900,000 WooCommerce sites.

YITH founder and CEO Nando Pappalardo said he started this endeavor in 2011, in a small apartment in Southern Italy. The project later became YITH, a company that has grown to employ 46 people. All YITH employees, including its leadership team, will join Newfold Digital as part of the acquisition.

“The acquisitions of YITH and Yoast last year are a part of a long-term strategy to provide the best solutions to our WordPress customers and further our expertise,” Newfold Digital President Ed Jay said.

“As a company providing WordPress solutions, we’re always looking for opportunities to create better customer experiences to help our customers succeed. YITH will allow us to offer a world-class WooCommerce experience and make it easier for our 7 million small business customers to thrive online, similar to how Yoast helped with SEO.”

The YITH team currently maintains nearly 150 plugins, with a much smaller number available on WordPress.org. Jay said that Newfold Digital plans to work with YITH to “expand the plugins available in the directory to reach more online sellers.” 

Pappalardo confirmed that YITH will remain an independent brand, while improving its products and developing new e-commerce business solutions at Newfold Digital.

“The only difference is that now we will have the strength and drive of a partner that will allow us to break through,” Pappalardo said.

“We have hundreds more [plugins] on the idea board. Our solutions will still be available on our website and through WordPress.org. There are no plans to remove our free products from WordPress.org or change our current support for them. Existing customers will continue to be able to use YITH products as they do today. Additionally, our team will be exploring new solutions for our customers but also finding ways to introduce YITH products at the beginning of the website process.”

by Sarah Gooding at March 17, 2022 10:10 PM under woocommerce

Post Status: WordPress Podcast and Video Picks for the Week of March 14

My Podcast Picks

Videos of the Week

by David Bisset at March 17, 2022 05:25 PM under Week In Review

Matt: Decoder Interview

In a podcast interview they’ve titled How WordPress and Tumblr Are Keeping the Internet Weird (listen on audio here), I spoke with Nilay Patel on economics of abundance vs scarcity, Amitabh Bachchan, the future of Tumblr and adult content, Gutenberg, Promethean app design, web3, NFTs, and more. A nice follow-up to our conversation in 2019.

by Matt at March 17, 2022 08:31 AM under Asides

WPTavern: Gutenberg 12.8 Launches the Web Fonts API, Improves Group Nesting, and Adds Keyboard Shortcut for Links

Gutenberg 12.8 landed in the WordPress plugin directory earlier today. I have been tinkering with many of the features as they were committed over the last couple of weeks.

There are some things that I am excited about. The Web Fonts API is something I have patiently waited months for, but the ability to quickly nest Group blocks within other Groups has earned a spot in my most-loved enhancements list.

A new keyboard shortcut for auto-completing links is now available. Users should also enjoy cleaner loading states for the Media & Text and Navigation blocks.

The Web Fonts API

Testing various web fonts.

The long-awaited Web Fonts API is in the Gutenberg plugin. The road was long and bumpy getting here, but it feels good to arrive at the destination.

Theme authors can now bundle font files with their themes and register them via theme.json or the wp_register_webfonts() function.

The downside is that the implementation only supports locally-hosted fonts. In the long term, this will create large theme ZIP packages as developers begin to ship global style variations, each with its own fonts.

Ari Stathopoulos, who has put months of work into the API, also has a patch that would integrate with Google Fonts. The enhancement would solve the GDPR and related privacy issues because the font files would be downloaded from Google and loaded from the server. However, the feature seems to be a non-starter based on a comment from a lead developer in a previous discussion.

In a recent comment on my earlier coverage of the Web Fonts API, Stathopoulos said the following about his hopes for Google Fonts integration:

For better or worse I don’t expect it will be merged, but it will be enough to start a discussion and eventually find a solution to all the issues that come with the use of 3rd-party webfont providers.

It is too early to see how the lack of a Google Fonts provider will play out with theme authors. However, I expect many will build a custom provider implementation or not use the new API at all.

Grouping Groups

Putting a Group in a Group in a Group.

Have you ever created a Group block, worked on a few things, and later realized you needed to wrap the original Group within another Group? Then, did you have to work through a complicated series of tasks of copying your current blocks and pasting them into an entirely new Group?

I feel your pain.

This is no longer the agonizing process it once was. If not for the new Web Fonts API, this would be the highlight of the release.

Under the toolbar Options dropdown (vertical ellipsis), users should see a Group option when another Group is selected. Nesting them has never been easier than clicking that button.

Shortcut for Adding Inline Links

Inline link inserter.

The latest update adds an inline shortcut for links by typing [[ in a Rich Text area, such as a Paragraph block. This should be a welcome feature for users who like to insert links while writing but do not want their hands to leave the keyboard.

At first, I thought this feature was not working. The inserter did not appear as swiftly as expected, so I hit the spacebar on my keyboard, thinking I needed to trigger it somehow. However, that did not work. Essentially, it was slow for me, which may have been my computer or connection.

Typing [[ followed by some other characters seems to work the best. For example, if I am looking for the What a Wonderful Day post, I just start typing the post name: [[what a.... The link inserter appears by the time I am a few characters in.

I would love to see more of a Markdown-style auto-completer for links. Typing [some text] should trigger the link inserter. The [[ syntax feels odd at the moment.

Either way, it is not something I would use in my workflow. I tend to get all the text in place and add links during the editing phase. The editor already makes it easy for my workflow by allowing me to highlight any text and paste a URL.

Core Blocks Shown First in Global Styles

Block sorted in the global styles panel.

Gutenberg will now show the core blocks first in the global styles panel in the site editor. Those from plugins get pushed to the bottom of the pile.

This does not help much when looking for a single block among the dozens listed. Alphabetizing them would help, but it could also push oft-used blocks like Paragraph down the list. The sidebar has limited space, but I would like to see blocks grouped by their categories here.

Building Themes from the Site Editor…almost

Exporting a customized Twenty Twenty-Two theme.

The latest release brings us one step closer to creating themes entirely from the WordPress site editor. I covered this feature in more depth earlier this week.

Users could download a ZIP file of their templates and parts from the editor in earlier releases. The new export includes the theme.json, style.css, and index.php files from the theme. The theme.json file also adds user customizations from the global styles panel.

Technically, the export could be an entire theme (minus the screenshot) if it does not require a functions.php or include font files from the new API. However, that is a rare scenario.

Code Block Styling Moved to <pre> Element

Doubled padding and borders on Code block.

Before now, when using the Code block, WordPress placed custom styles on the inner <code> inline HTML element instead of the wrapping <pre> element. Things like padding, backgrounds, and borders made little sense on the child element. I had always thought it was an odd practice, and it was something I had rarely seen before outside of that specific case.

Of course, as a theme designer, I tried to fight it. However, I eventually caved because I wanted to build block themes the “right way” by using theme.json and allowing users to customize the look.

Gutenberg 12.8 corrects this issue by moving the styles to the outer <pre> element.

Note that this may be a breaking change for some themes. Authors who target .wp-block-code > code in their CSS may need to update their code before WordPress 6.0. It depends on whether it was literally meant for the inline <code> element or was a workaround for WordPress’s previous mishap.

In the interim, this is only a partial fix when themes have the should_load_separate_block_assets flag enabled, which is the default case for all block themes. When running Gutenberg alongside WordPress 5.9, the Code block styles are applied to both the <pre> and the inner <code> elements in the editor. That means that the block could have double borders, padding, and other styles that might make it look a bit off right now.

This problem is not specific to the Code block. Instead, it is a broader issue, which now has an open ticket. I only wish this ticket had been fixed first, avoiding this transition period with broken styles.

by Justin Tadlock at March 17, 2022 03:47 AM under Plugins

WPTavern: WordPress.org to Launch Pattern Creator to Expand Pattern Directory

WordPress.org’s contributors are preparing to open the doors of the Pattern Directory to public submissions. Patterns’ transformative effect on page building in the block editor has made the feature important enough to earn its own directory in July 2021. For the past nine months, it has been limited to a small, curated selection of patterns from designers in the community.

Today, Alex Shiels unveiled the new Pattern Creator that will enable public pattern submissions.

“The Pattern Creator page will allow designers and content creators to build, edit, and submit their best block patterns to the directory,” Shiels said. “Approved patterns will be added to the directory, where they will be instantly available to the authors of millions of WordPress sites.”

The Pattern Creator loads an instance of the block editor where the Publish button has been swapped out for a Submit button. Using only WordPress core blocks, pattern designers are encouraged to create something unique that other people might want to use.

Pattern designers are not permitted to upload their own images but the media library is hooked up to Openverse for access to license-free images. After putting all the elements in place for the pattern, designers can select a category, add some keywords for search, and submit the pattern to the directory.

Shiels said the Pattern Creator is expected to officially launch next week but the Meta team is inviting designers and theme developers to help test the submission process now.

With the advent of FSE (full-site editing) in WordPress 5.9, Pattern Directory contributors anticipate pattern authors may soon be submitting more site building type patterns, such as headers, footers, and query blocks. This is also important now that themes have gained the ability to register patterns from directory with theme.json. Contributors are still working on a way to categorize and show “site building” block patterns.

While the Pattern Directory currently has a few simple, artful patterns, it is lacking in variety. Ideally, users would have multiple patterns to choose from when selecting among pricing tables, social cards, contact information, and other frequently used website building blocks. Opening the directory up to public submissions should significantly expand the collection of pre-made design options available to WordPress users in the editor.

by Sarah Gooding at March 17, 2022 03:34 AM under pattern directory

March 16, 2022

Post Status: This Week at WordPress.org (March 14, 2022)

Each week we are highlighting the news from WordPress.org that you don't want to miss. If you or your company create products or services that use WordPress, we've got the news you need to know. Be sure to share this resource with your product and project managers.

News

.kt-block-spacer-_a09d8b-b0 .kt-divider{width:80%;}

Post Status

You — and your whole team can Join Post Status too!

Build your network. Learn with others. Find your next job — or your next hire. Read the Post Status newsletter. ✉ Listen to podcasts. 🎙 Follow @Post_Status. 🐦

by Courtney Robertson at March 16, 2022 06:45 PM under WordPress Core

WPTavern: #18 – Leonardo Losoviz on the Block Protocol’s Efforts To Make Blocks Work Universally

On the podcast today we have Leonardo Losoviz. He’s here today to talk about The Block Protocol.

Ever since WordPress 5.0 was released several years ago, we’ve been using blocks to create content inside of WordPress. More and more blocks have been developed to manage the creation of content, and the display of this content on the front end.

With WordPress 5.9, anyone using a block based theme has been able to manage more of their site with blocks; the header, the footer, menus and more.

It’s a real shift in the way that content and sites are created, and puts end users in control of the way that their website looks. But, the content that you create with your WordPress blocks are limited to your website.

It’s not just WordPress that is using blocks though. Go to almost any modern SaaS app and you’ll see content blocks in use. It’s such an easy process to understand. You want text, use a text block, perhaps an image, use the image block. In this way, non technical users can build up their content easily.

For obvious reasons, every app and CMS which is using blocks has built their own implementation for their own needs; the needs of their users and customers.

The Block Protocol is a new attempt to unify the way that blocks work. If you create a block on your WordPress site, that same content could be consumed and used elsewhere, seamlessly. The reverse would be true as well. If you stop to think about it, that’s a really powerful idea.

Leonardo talks to us today about the Block Protocol, what it is and how it might work.

We discuss some of the benefits that the protocol might bring, as well as some of the barriers which are undoubtedly in the way of its development and adoption. Who might benefit from using such a protocol and whether or not we can realistically expect this to be implemented in the near future.

The Block Protocol

Leonardo’s article about The Block Protocol

Leo’s website

Leo’s Twitter

Graph QL plugin website

Block Protocol Project Aims to Create Universal Block System, May Collaborate with Gutenberg

‘Standards’ XKCD cartoon

Transcript

[00:00:00] Nathan Wrigley: Welcome to the Jukebox 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 future of blocks outside of WordPress. 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.

I’d really like to hear from anyone out there who would like to come onto the podcast and talk about whatever it is that you do with WordPress. It might be that you’re a developer, a WordCamp organizer, a contributor, a designer. Honestly, if it’s about WordPress, I’m keen to hear from you and hopefully get you on the show. Head over to WP Tavern.com forward slash contact forward slash jukebox, and use the contact form there.

So on the podcast today, we have Leonardo Losoviz. He’s here to talk about the block protocol. Ever since WordPress 5.0 was released several years ago. We’ve been using blocks to create content inside of WordPress. More and more blocks have been developed to manage the creation of content, and the display of this content on the front end. With WordPress 5.9, anyone using a block-based theme is able to manage more of their site with blocks. The header, the footer, menus and more. It’s a real shift in the way that content and sites are created and puts the end user in control of the way that their website looks. But the content that you create with your WordPress blocks are limited to your website. It’s not just WordPress that’s using blocks though. Go to almost any modern SaaS app and you’ll see content blocks in use.

It’s such an easy process to understand. You want text, use a text block. Perhaps an image, well use the image block. In this way, non-technical users can build up their content easily. For obvious reasons, every app and CMS, which is using blocks has built their own implementation for their own needs. The needs of their users and their customers.

The block protocol is a new attempt to unify the way that blocks work, so that if you create a block on your WordPress site, the same content could be consumed and used elsewhere, seamlessly. The reverse would be true as well. If you stop to think about it, this is a really powerful idea.

Leonardo talks to us today about the block protocol, what is, and how it might work. We discuss some of the benefits that the protocol might bring, as well as some of the barriers which are undoubtedly in the way of its development and adoption. Who might benefit from using such a protocol, and whether or not we can realistically expect this to be implemented in the near future.

If you’re interested in finding out more, you can find all the links in the show notes. Head over to WP Tavern.com forward slash podcast. And look for episode number 18. And so without further delay, I bring you Leonardo Losoviz.

I am joined on the podcast today by Leonardo Losoviz. Hello Leonardo.

[00:04:02] Leonardo Losoviz: Hey, Nathan, how are you?

[00:04:03] Nathan Wrigley: Very good. Thank you for joining us on the podcast today. We’ll get stuck into the main content a little bit later. We’re going to be talking today about something called the block protocol. But before that a little introduction from you, Leonardo, if that’s okay, how come you’re on a WordPress podcast? What is it that draws you to WordPress? Are you a coder or a developer? What’s your background with tech?

[00:04:24] Leonardo Losoviz: I’m a developer. I’ve been working with WordPress since 2012 I believe. And, I work or I have a plugin that is a GraphQL server for WordPress and I work with that pretty much every day. And as I develop the plugin I have insights on other topics. So in particular, the whole of the block protocol is one of the things that I could connect to because of my background with GraphQL.

[00:04:50] Nathan Wrigley: Thank you very much indeed. Now I’m going to draw everybody’s attention to an article. I will link to it in the show notes. So if you’re not familiar, go to WP Tavern.com forward slash podcast, and today’s episode will be listed there.

And in that set of show notes will be links to all of the bits and pieces that we happen to mention today. And the first one is an article that you wrote on the smashing magazine website called implications of WordPress joining the block protocol. This is an idea that was raised really recently. The idea being that there is this third party idea, it’s not a WordPress idea and it’s called the block protocol.

Would you just like to very, in the broadest possible terms? Just tell us what the block protocol is.

[00:05:37] Leonardo Losoviz: All right. I will try my best.

[00:05:38] Nathan Wrigley: Thank you.

[00:05:39] Leonardo Losoviz: So the block protocol is an idea to get blocks to be interoperable between different applications. So right now, when we are using WordPress, we have the WordPress editor. We are composing a blog post with blocks and seeing the latest version of WordPress, version 5.9. We can also create layouts. We can create the full site, via what’s called a full site editor ,via blocks. Now these blocks that we’re using on WordPress, they can only be used in WordPress.

So there’s this guy, Joel Spolsky a very famous guy. He created a stack overflow., If I’m not, if I’m not wrong. Yeah. So he came up with this idea called the block protocol, and the idea will be to get the blocks in this case from WordPress, but from any other software tool and to port them into whichever other application. Be it based on WordPress or not.

So the idea is that now we can reuse blocks among applications the same way that we can reuse components like JavaScript components nowadays. So for instance if you’re a developer, and possibly you have coded a component for React, and then you have another website for another client, you can reuse the same component.

So the idea is to do something similar with blocks. That you have developed a block for your WordPress site. And the day after tomorrow you have a different application, which is based on Node JS or on a different CMS. And you want to reuse the same block that you have for your WordPress site. With the block protocol, you could do that.

[00:07:15] Nathan Wrigley: So, everybody I would imagine who’s listening to this podcast has some familiarity with the new block editor. That is to say, rewind to WordPress 5.0 in come blocks. Blocks are now the way that we create all content, and increasingly the way that we create everything around our website, especially with the 5.9 release and full site editing and so on.

But what may not be obvious to most users is that that content is, it is completely siloed within WordPress. So as you’ve just described, if you create some text or you create an image, you are really going to struggle in any meaningful way to take that and put it somewhere else. The best you can really hope for is going in and copying and putting it into your clipboard on your computer and then going and pasting it elsewhere.

But the intention, I believe of the block protocol, is to make it so that applications, no matter where they are based, there’ll be able to communicate with each other. And the picture that you put inside of Gutenberg would be available to some other piece of software that’s nothing to do with WordPress. Have I more or less summed it up there?

[00:08:22] Leonardo Losoviz: Yeah. What you have to take into account is that with the blocks, you create content. So when we’re talking about content, you can copy paste it into different application, it’s all HTML at the end of the day. It will work here. It will work there. But blocks, we’re talking about functionality. About being able to use this functionality to create the content in first place.

So think of any block that you might actually think of, say a Google map, that you can point and click on the map, and then you have the location that you want to display. So this is functionality. Like behind the functionality you will be producing HTML, which is the embedding of the Google map. But you’ll know, you need to know how to code HTML to do that. You don’t want to do that. You want to do it with a WYSIWYG. That is, visual that you click on a dynamic map. This functionality is a block, and this is the functionality that we want to port across applications. So this is more than content.

[00:09:21] Nathan Wrigley: Perfect. Thank you so much for clarifying that. Okay. The article, at the beginning, you go to, you go into explain how Joel Spolsky he has got this project called the block protocol. And again, I will link in the show notes to that so that you can go and find the website there. There’s a fairly impressive website where they explain things in pretty good detail with lots of documentation, and so on. But the reason that we’re talking, is that it would appear that fairly recently, Matt Mullenweg reached out to Joel.

I don’t know if it was that way round or Joel reaching out to Matt, but either way some conversation began, I believe it was perhaps on Twitter, where Matt was essentially saying, look, it would be really interesting if we could make all of this work with Gutenberg blocks. So in other words, why don’t we see if there’s some possibility of making your block protocol and WordPress work together. So that stuff can be egress and enter WordPress websites, to other different parts of the web.

Now, in order to understand this better, you then went on to explain how a block is actually created. You’ve got this paragraph entitled what is a block. And I think, for most users of WordPress, if you’re a developer this obviously would be different, but if you’re a casual user of WordPress or you’re a publisher or an implementer, it might be that in the block editor, you just see the block and it’s a little rectangular icon and you click the button and it comes onto the website.

Of course, there’s a lot of incredible technology going on in the background. And I just wonder if you could explain to those of us who don’t necessarily understand, what is a block what’s actually going on in the background?

[00:11:00] Leonardo Losoviz: All right. If you do not understand what a block is, that’s good. You do not need to understand. All you need to do is to be able to use it. So this is, it’s complex in the sense that, you know, the simpler something is to be used, the more difficult it is to implement. Which is the great thing about Apple products. You know, that the box is just white. But that whiteness, they have a huge team of designers to come up with.

So the block, if you’re able to use a WordPress editor, then the book already succeeded. You don’t need to understand how it works or what it is, apart from the fact that you need to use it to create content, which is in this case to write a blog post or, since the later version of WordPress to create the full, the overall site, by clicking at elements.

So then what is a block? It’s a concept. It’s a unit of something, in this case it’s code, that you interact with to create content on the site. If you’re a developer, you will be developing blocks. You can be a designer and that you will be applying styles to blocks. But at the end of the day, it’s a concept. It’s not really an implementation. It’s just this idea of what you said, you know, like a square, that you click on the square possibly, and something will happen on the website. You will have created content. So yeah, it’s one of those things that now it appears everywhere because WordPress is trying to make it widespread.

This is what Matt Mullenweg had attempted to do with his concept of reducing the different interfaces that we have to interact with. So in the past with WordPress, you could create content via short codes or with the classic editor, or with the customizer. The block replaces all of these. You had to learn only one thing, which is the block, the interface with the block, and you’re able to create your website, whatever it is that you need to create.

Maybe you want to add a video. You want to embed a picture, something very simple. But now also we have more functionality, like editing pictures and possibly even editing videos in the future. It’s taking more roles. It is like an application to create cotent.

[00:13:13] Nathan Wrigley: I guess this approach is absolutely lovely. You’ve got a nice little graphic on your website where you talk about the fact that the block is kind of a container for all sorts of child components. So you could have all sorts of different things inside your block. So a block doesn’t just have to be one simple thing. It could be a multitude of layered things which could become incredibly complicated. But the point is the block encapsulates them all, but it’s siloed within WordPress. You can’t easily get it out.

And well, maybe there are ways that you can get it out, but it’s not relatively straightforward for the likes of me. So along comes Joel Spolsky with his block protocol. And the idea is that he would like all of these different bits and pieces to be interoperable. So that a block on WordPress might be able to interact, and I believe on the article that you wrote, you mentioned a couple of things. You mentioned a SaaS product called Notion, which is a bit like a note taking app, but it’s much more complicated than that. You can do all sorts of things like add bullet lists and what have you. And the premise therefore would be well, wouldn’t it be great if we could take the content that we’ve created inside of Gutenberg, inside of WordPress, and we could just have it so that it was completely interoperable and it was transparent. You could throw it over for example, to Notion or anything else. So is that the dream here is that what Joel and his block protocol is trying to enable? To make there a standard set of ways of doing things, such that everything, everywhere can communicate with anything else?

[00:14:56] Leonardo Losoviz: Yeah, you said just right. It is a dream. It’s something that seems to be a bit out of reach. So far it’s a potential, it’s an idea, but from idea to implementation, it’s a long road. In particular, I don’t think that Notion will want to be part of this movement because there’s nothing in it for them. I believe that Notion has spent so much time and money developing their own blocks. So I don’t see why they will be sharing them with the wider world. Basically, if they give us their blocks, we can embed them in our WordPress site and recreate Notion. And this is the same with Medium. I don’t see them participating in this idea.

Now they could still use it, because a block protocol is a protocol. You can use it for your own internal use. That means that Medium or Notion they could have sub applications, or they could have their own internal team, their own development team, that they have internal applications and they could use the block protocol to reuse their own blocks within their own applications. But that will not be shared with us. We are using WordPress and I don’t expect to have Notion give the WordPress users access to their blocks.

[00:16:08] Nathan Wrigley: Yeah. So I guess where you’ve got a proprietary piece of software and their way of creating revenue I suppose, is on their, the system that they’ve built with components and blocks and the ability to have a beautiful UI and all of that. It’s unlikely in your estimation that they would wish to become part of this because it removes that unique value proposition. If it’s simple to put that data in exactly the same form elsewhere, it’s unlikely they would want to be a part of that because it upsets that business model. However, that being said all is not lost. The block protocol opens up the opportunity for lots of different scenarios, not necessarily the SaaS proprietary platforms that we mentioned, but in your piece, you go on to describing in quite a large amount of detail that the types of people, teams, and applications, and so on that you feel the block protocol would fit well with. So should we just delve into this? Who might want to use the block protocol?

[00:17:07] Leonardo Losoviz: Okay. First one is, if you do not have money, which is quite a general condition for a lot of startups, then you would want to use a block, develop protocol to use blocks that are already developed by somebody else, that you can just customize for your own use.

And this is important because coding blocks is labor intensive. You need a dedicated team and that’s money and that’s time. Think about WordPress. The WordPress editor, up to now, it took five years. You have been started five years ago. And now only now after five years we have full site editing. I believe that, that was not their idea when they launch it at the very beginning or when they were planning at the very beginning. They had never expected that it will take five years to be at this stage.

It took that time because high quality software takes time to produce. Think about the accessibility issues that it will have in at the very beginning, which were fixed, but it took time. So once again, if you want to create a website using blocks and you had to create it from scratch. Then you’re going to be spending a lot of money. Now you could alternatively, depend on the block protocol, use the blocks by WordPress and just customize them for your own application. So that’s the first one.

The second one is if you have a website that you want it to be fancy, or you want to be appealing, like Medium, like Notion, but it’s kind of falling behind because, you know, I mean, we all share the same users. So I think that’s Facebook when it came out, it was a sort of tragedy for website developers who didn’t have a lot of money to hire a team because people are expecting the same quality as Facebook. Like interactivity, dynamic functionality. Eventually they released React and we could do the same, but it takes time and it takes effort.

So then once again, you need to compete against these guys. If your website is not looking good, you will fall behind, nobody going to come to your website anymore. And nowadays the technology barrier is quite high in the sense, design is so amazing. Some websites out there are so amazing and they’re are all for free.

So if somebody developed really nice looking blocks and you don’t want to fall behind, you can just use it. So in my article, I was using Mailchimp as an example, because the Mailchimp editor for creating the newsletters, it was kind of falling behind a bit. I had noticed that they were experimenting with a new editor, which was similar to the WordPress editor.

I cannot find it anymore. It was buggy and I just couldn’t use it for long, and I revert back to their current experience. So I was wondering if Mailchimp could benefit from using the WordPress blocks. So you can see WordPress, MailChimp is a multi-billion company. Like, I don’t know, ten billion dollars recently or something like that. So they could benefit from this.

Then I believe that as a content management systems in particular, I quote Drupal, they could use it because Drupal has already expressed interest in using Gutenberg. In using the WordPress editor for creating content. So now with the block protocol, it will be easier to achieve this.

The reason why it will be easier is because WordPress right now, when you develop, the WordPress editor doesn’t need to care about anyone. They just care about themselves. So at the same time that you create the functionality, on the client side, all the dynamic stuff, the layouts and everything. There has to be a backend that can field the functionality. So we have the WordPress Rest API. So whenever you have a new block, possibly the block will need a new Rest endpoint to fetch data and interact with the server. All of that is happening on WordPress and WordPress needs to certify it. But right now WordPress only cares about WordPress.

I know WordPress can certify its own requirements. Then it’s good to go. So Drupal right now needs to be catching up with WordPress all the time. If WordPress 5.8 comes out and Drupal catches up with it, and then on WordPress 5.9, they changed the API and they’re having a bit of changes lately. Then Dupal will need to also change its own API to catch up. So it’s a lot of effort to be playing catch up all the time. But if we, if they go through the block protocol, WordPress cannot go it alone anymore. They will need to satisfy a requirement imposed by a third party. So then Drupal could say, okay, now we’re integrating into WordPress anymore, all I need to do to certify this contract with this clear guidelines, set up by the third party, and as long as I do this and WordPress does the same, then I can use WordPress blocks without having to be always running behind them. So I think it could be a good thing for Drupal in particular, because they showed interest and in general, any content management system.

And finally I said, open source projects, they could use this because I hope that will happen not really with components. So if you’re a React developer and you want to have a select dropdown, you don’t need to call it from scratch. You just go to NPM, to the registry and you can search, React dropdown or React select. And that will be like quite a few components that we can download. You can install and you can have in your application.

So a block, it’s also a component. It’s a high level component, which has a definite functionality and is trying to achieve a certain goal. So I can see that if that happened in the past with components, it will also happen in the future with blocks, that developers will create blocks, which can be used by anyone.

Think of blocks like modifying like editing video or editing images. Or whatever it is really. Games, the could actually create games and published them on blocks as blocks. And then any website will embed them on their own, their own application.

[00:23:13] Nathan Wrigley: It’s a really nice list. I can really see exactly what you’re talking about, especially the sort of time saving, labor saving aspects of this. You know, teams who have a modest budget who can just leverage things which have already been built and contributed out as open source blocks within this block protocol, it’d be really useful. And like you say, applications where the constraints of money or perhaps experience are going to cause it to be really difficult to get over the line. And if you can then just dip into a bunch of prebuilt blocks that other people have already committed, that would be brilliant. And like you say, content management systems and the one that you mentioned Drupal, who’ve gone out of their way to link with Gutenberg and make their own module so that they can use Gutenberg. Yeah. It’s really interesting.

All of that though, is about, it’s about the benefits, I guess, to people if WordPress were to adopt this. So this is about people gaining a benefit, but you go on to describe it in the opposite direction. You talk about the benefits to the WordPress project of the block protocol.

Do you want to just explain your reasoning behind that? Who, well not who, what are the benefits? What are the benefits that will be brought to WordPress as a whole by the block protocol?

[00:24:32] Leonardo Losoviz: All right. The first thing I believe is that WordPress will keep growing. And the reason for that is at WordPress right now, it’s used as a content management system. But if it also provides blocks, then developers can use WordPress on a different role, which is to create the layout, the client site for the applications. So then WordPress will become more entrenched in the toolkit for creating websites. And even though WordPress right now is really quite big, you know, Matt Mullenweg wants to be even bigger, right? Like, so I think that this is a potential outcome that will happen. That WordPress becomes the default tool to create sites. Not just content management system, as it may be the case that right now, but also to create layouts for even static sites, like HTML based sites that were created with JavaScript. Now you can use WordPress for that, which is something quite new. I mean, you’ll then think of WordPress to create static HTML sites via JavaScript. But this could be a possibility.

Then if this were to happen, the modern world of developers will come into WordPress, JavaScript developers, React, Vue, Angular. So they might want to become engaged and become contributors. So I was checking the Stack Overflow survey, and currently there are three times more JavaScript developers than PHP developers in the market. So then think about it. If you’re suddenly opening up the gates to these guys, you’re opening up to, potentially three times of many contributors as we have not right now. I mean, assuming a similar rate of contribution, of course, I mean, this is just pure guessing. But the fact that you’re opening the gates to them can only bring, either nothing happens or they come in and they contribute. So this is a potential good outcome.

Then, you could have blocks available from other parties that you can import into your WordPress site. So if you have an image editor that somebody hacked ready for their own application and they use a block protocol, you can embed it to your WordPress site.

The other aspect is that the WordPress editor or Gutenberg does not live everywhere on the WordPress site. So right now, when you go to the WP admin, you’re interacting with Gutenberg. But in the WordPress site that you’re creating as a developer, you don’t have Gutenberg there. On the client side, on the site that the visitors are accessing, there’s no Gutenberg there.

So the implication of that is that it not so easy to create nice layouts or dynamic functionality, using React or using Vue or using whatever else. So power the website that your visitors are accessing. So if we had a block protocol, we could create this on a much simpler way because now Gutenberg will be talking to the WP admin or to the blocks, via the block protocol.

And the block protocol will be a single API to create websites, whether it is a WP admin, which is already going through Gutenberg, or on the public facing site, that if you’re good with React, you can create a React client that talks to the block protocol. And the block protocol will embed the blocks that you already have provided by WordPress.

So whether you’re gaining from what you already have. The idea with this is that you have this set of blocks that they only have a limited use, which is only from within the WP admin. Now you will also make these blocks available to the site, to the public facing site. Some blocks, they make no sense because they are only for editing content in the WP admin. But think of a game, you can develop a block that is a game and you could embed it on the public facing site.

So then why not? You could. Or an audio player like, this podcast, you can create a block that is a podcast player and you embedded on the site and it’s something that is just one line of code. You just add the block and everything is already existing. So once again, either you gain or nothing happened.

And then I think that blocks could be helpful in that coming phase four Gutenberg phase three, which is still some time to go, possibly 2023. Which is going to be based on collaboration. They’ve yet to use the WordPress editor or to create Google docs like experience. To communicate with other people, to collaborate that you can edit the same document. And then you can add comments on the side and you can integrate the comments or suggestions. You leave feedback. So all of these is going to be the next phase of Gutenberg. As it is now, it can only happen in the WP admin. So if we had a block protocol, all of this could also be brought to the client side. Now, particularly because you will not need to log into the WP admin any more to collaborate.

And for instance, if I have a WordPress site, I don’t give access to random people. I just give access to my editors, or the writers, right. But what if I want to collect input from normal folks from visitors? Right now the only option that I have is comments, but that’s not integrated within the editing workflow. So if you had the block protocol, you could replicate the same workflow, editing workflow experience on the public facing site and allow visitors to give you feedback or collaboration.

And then one other aspect that I mentioned in the article is that you can simplify how you render blocks dynamically, because right now there is an issue that Gutenberg has, which is that you need to create the same logic twice, once in JavaScript to render the HTML, when you’re editing the content in the WordPress editor. And once in PHP, when you’re rendering on the client for the visitor, that’s the dynamic content. So that means that the same call has to be called twice in two different technologies. And for what I have seen in the GitHub issue that was bringing this up, not everyone is comfortable with the two languages.

You might be comfortable with JavaScript, but not with PHP, or you might become comfortable with PHP, and not with JavaScript. So this gives you the alternative to do it only in JavaScript, which is not ideal because, if you do it on PHP, then you can print it on the HTML already, which has better for SEO. But at least you have the possibility to do it.

And if that were to happen, I believe that more React developers could also be engaged with WordPress because they don’t need to work with PHP anymore. They will be basically working React all the way. And it will still be a WordPress site, which is quite interesting.

And yeah, I have one more issue, one more item to mention. Which is that you can bring in developments from outside. So as I was mentioning, I’m working with GraphQL myself and what happened with GraphQL is quite interesting, quite remarkable, that you have produced a huge ecosystem of clients and tools. Which is the couple from each other. They’re not collaborate. They’re not talking to each other,. But all of these tools, they can operate with each other because they all follow the same specification.

So one single case that is quite easy to follow is static documentation of the endpoints that you’re creating with Graph QL. I believe that the same can naturally happen if we use a block protocol, that some developer out there can create a tool to create static documentation of the blocks that then you can use to document the blocks for WordPress. And if that were the case, you don’t need to develop these in-house. So that means that the WordPress contributors, they can free up their time to do something that is specific to WordPress.

[00:32:48] Nathan Wrigley: I do like the idea of people being able to access all of the pretty amazing stuff that’s been created by the WordPress community already. That seems to be really interesting. If this were to happen, all of that good stuff that’s been made would be available elsewhere and not bound distinctly to Gutenberg, but also the idea that you mentioned and somewhat counter-intuitive to me, I wouldn’t have thought about it.

The idea of having all of these blocks on the front end and the notion that you don’t need to be logged in. I guess, all sorts of complex things that are otherwise out of bounds at the moment suddenly become possible. And so as yet, unimagined scenarios potentially will become possible in the future.

Further down in your article, you’ve got a section where you have some nice diagrams which might be worth the listeners actually going to look at. The sections called, decoupling the WordPress editor from Gutenberg. And you make the point that at the moment, the block is bound directly to Gutenberg, you know, there’s an inextricable link between them. And they need to be decoupled. And the block protocol sits firmly in the middle. Is there a lot of work that would need to be done there in your estimation? Does that feel like a huge leap that would happen anytime soon, were this all be pushed forward?

[00:34:12] Leonardo Losoviz: I think it’s going to be a bit difficult, yes. Not because it is difficult, but because the devil is in the details. You know, I believe this is something that you get completely right, or people will not use it. It has to be perfect. And until you get the level of perfectness, it can take five years, like it took with WordPress editor with full site editing, right? Now, I don’t think that they will take five years, but the idea that something so simple can still be quite difficult. I think that will be the case. Now, why do I say this? One thing is what I was saying is that WordPress right now only cares about WordPress, but once it connects with the book protocol, WordPress will need to care about the world.

So it cannot do whatever it wants to do. It doesn’t have that freedom anymore. It will be constrained by rules. And the block protocol is not set yet. It’s a work in progress actually right now is also a draft. There’s no version one dot zero. So these guys are coming up with it. And the best way that you have to come up with it, I guess if I have in a real use case example, right. So I don’t think they have anything on this sort of, because it is still the idea. So you develop an application, they use the block protocol, you will find problems. Problems that had not foreseen.

So what I want to say with this is, the idea is magnificent. The concept is great, but I believe that as they implement it, they will keep finding challenges to make it really usable for everyone in a way that it makes sense, also. You remember bootstrap, right? Like the CSS framework? When bootstrap came out, every single website that was using bootstrap looked the same way.

You can customize it. You have different colors. Fair enough, but all the websites use the same grid system of 12 columns, and you knew it was a bootstrap website. So for instance, one of the difficult things here will be, how do we use the block protocol to create blocks that allow you to create a website that is still personal, that is still unique. That doesn’t look like every other website out there. So everyone that wants to use the WordPress blocks, they don’t want to look like they’re using the WordPress blocks, possibly. They might not want to look cheap. I gave the example of Mailchimp before. Image if Mainchimp used the WordPress blocks and then Mailchimp looked like a WordPress site? It’s like, hey Mailchimp, come on. You are worth 10 billion USD, what’s going on with you? They have to have personality, and a lot of those things, they would be a bit difficult to come up with. Fine, you can have CSS on top of it, but the components that you have inside the block. So as we said before, a block is basically a component, high-level component that is loading other components.

All of that is fixed inside of the block. If you want to have a different functionality, you will need to add it inside of the block. But you cannot add so much stuff because then the block will be bloated. So then it has to be lean, but you still want to have personality that you have to have a functionality that no other website has, et cetera.

So what I want to say is let’s see, let’s see how well, it goes, but I don’t think it’s going to be easy, to be honest.

[00:37:35] Nathan Wrigley: Yeah. It feels like it might be a bit of an uphill struggle. We’d mentioned just before we pressed record on this podcast. To some extent, it brings to mind an XKCD cartoon. I will make sure to link to this in the show notes, but there’s a wonderful cartoon on XKCD where they say the situation is there are currently 14 competing standards. This is ridiculous. We need to develop a universal standard that everybody is covered by that sorts out all use cases. And then soon after that, it says, well, the actual situation after that is, there are now 15 competing standards. And I wonder if we revisited this conversation in a couple of years time, whether or not this would have taken time to move forward, because obviously, you know, the resources to create the Gutenberg project and to push it forward are very limited.

It’s like you say, it took five years to do where we’ve got two so far and I suspect, if we were to rewind to five years ago, the expectation would be that it had gotten a little bit further by then. So I guess I’m just nervous that it might end up being a bit of a dead end possibly and end up consuming a lot of time. The devil, as you say, would be in the detail.

[00:38:51] Leonardo Losoviz: I’m actually hopeful because I think the block protocol is a first attempt to make this. Now it is true, what you are saying XKCD that you have all of the different blocks implemented by different parties, but nobody’s trying to interact with any other block or any other application out there. So this is the first guy who is trying to say, let’s get all the blocks communicating. So in a way, it has credit. Okay, is it not so dire this situation yet? And I’m also quite hopeful because of what happened with Graph QL. That is a specification that, just by complying with the specification, great things may happen.

So what I want to say with this is that the block protocol, you develop it, you put it out there. And you let the community react and they might actually react in ways that you had not foreseen in advance. They can surprise you. You can actually create magic out of this, that you don’t need to coordinate different teams to work together. With the protocol you’re basically working together, and in this case, what you’re actually doing is having WordPress be used by the world outside of WordPress. And at the same time, you have WordPress being able to reach out to code that was not coded for WordPress. So the potential is so good that even though the path ahead may look broken it may look difficult, I think it’s utterly worth pursuing. It depends on the interest from the community. I don’t know if the community is interested to be honest. If you’re from WordPress, maybe there’s not so much for you to gain from this. If all you see is WordPress. If you will have WordPress now, and you only plan to use WordPress forever more. Yeah. Maybe there’s not so much for you. But, if you are open-minded of thinking, hey, unexpected things will happen from this. Then you can get really excited about this. I’m particularly excited myself.

[00:40:44] Nathan Wrigley: Good. Yeah. That’s great. One of the things you mentioned a little while ago was the fact that at the moment, WordPress is kind of inward facing, you know, the Gutenberg, the output of Gutenburg and all of the things that are inside of Gutenberg. WordPress only needs to worry about WordPress. So, that’s kind of looking inside to what the project needs to achieve for its own goals of democratizing publishing. Do you feel that the fact that if it turned outwards and integrated with the block protocol and thereby had to obey the standards that that brought with it, are there any drawbacks to that? Are there any situations you can imagine where there would be a conflict of interests or things would become more difficult or more time consuming or just not done in a way that they’re done so far? That might cause things to stall.

[00:41:31] Leonardo Losoviz: I think the biggest drawback might be that the world out there doesn’t care about this. And you’re spending your energy. So invite them, to welcome them and nobody cares and nobody comes in and so it was a lot of wasted effort. Of course. I mean, that’s always the case with everything. Like whenever you do an open source project, people may show up or they might not. And therefore for you or the same. The thing is that you have to do it because you have a real use case, that if you’re going to do it, it’s because you know that you will benefit.

If this is just a proposition that you think, okay, this looks good. Let’s try and invest a lot of energy to invite others to come in. And then the community out there, they’re like, yeah, I don’t care WordPress, and I’m happy with what I’m using right now. You know, they moved on to different technologies and you’re trying to convince others and they don’t care then. Yeah, I think that, that’s the biggest issue that if we’re going to do this, there has to be a clear cut use case for WordPress to benefit. Now I did try to say many, several use cases in there in my article, but of course, I mean I’m and dreaming of sorts. If you have an application that can reuse blocks across two different technologies, for instance, WordPress and something else and you already had that. So for instance, okay, you have a technology, a company like Stripe that they need to cater to different technologies, they cater to PHP and they cater to JavaScript, to Go and to everything else because they provide APIs to connect with them and they have an interface or they maybe have different applications powered by different technologies.

Then they will certainly benefit. So we need to be sure that when we go for, forward with this idea, that we have a real use case that we wanted and that we’re not trying to impress all the time to somebody and then they don’t get excited. They don’t come in and, it was wasted effort. I think that’s the biggest potential drawback. Conflict of interest that you mentioned.

I don’t know. I don’t think so. I haven’t thought about it, but Matt Mullenweg way was to make the open web open, open, open. Just now, he created, he bought the Openverse. Yeah. Yeah. So you might actually think conflict of interest. Yeah. I’m sure he will have conflict of interest that doesn’t stop him. As in if he has to give something for free, that will compete with some paid commercial product, or there, he will do it anyway.

I cannot think of a conflict of interest in this case, but I don’t think that that would be a reason enough to know to not do it. At least based on previous experiences.

[00:44:14] Nathan Wrigley: When we’re recording this, which is in March 2022, as far as I’m aware, there’s been no more public outpourings of whether this will go on. The debates, not debate, but the Twitter thread that was begun between Matt and Joel, I don’t think it’s been updated too much. Do you have any insight or is it exactly where we were a couple of weeks ago?

[00:44:36] Leonardo Losoviz: Yeah, I don’t have any insight. I believe that we are where we were, yeah. I wrote the article on this Smashing in part to try to start this conversation with the community, and yeah, they need to take it up.

I actually, I keep checking the block protocol, the project on the website. They are still developing it, but once again, it’s still a draft. So you can expect this to take a long time, many months still. So this might actually be slow and it ,might be a slow and steady process. I believe.

[00:45:11] Nathan Wrigley: Well, so be it, if that’s the way it needs to be. Really really interesting project. You’ll find all of the links that we mentioned in the show notes.

You also talked about the fact that it would be nice to get this conversation begun. That’s why you wrote the piece. With that in mind, is there anywhere that you make yourself available? Perhaps a Twitter account or some email address or public facing website? Is there a particular place that you would like to mention where we could find you?

[00:45:39] Leonardo Losoviz: Right. Yeah, my Twitter is my surname, which is Losoviz, and my personal website is leoloso dot com. And then my plugin is Graph QL dash API dot com. And then, yeah, basically I’m always around, and I like email, I’m not so, I’m not so big on social media myself. I don’t participate so much. You will not see me really on Twitter.

But if you send an email to me, which you can do through my personal website, I will certainly reply.

[00:46:10] Nathan Wrigley: Thank you very much Leonardo for joining us on the podcast today. I really appreciate it.

[00:46:15] Leonardo Losoviz: Okay, thanks so much, Nathan. Very, very happy that you invited me.

by Nathan Wrigley at March 16, 2022 02:00 PM under the block protocol

WPTavern: GiveWP Launches Standalone Donation Form Block for Stripe

GiveWP quietly released its new plugin, Donation Form Block for Stripe, in the WordPress directory last week. It is a standalone block that allows users to accept donations almost instantly. No complicated setup. Just install, activate, connect to Stripe, and play.

I named the GiveWP plugin my favorite of 2019. The team behind the donation plugin has consistently produced top-tier plugins and extensions, and I have long been of fan of the company’s work. It did not take me long to install and activate its latest plugin.

Donation Form Block for Stripe is essentially a lite version of GiveWP. The primary product is far more powerful and has an entire ecosystem of extensions built around it. In general, it is geared more toward charities, non-profits, and other fundraising efforts where users might need more flexibility, reporting, and integration with third-party systems. It can be overkill for someone who merely needs a simple donation form.

The one-off donation form block is better-suited for those “buy me a coffee” scenarios than well-organized fundraisers. I am glad to see GiveWP tackling this side of the donation arena.

Inserting the block is as easy as adding any other. However, before using it, users should connect their Stripe account, and the plugin provides a handy button for doing so in the block sidebar:

Connecting to Stripe.

The Stripe connection persists, so it only needs to be configured once. From that point, everything is relatively straightforward. Plug in a few details and publish.

In a couple of minutes, I had created and published a fictional fundraiser for cleaning a local basketball court.

Full donation form on the front end.

As much as I love the idea of this block, I was not entirely happy with the user experience. However, keeping in mind that this is version 1.0.x, it has a ton of potential.

GiveWP’s donation form managed to break nearly every one of my block-related cardinal sins while still managing to be an exceptional product.

Users must add an image, custom text, and donation field text via the block options sidebar. This means there is no Rich Text input, so users cannot even add simple bold and italic styles. It also feels unintuitive working from the sidebar instead of modifying the fields directly from the content canvas.

Text editing in the sidebar instead of the block in the content canvas.

A more ideal approach would have used the “inner blocks” feature to put Heading, Paragraph, and Image/Cover blocks — locked in place — into the main donation form. It could have done the same with the buttons and other form elements via custom blocks.

Ultimately, most of the problems are related to control over the design. One of the worst things block plugins can do is overrule everything the theme styles on the front end.

Do not get me wrong; blocks should ensure quality control over their own output. Their functionality should be unencumbered, and their layout should work well regardless of the theme.

However, this donation block takes its duties a step too far, using JavaScript to inject CSS into the page and doubling up on the specificity with !important. Even if a theme wanted to integrate with the block, it is next to impossible to style the donation form elements. Is there really any reason that the inputs are required to have 2px, solid, rounded borders?

And, why are my theme and user-registered colors not even available for the single color option provided?

Theme colors not selectable.

That is what frustrates me the most — not just with this block. WordPress has built this standardized system that allows communication between the platform, plugins, themes, and end-users. It lets developers build output that should always be customizable. By no means does it cover every aspect of design. However, the foundational components are in place. Colors and font sizes have been around for over three years. Extended typography and border controls are available now.

There is no way to make a wide or full-width form. The block does not support alignments, and even when wrapping a Group block, the plugin limits it to a maximum width of 650 pixels.

Some of these problems are similar to the issues I was writing about nearly two years ago with the release of GiveWP 2.7. I would have liked to have seen them addressed on an entirely new plugin release from the outset.

Despite my complaints, the plugin does the one thing it must do correctly, at least as good as anyone and better than most. It makes accepting donations as simple as inserting a block into a page, customizing a handful of fields, and hitting the publish button. If the dev team never added another enhancement, that would be all most of its users need.

by Justin Tadlock at March 16, 2022 03:15 AM under News

HeroPress: Connection Makes Credibility, Credibility Makes Opportunity – 連結產生信賴,信賴創造機會

Pull Quote: Being connected to meetups is the most valuable part of the WordPress community. 在小聚中與人建立連結,是參加小聚最有價值的地方。

這篇文章同時有繁體中文版本。」

I’m Huanyi Chuang (Eric) from Taiwan. I’ve been participating in the WordPress community for several years. Of course, this experience isn’t long compared with other people’s experiences in the open-source communities. Still, I have learned a lot by joining this fantastic group and am eager to share my experience.

Why I Started

I started joining Taipei meetup because I tried to seek solutions to my client’s website issues. For people who haven’t been to any meetups, a WordPress meetup is somewhere you can meet experienced WordPress users or developers to help you with your questions.

When I encountered an issue with the custom archive pages, a local meetup announcement showed on my WordPress dashboard. And that was my original connection with the local community, not impressive, but true.

Why I Keep Participating

In the end, the WordPress community gives me the chance to connect with people.

At first, I started by asking questions, and I found that I might find some leads in the meetups and wanted to take advantage by knowing more potential clients. So I brought my business cards to every event from then on.

That didn’t work well, as I didn’t acquire any clients from attendees.

There are plenty of reasons why that didn’t work, but the main reason is credibility and sincerity. I wanted to “get” rather than “give.” It sounds cliché, but people do feel.

So I questioned myself, “why do I even bother staying here?”

“Make some friends, you silly,” said the voice in my mind.

I started to focus more on making new friends and listening more to people. I also started to share my own experience of website management as a meetup speaker.

And then, the first WordCamp Taipei was born in 2018.

I joined as an organizer, working on session planning and speakers contact. In the organizing phase, I met new friends from different fields and foreign countries, which gave me a great sense of achievement and strengthened my passion for participating in the community.

“Start Your Meetup”

Akihiro Nishino, a famous Japanese comedy actor, states that “information only goes for those who take actions.” And that’s what I benefit from the meetups.

After the first WordCamp, the local communities seemed more visible, and more volunteers wanted to start their meetups. The organizer of the Taipei meetup asked me, “you told me that you want to start the meetup in Taoyuan. Would you like to start it with a partner?” and referred me to another organizer.

“Of course,” said I.

We started our local community in Taoyuan. The number of people was far less than Taipei’s, but we found our own pace. We create a pattern of “multiple organizers,” which diversified the pressure of a single organizer, as there are always “minimum attendees,” who are ourselves. The organizers in Taoyuan then became a group of close friends, who often have an “after meetup” after a regular one, grabbing drinks or gourmet together.

Being connected tofrom meetups is the most valuable part of the community. Having these friends makes me gather more information. We share information and benefit from others’ information, and thus we gain more trust in each other. With such credibility, we share more deeply and build deeper relations.

Summary: Why You Should Join

To be honest, the main reason you should join the WordPress community is that you can benefit from it no matter what positions you take.

As an attendee, you come and ask for answers. As a speaker, you come to validate your discovery and share your ideas to build your credibility. Finally, as an organizer, you make everyone feel safe to share and ask questions to attract more people to join and follow the community.

If you participate in the community long enough, you may also discover the humanity behind the community: people may have reasons to start joining WordPress communities. However, what keeps them participating continuously remains the same: they found the value to do so. Most people leave because their initial needs disappear; either they have found their solutions or found someone else for their issues, which is still great, as we create an environment to help them out. However, not until you keep participating, will you find more you can achieve than you expect.

Here is my own story about my experience in the WordPress community, and I hope that this may encourage more people to join this organic community.

連結產生信賴,信賴創造機會

大家好,我是 Eric。我已經持續參與了 WordPress 社群幾年的時間。當然,相較於其他人,這樣的經歷並不特別,但我希望仍然可以透過這篇分享,和大家聊聊這些年我所見所學的點點滴滴。

為什麼我開始參與小聚

起初,我因為抱著想要解決客戶網站問題的心情,參與了第一場台北小聚。在這裡跟沒有參加過小聚的人說明一下,WordPress 小聚是個你可以與有經驗的 WordPress 使用者或開發者共享交流、取得協助的場合。

當時的我遇到了一些客製化的難關,在 WordPress 的控制台首頁出現了小聚的通知,那便是我第一次參與小聚的經歷。並不戲劇化,但是我相信這也是開啟許多人參與小聚的契機。

為什麼持續參與

原因很簡單,因為小聚讓我可以與不同的人產生連結。

起初,我只是為了詢問問題,接著我開始想「說不定可以在這裡遇到潛在的客戶」,並且開始琢磨著如何接洽新的生意,因此後來幾次小聚,我都是帶著名片在身上的。

但是這樣做其實並沒有什麼效果,我並沒有因為帶了名片就取得任何新客。

這個結果可能有許多原因,不過我總結來看,認為原因不外乎兩個:信賴度與真誠。在這樣的過程中,我只想要「獲得」而非「給予」,雖然這樣講有點老掉牙,但這種幽微的氣息差異,其他人都能感受得到。

於是我回頭思考,「為什麼我還要來?」

「當然是交朋友啊,傻子。」我心中的聲音跟我說。

我開始更專注在交朋友這件事上,並花更多時間在聽別人說話,畢竟開始工作後,並沒有太多機會認識新朋友。同時,我也開始分享自己管理網站的經驗。

接著,台灣的第一場 WordCamp-WordCamp Taipei 2018 誕生了。

在這之中,我參與了議程組的籌備。在過程中,我與不同國籍的講者、不同領域的志工接觸,得到了莫大的成就感,並且透過這樣的「連結」,加深了自己持續參與社群事務的熱情。

「開始你的小聚」

日本著名的喜劇演員,西野亮廣曾提到「資訊會集中在那些採取行動的人身上」,而這句話正凸顯了我在小聚中獲益的地方。

在 WordCamp 結束後,在地社群的能見度更高了,而更多的志工也希望開始他們自己的小聚。台北小聚的阿竣問了:「你之前說想在桃園辦小聚,要不要試著跟其他人一起舉辦呢?」並引薦了當初的另一位主辦給我。

「好啊!」我說。

我們開始了在桃園的地區小聚。參加的人數上,遠遠不及台北小聚,但我們也找到了我們自己的步調。我們採取了「多主辦」的模式,分散了一個主辦可能會需要面對的壓力——至少,我們就是「參加者」。桃園小聚的主辦們後來慢慢成為關係不錯的一群朋友,我們也常常邀著每次小聚的會眾參加「續攤」的行程,一起吃吃喝喝。

從小聚中建立連結,對我來說一直都是社群最重要的部分,從這些朋友身上我也了解更多不同領域的資訊,而隨著這些資訊的交流,我們也建立了更多的信任與更緊密的連結。

結語:為什麼值得你參加

坦白說,不論你在這個社群中站在什麼樣的位置,你都能從社群得益。

身為參與者,你可以來到小聚,並尋求解答;身為講者,你可以到小聚驗證你的發現,以及透過分享你的想法,建立你的可信度;身為主辦,你可以透過營造一個安全、舒適的交流環境,吸引更多的人參與社群、分享資訊。

如果你參加了夠長的一段時間,你也可以發現在社群後面的人性:參與社團的人原因百百種,但是持續參與的原因只有一種:發現了社群的價值。這些人十分稀少,大多數的人離開,是因為一開始的問題得到解決了,或是找到了可以幫他們解決問題的人,這也都是好事,因為我們創造了幫助他們的機會。然而,只有持續參與,才能再更進一步發現,你能夠取得的成就,將會比預期的更多。

這是我自己參與 WordPress 社群的故事,希望這個故事,也能夠激起你對於參與這個社群有不一樣的想法。

by Huanyi (Eric) Chuang at March 16, 2022 12:00 AM

March 15, 2022

WPTavern: DigitalOcean Acquires CSS-Tricks

CSS-Tricks has been acquired by DigitalOcean, a cloud hosting provider popular among developers. Chris Coyier started the site in 2007 and will be working with DigitalOcean as an advisor during the transition before stepping back to focus on his other projects.

“CSS-Tricks deserves more human muscle behind it than I’ve been able to provide for it,” Coyier said. “That’s where DigitalOcean comes in. That’s the ‘why now.’ They have the resources to put behind CSS-Tricks, and the motivation to do so. I fully trust them to do it, as they’ve been successfully doing it themselves for a long time.”

DigitalOcean announced the news on Twitter with a charming CSS animation, and many developers chimed in with their gratitude for what CSS-Tricks has done for their professional skills while they were learning web development.

Over the past 15 years, CSS-Tricks has became an authoritative, inexhaustible resource for frontend developers. Navigate through the archives to the earliest days of CSS-Tricks for a blast from the past, with tutorials and code samples for things like how to create a CSS menu with rollover images and the hows and whys of clearing floats. If there was a time capsule for the web, CSS-Tricks is an important historical record that should be inside it.

“I can’t think of another website that I’ve grown up with that’s continued to be such an important part of my life,” long-time contributor Robin Rendle said, echoing the experiences of a whole generation of developers.

“Whenever I’ve been stuck on a front-end problem or whenever I hit a snag with something, there is an almost 100% chance that Chris would’ve already written about the problem and the 18 different solutions to it.”

The archives include 1,475 articles that relate to WordPress in one way or another, with many helpful tutorials like A Deep Introduction to WordPress Block Themes. Jetpack and WordPress.com have many sponsored many articles on CSS-Tricks, as the resource is so widely used in the tech industry.

What will become of CSS-Tricks in the hands of its new owner? DigitalOcean has built a well-respected technical writing team over the years and has prioritized producing developer education resources. The company and its network of contributors have authored 6,000 developer tutorials and approximately 30,000 community-generated questions and answers. They are well-equipped to continue what Coyier started.

The beloved publication will continue on as a standalone site managed by DigitalOcean and will continue publishing new frontend content.

“CSS-Tricks will broaden and complement our existing library of content, furthering DigitalOcean’s reach with both frontend and full-stack developers, and supports our community strategy, a key differentiator for DigitalOcean in the cloud computing space,” DigitalOcean CEO Yancey Spruill said.

by Sarah Gooding at March 15, 2022 11:42 PM under DigitalOcean

Post Status: Post Status Excerpt (No. 50) — The Future of Hiring is Marketing with Lance Robbins

“Culture is King. Content is the town crier.” —Lance Robbins

In this episode of Post Status Excerpt, Lance Robbins (Global Recruitment Lead at XWP) talks to David Bisset about WordPress companies struggling to find talent in the current job market. Lance believes employers need to think about how they market themselves to prospective employees. Traditional approaches to hiring won't work with the next generation of job seekers. What if open source values and ways of thinking point to solutions WordPress businesses can uniquely embrace?

Lance will be speaking at the upcoming WP Career Summit on April 8th, 2022. You can register to attend for free as a job seeker.

Why This Is Important: Finding the right talent (and being found by the right employer) is challenging in the tech space. If you are looking for the right employee (or boss) then this is worth a listen.

Every week Post Status Excerpt will brief you on important WordPress news — in about 15 minutes or less! Learn what's new in WordPress in a flash. ⚡

You can listen to past episodes of The Excerpt, browse all our podcasts, and don’t forget to subscribe on Spotify, Amazon Music, Google Podcasts, iTunes, Castro, YouTube, Stitcher, Player.fm, Pocket Casts, Simplecast, or by RSS. 🎧

🔗 Mentioned in the show:

.kt-block-spacer-_4412a5-d1 .kt-divider{width:80%;}

Just like you, we live and breathe WordPress! Cloudways is proud to sponsor Post Status. Our managed hosting for WordPress and WooCommerce takes away the cloud server-related learning curve with a seamless and scalable web hosting experience. Trusted by over 250,000 WordPress users, Cloudways gives you the freedom to choose from any of the top IaaS (infrastructure as a service) providers for ultimate performance.

.kt-block-spacer-_aa9729-c9 .kt-divider{width:80%;}

Transcript

Lance

David Bisset: Hi there. Welcome to post that a sec cert, before we get into this episode, let me tell you about one great sponsor that this week is cloud ways. They're proud to sponsor Post Status and you don't work glad to have them because they live and breathe. WordPress just like me, and probably just like you.

They have managed hosting for WordPress and WooCommerce and it takes away the cloud server related learning curve with a seamless and scalable web hosting experience. They're trusted by over 200. Thousand WordPress users. That's a lot of WordPress users CloudWave gives you freedom to choose from any of the top I a S, which stands for infrastructure as a service providers for one great ultimate performance experience.

So make sure to check them out, go to poststatus.com/cloud ways.

Lance Robbins: I was at WordCamp us and 2018. Um,

David Bisset: I was there, but I was a ghost

Lance Robbins: just, it's huge. Um, so yeah, a little bit of, a little bit of WordCamp attendance looking forward to Europe this year. Yeah. And I'm. Connected to the WordPress community through XWP. And I get to meet lots of really cool people from all over WordPress, you know, um, you know, leading the recruiting and hiring over there.

So a lot of chances to learn, learn a lot about, you know, what WordPress is doing and in community-wise like in different spots all around the globe.

David Bisset: How long have you been with, um, your ex

Lance Robbins: WP? Uh, since 2017.

David Bisset: And what's your, what's your job title?

Lance Robbins: Yeah, a recruitment lead.

David Bisset: So XWP has a recruitment department.

How many people is it? Is it just you?

Lance Robbins: Um, it's it's me and one other.

David Bisset: Yeah, that's incredible. How many people currently work at, uh, the company?

Lance Robbins: Uh, we're just right at 122. That's

David Bisset: I keep forgetting. You folks with that big,

Lance Robbins: uh, it's, it's pretty a recent development, right? We went in the last, um, what, 14 months or so from 40 to 120.

So we had a very, very busy year. Um, last, last calendar year, growing the team.

David Bisset: What do you think we're going to get into you are a speaker at the upcoming WP career summit. That's happening on April 8th. We're going to get to that in a second, but first I wanted to get, since you are into recruitment, I wanted to get your overall thoughts on what the status or what the state of hiring and WordPress is today.

Where do you think the WordPress ecosystem lies currently in terms of looking for technical?

Lance Robbins: Yeah, that's a good question. And I mean, I can speak to my observations.

David Bisset: Yes, please. That's you are, you are made for this.

Lance Robbins: Yeah. Well, I don't know how authoritative it really is. Right. But from what I, from what I see, it seems that.

Uh, particularly folks with a good bit of experience and exposure to, you know, relatively compact complex projects are in incredibly high demand, um, and are pretty well taking their pick. And at least folks that I'm talking to are typically having more than one offer coming across their desk. Um, at the same time we might be making an offer.

So it's, it's quite competitive and, um, You know, especially in terms of technology focused roles, you know, engineering, um, design, even though design is often less WordPress specific, um, uh, design UI design and UX design, uh, is incredibly high demand right now. Um, strategic product work, product owners, product managers are also in very high demand.

Um, and as far as it relates to work, press. I mean, so long as word press continues to grow and continues to be seen as a viable solution for more and more complex projects and problems to solve. Um, I don't, I don't think it's slowing down at all. At least we don't see it slowing down on our side. Yeah.

David Bisset: So you are actually, you're giving me giving a talk on the, um, at the career summit.

Your title is the future of hiring is marketing. Can you summarize the gist of. Because you're the one giving the talk.

Lance Robbins: Yeah. I'll give you some of my thoughts around why I'm going with a title like this. And what I'm thinking about here is that, um, well, a couple of things for one, um, I think about an opportunity, you know, at a company that I represent as a product.

And so I want to represent that product in the best way possible and in an accurate way. Right. So we need to have a good product and we need to, uh, really. Represented well, and talk about it and give people insight into, into what's here, because I think people will like the product, but maybe they just don't know about it yet.

And thinking

David Bisset: you're going to like working for us. You just don't know it yet.

Lance Robbins: That's right. And, you know, so much of the, of the recruitment industry is incredibly reaction driven. Right? All of a sudden we have a need, we've got to fill it right now, get out there, uh, knock on doors, you know, send those messages, do the outbound work, you know, track someone down and get them in the door.

And so long as hiring is this reactive experience. Um, it's going to be. A poor experience for candidates, it's going to be stressful and it's going to result in probably not the best fit and long-term tenure for team members. But if you can think in terms of a long-term strategic arc for a company that has a great product, um, you want to be building interest, you know, building content, building this magnet that attracts.

Um, buyers for that product. And so I think about it the same way. If, if a candidate, if a software engineer or project manager or designer, you know, is the buyer that we're trying to reach, what kind of content matters to them? You know, how are we talking about the product, the opportunity here in a way that, Hey, somebody might actually be interested, um, without us having to harass them.

On their LinkedIn.

David Bisset: So how do you, we'll get to LinkedIn in a second. I want to ask you about that, but how do you put that into a, a digital physical form? Is that in terms of blog posts or, I mean, how do you, how do you make something more welcome to the people that you're trying to attract now? You think you will track down.

Lance Robbins: Um, I think there's, uh, several different channels that we should be looking at. And this is something we'll get into more specifically when we get to the, when we get to the talk. But as you know,

David Bisset: and just, you can just give me one, this is a preview. I don't need your whole talk here.

Lance Robbins: Yeah. Right. I don't want to fill up the fill up the whole time.

David Bisset: What's your, what, what, what you think is the one that maybe gets most overlooked or the most underappreciated?

Lance Robbins: Hmm. That's a good question. Uh, the most under appreciated might be social proof.

David Bisset: What do you mean by social?

Lance Robbins: I mean, um, the times when somebody who already works at your company says, Hey, you know, this is such a great place to work.

I really love it. Um, you, whether that's on their social media or on a reviews site, something like a class door, um, or, you know, Testimonials basically. Yeah. Testimonials, right. It's super organic. And it reaches not just the network that your company reaches, but it reaches the network that these individuals reach as well.

Um, so I think that's under appreciated and I think if organizations will nurture that kind of thing, um, you know, not, uh, not a forced thing, obviously you want that to be organic and natural, but if you can nurture, um, that. Norm for how people engage.

David Bisset: Um, I don't know. I don't know normal about how people engage.

I'm still trying to figure that out myself, but I think, I think I get what you mean. Let me ask you the obvious question. How did you get recruited for XWP? How did you get in there?

Lance Robbins: Yeah, that's uh, that's um, that's what I'm still trying to figure out. What am I doing here?

David Bisset: I took a glass of wine. I woke up here and I just started working for 'em.

Lance Robbins: Yeah. So I actually have a, I started my career in forestry of all things. I worked, um, running a reforestation business, um, and it was, you know, based in the Southeastern us. Um, we had tree planting crews that were covering all over the Southeastern us. And, uh, it was, it was like intense project management.

Um, and I got connected with Arland birds, our chief people officer over there, uh, And it was probably a two year conversation. Wow. To the point where, where we first started kicking the idea around, um, to me actually joining XWP, um, in a shared, uh, people ops and project management capacity in 2017. Um, I didn't know anything about software then.

I didn't know anything about WordPress and I didn't know anything about. Uh, a remote company. I just knew that I wanted more flexibility and I was willing to work hard and learn. And I was excited about, you know, the culture that I was seeing there. And yeah, it's been, it's been a fantastic journey, you know, from there to here

David Bisset: Is two years, a typical time to have a conversation like that when the end result is coming to work.

Lance Robbins: I don't think that's typical, but I think it's good to keep in mind that the people that are saying no, not right now. Are potentially two years down the road, the people that are going to be saying, yeah, the time is right. So you need to be creating this experience. That's warm and welcoming. Um, and if you take the attitude of, if they're say no, not right now, I don't have time for that conversation.

You might be losing out on an incredible team member like me. Right.

David Bisset: You really do know how to sell.

Let me, uh, w what specific, what's specific about WordPress, in your opinion, um, versus any other technology or any other attract. Um, is there something unique about WordPress that, um, that from a community standpoint or anything that makes the people that XWP is looking for a specialty attractive versus some, maybe another language or another industry in general?

Lance Robbins: Yeah, so, like I said, coming in, in 2017, not knowing that much about WordPress or software communities, the thing that is just really stood out to me is the openness and. You're just boiling it down to the open source nature of both the technology and the community, I think is just, is really astounding coming from a world where everything is proprietary and, you know, you guard your secrets and you, you know, you do everything you can to get a one-up this, this idea of, of opening things and sharing and rooting for someone else, you know, because if they succeed, you succeed, um, it's just an incredible set of values.

That resonates with me really strongly. And, you know, seeing folks at XVP who also resonate with our values of teamwork and giving and mastery of craft, um, you know, they're, those things are just woven so much into the fabric of the WordPress community, especially in terms of people who are. Leading releases and contributing to the core technology of it.

Um, yeah, it's just a really strong match there.

David Bisset: You can literally sit down. Well, this was before COVID anyway, but hopefully coming it's coming soon. You could literally sit down at a table with somebody from a competitor and work on the same, um, for on contributor day, work on the same project together in the open source context.

Right. You know, there there's not rivals there there's just contributors. And even if it wasn't away from the table, I mean, we see people mix WordCamps all the time. Like you said, there was that openness, but with WordPress open source, but I think a lot with the WordPress openness in terms of you don't even have to be necessarily a developer, you can be, um, you know, a marketer or someone who's brand new and they have a lot of times be able to mix.

Like you may have a market or talk to a developer and it's that cross-pollination of, you know, you don't have to be communicating with developers to attract or make your company seem open and welcome. You know, it's all about networking that marketer may have a developer friend that's looking for a new home.

Eventually. You never know, you know, you plant the seed, you know, you never know where it's going to grow. Let's get back to LinkedIn for a second. I don't use LinkedIn very much. How, how important is LinkedIn? Um, for the, for the average developer may be someone who's maybe not using it or maybe someone who's currently right now.

Uh, maybe a freelancer. What's your view on that? Is it creepy? Is it, is it effective? Is it somewhere.

Lance Robbins: I know there's a lot of different opinions here on LinkedIn, but for me, I think it's a really useful tool, right? So, um, especially if somebody is a freelancer or they're, you know, trying to get their development career up and going, and there's in the early years of it, the networking opportunity there is really large.

Um, and if you want to be found by a recruiter, Then that's a great place because they'll find you yeah. That's stopped. Number one. Right. So if you don't want to be found by a recruiter, then, you know, well, don't spend your time there. Right. So it just depends on the goals of your career.

David Bisset: So, and your position though, your position you're looking for work.

What is the number? What is the, what's a good way for people who are looking for hires, how do they most effectively use LinkedIn?

Lance Robbins: Um, yeah, so LinkedIn has a lot of search functionality. So, you know, going through. You know, first at the first stop, right. Who is a WordPress developer. Right. So I can filter that down and filter things down to reasonable batch of people to, to, to look through.

Right. And then you're looking through more specific things, you know, who seems like a good fit for our organization who has particular. You have technical skillsets. Um, then you can create a batch there of people that you'd like to reach out to. And, you know, that's the, that's the outbound strategy for most recruiters when it comes to LinkedIn.

And the other side of that, which ties into, you know, the topic of my, uh, my, my talk for the career summit is that as a recruiter, um, LinkedIn is, should not only be an outbound tool. You should be whether you are the recruiter in our organization, or you're the founder of an organization. If it's a smaller organization, but you need to hire, this is where you start conversations.

You're by posting thought leadership type content, or even just engaging in comment threads the same way that you might in Twitter. Right? You didn't have to be the one to post it, but you can add valuable input to a conversation, you know, by commenting on that. Um, and I mean, it's just like any other social network where you're the more active you are, the more it will reward you, uh, in terms of growing your network.

And as you are visible, You know, somebody who has a freelance career in mind finishes their, their contract and just thinking, Hmm. You know, what's next for me? You know, if they've been seen, you know, you, David talking about the cool things you're doing at an Vajra gallery, you know, every week they're thinking, Hmm.

I wonder if there's an opportunity there and that's a place where that they might reach to you. So, um, it's a two way thing and a lot of, a lot of recruiting only sees. As this is my way to find people and send them messages. Um, but treat it as a marketing tool. Just the same.

David Bisset: So what, how does this, as we begin to wrap things up here, a little.

How does company culture fit into marketing? I've seen company culture in good context and bad contexts unintentionally a lot of times, how does that factor in, into the recruiting process? Um, part of the marketing and if so, what can recruiters, what should recruiters be careful of or which are they keeping.

Lance Robbins: Yeah, I love that. I love this question. Um, there's a phrase that I've coined and I don't know that I like the exact wording on this year, but the concept is that, you know, people often say that culture or not culture content is king. Right. So it's all about putting content out there. And I've suggested recently that culture is king content is the town crier.

David Bisset: Okay. Well, I got my quote for the episode anyway. Now it's worth it. Say that again, though, just to make sure.

Lance Robbins: So rather than content being king culture is king content is the town crier. And so if you, if you don't have a culture worth talking about this whole strategy, um, isn't going to do a lot of good because people want to come to an organization to be part of the.

Where they can be excited about fitting in. They aligned with the values. They align with the type of work that you're doing, the impact that you're trying to make as an organization. So if you don't have anything good in that department to talk about a marketing strategy around hiring, it's going to be really difficult.

If the only thing you can talk about is dollars or benefits or office perks or things like this. Right. Um, so your, your question about how does culture fit in, um, at one. Culture is the source of all the marketing content that you should be thinking about as someone who's trying to drive hiring. So recently we created at XVP a, um, a blog post that outlines in detailed transparently, what our hiring process is like, what steps you can expect.

So basically we're pulling back the curtain of like, we, we designed the process. For hiring it, it wraps around our core values and our culture and X WP. And this is what it looks like. If you get involved, this is what you can expect. Um, so rather than trying to keep that as a proprietary secret thing, uh, to create surprises for candidates, for, you know, keep our competitors from borrowing our ideas.

Um, we just sold, you know, we bought into the open source nature of the community that we serve. And said, here's everything that we do. Um, so that she, that's, that's a way for us to share, you know, what it looks like inside and then a candidate or job seeker, or maybe not even a job seeker, right. Somebody who's got a skillset and an experience that would do really well here.

They might see that and say, oh, that's interesting. And it begins to build interest towards X WP. Or whatever, you know, organization that you're creating this content for.

David Bisset: Hm. And speaking of XWP, I thought it would be appropriate since you are sharing your valuable time with me. Um, what would be, if I want, if someone came up to you and said, tell me, um, tell me in a few sentences, what?

Well, cause I'll reedit this. I thought it would be appropriate. As we close this out to give you the opportunity glance to S to share, uh, what is your brief sales pitch in terms of X WP, the company, what would you think sets it apart? And this is educational because someone outside of XWP will listen to this and go, Hmm.

I may use that. Right. Or change that, but what, what's your elevator pitch in terms of XWP?

Lance Robbins: Yeah. Okay. Well, here's my, here's my pass at that. Um, it's a few things. First of all, we have a very inclusive and flexible remote work environment. Ooh, sorry. So that resonated with somebody. I hope so in flexible, remote work environment, um, we've been doing much like many of the organizations in the WordPress community, but we've been remote since day one.

Significantly before COVID began. Um, so this is built in to the fabric, the DNA of, of how we operate as an organization. Um, uh, so that's, that's, that's, that's one element. Um, second, very interesting and challenging projects to work on. So the, the, the work that's coming your way is not likely to be the same repetitive task or something.

That's just reusing what you've learned to. Um, the, the types of projects that we're working with are usually pushing something for each of our team members. And that's something that people often give feedback on being something that's really important to them. Um, and we're a very people first culture as well.

Um, you know, we are, we invest heavily into the experience of being an employer or being a member of X to VP community. Um, Several things that we do, that a lot of organizations, you know, would like to do, but maybe they don't, but you know, what we're doing here is really saying that, um, we, we value each individual and, uh, we're willing to put the money where the mouth is in that regard.

David Bisset: Wow.

You guys have a big, I was just gonna say big mouth, but that didn't come out. Right. Well, Lance speaking of big mouse, I'm going to shut mine. I really appreciate the time you spent here today. And I'm looking forward to listening to your talk. The, again, it is the, um, the talk you're giving us the future of hiring is marketing.

You're giving it at the WP career summit, April 8th, the events happening between nine and five central time. So that's think that's 10 to six. And then everyone else will be able to pull out their calculators and figure it out for themselves. Um, and I, and it's a really, it's a really good conference too, because it's both for job seekers and hiring managers, and I've spoken to a lot of people about tips for those seeking jobs.

But I really appreciated your tips today on kind of like the other side of the coin behind the curtain, the, how do the, how do companies attract. And like you said, it's not just throwing out, you know, they should hopefully throw out salary ranges. Um, but you know, it's not just the perks in the salary ranges, but there's, there's a lot of other things that go into it as well.

And it's not just posting things on job boards. So thanks for giving me some insight on that and seeing how the other side works.

Lance Robbins: Yeah, my pleasure. Thanks so much for the invite to be here. I'm really excited about the WP career summit. Really happy that Post Status is doing something like this. Um, great, great to be a part of it.

We're looking forward to it.

by David Bisset at March 15, 2022 09:19 PM under The Excerpt

WPTavern: The Dream of Exporting WordPress Block Themes from the Site Editor Is Close to Reality

I have said it before, but it bears repeating: the next generation of WordPress theme authors will design from the site editor. It seems that Gutenberg project contributors are making good on my promise.

Earlier today, I exported a WordPress theme from the site editor.

Exporting the Twenty Twenty-Two theme.

The resulting ZIP file seemed to include all the necessary bits to upload and activate like any other theme.

This was a feature that I had been waiting on for months. It is a significant step toward the idea of not only democratizing publishing but bringing that same philosophy to website design.

I hesitated for only a moment to check the ZIP for anything that might need adjusting. I renamed the inner folder and the Theme Name header in style.css. Then, I dropped it into /wp-content/themes. The moment of truth was upon me as I tapped the Activate button from the WordPress admin.

No fatal errors. Whew. Activation was a success.

It was by no means perfect. It felt much like climbing that first hill in programming where you move from concept to a broken-but-somewhat-working implementation. It is often the roughest hill in the journey, but you just keep moving once you get to the top. The hard work will be worth it in the end.

I tested exporting Twenty Twenty-Two via Gutenberg Nightly. After checking the front end and the site editor, I noticed that some pieces were not there:

Exported Twenty Twenty-Two in the site editor.

The bundle was missing a boatload of files, but this was expected behavior. As of WordPress 5.9, users can download their templates and template parts. Two recent enhancements to the development version of the Gutenberg plugin adds more theme files to the mix:

It is almost surprising that the “TT2 Export” theme I uploaded resembled Twenty Twenty-Two at all. It had none of the PHP files for adding features like custom patterns. Even the style.css file, while included, was not loaded.

However, this shows how powerful theme.json has become. It was still a functioning theme without all the other pieces.

This is merely the first step. One of the next tickets in line, if approved, will [maybe] export the entire theme contents. Like its predecessors, it has its own kinks. Such an export presents challenges when the theme has anything beyond the standard features. This can be anything from class/function naming to autoloading to missing scripts.

The latest code from the pull request will ignore .git, vendor, and node_modules directories in exports. This could change how some creators build themes altogether, particularly as the system continues evolving.

Last week, we discussed whether 1,000s of block themes were necessary. The idea stemmed from a goal set by project co-founder Matt Mullenweg in the 2021 State of the Word, where he said that the directory would have 300 or, ideally, 3,000. This was after mentioning 5,000 earlier in the address when referencing the then-28.

Since then, WordPress has adopted a more official goal of 500 themes in the directory for 2022. That feels ambitious enough to be challenging but not impossible.

One of the easiest ways to achieve it and those loftier numbers is to hand the keys to the design kingdom over to literally everyone. Well, anyone with access to the Appearance > Editor admin screen in WordPress.

If a fully-featured theme exporter lands in WordPress this year, it could birth that next generation of creators the project needs.

Another ticket proposes that the site editor overwrite template files directly in the theme when a “developer mode” is enabled. This could help current theme developers transition to building more block themes. Exporting templates in a ZIP file is not part of the typical theme designer’s workflow. Nor is copying block code from the editor to paste into files. Having WordPress write template files to the system would cut out some of the dirty work.

I would rather have the latter feature before theme exports. However, that is the developer in me talking. The end goal should be to empower as many people as possible to design.

by Justin Tadlock at March 15, 2022 03:02 AM under Themes

March 14, 2022

WPTavern: Gutenberg Contributors Explore Expanding Background Image Block Support and Refining UI for Background Tools

Background tools in Gutenberg are currently limited to the Cover block, but contributors are working on expanding support so that any block can opt into it. Discussions about the best way to do this have been happening for the past two years and now are gaining some momentum.

“Right now it’s possible to add video backgrounds, colored overlays, etc, to the Cover block alone,” Matias Ventura said in 2019 ticket on the UI for background tools. “It would make sense to extract this and extend to other container blocks (group and columns, for example) as well as expanding the features.”

Gutenberg contributor Andrew Serong has created a draft exploratory PR for adding opt-in, server-rendered background support for blocks, which would save background image values to the block’s style attribute in a backgroundImage key. Serong created the PR as a rough, experimental approach and published a few screenshots of how the inspector controls might fit in. However, Gutenberg designers are working on a more refined design for background support in the editor.

Today, Gutenberg designers Joen Asmussen and Javier Arce published a GitHub issue with their vision for a complete reorganization of background controls that includes layer management, layer reordering, and support for filters/blend modes.

“The core idea is to group all the layers (both overlays and media layer) inside a single sidebar section called Background, abstracting the organization of the Cover Block layers on the canvas and simplifying the block sidebar,” Arce said.

These new designs intersect with the goal of expanding background support for use in other blocks beyond the Cover block. There are many other considerations that splinter out of adding background image support to blocks, which contributors have noted in the discussions. These include features like the ability to add a body background image to block themes, specify a color palette to be used for background colors, and the ability to add multiple background images.

Expanding background image support and refining the UI for background controls is still a little ways off, but the project is starting to make significant steps forward. This will be an exciting addition that will markedly expand users’ ability to customize blocks.

by Sarah Gooding at March 14, 2022 08:12 PM under background

March 12, 2022

Gutenberg Times: WordPress 6.0, Four Types of Themes, Museum of Block Art – Weekend Edition #206

Howdy,

So, we are back in Sarasota, Florida and back to our ‘two-litude’ routine in our home. After two weeks of no TV, there are countless series to catch up, too. I also took at day off to meet close friends in Naples. That’s the reason this newsletter gets out a little later than usual. Thanks for your patience.

How is your week going? Hit reply and let me know.

Yours, 💕
Birgit

PS: Together with Taco Verdonschot (Yoast) and Karmen Kendrick, I’ll be a guest on WP Builds Live 200th epsiode, hosted by Nathan Wrigley on Monday, March 14th, at 2pm UK, 10 am EDT. We’ll chat about the WordPress News from this week!

WordPress 6.0

Release coordinator, Hector Prieto, published an update for the WordPress 6.0 release planning. The Release squad is almost complete. It still needs a volunteer for the Accessibility lead slot.

Pietro also mentioned that there will be a Walkthrough for all team members and the public on April 5th, 2022: “In this event, placed closer to Beta than past demos, WordPress leads will review the features ready for the next major release together with the community in a live, moderated stream.” He wrote.

If you want to volunteer creating End User Documentation, we will have plenty of work to do. Email me or ping me in WPSlack and I get you connected with the #docs team.

Important dates:

  • April 12th, 2022 – Beta 1
  • May 3rd, 2022 – Release Candidate 1
  • May 24th, 2022 – Final release

Keep updated via the WordPress 6.0 Development Cycle page

Need a plugin .zip from Gutenberg’s main (trunk) branch?
Gutenberg Times provides daily build for testing and review.
Have you been using it? Hit reply and let me know.

GitHub all releases


The new show with Jamie Marsland WordPress Gutenberg Block News just started on YouTube. Marsland walks you through new features of the editor, the theme of the Week (this week Avant-Garde), controls to lock blocks in place, and other topics related to the Block editor. I am already a subscriber! How about you?


You probably already saw it flying by: The Museum of Block Art initiative spearheaded by Anne McCarthy and made reality by Beatriz Fialho went live this Monday. My favorite piece is Mel Choyce-Dawn’s Block Composition with Large Red Plane, Yellow, Black, Gray, and Blue. It reminds me of my early site designs inspired by Piet Mondrian, a renowned Dutch painter of the 20th century. Once you browse through the 23 art works in the Block Museum, let me know what is your favorite, even if you don’t see a real-world application for it on a site.


Justin Tadlock gave Avant-Garde the 53rd block theme by Brian Gardner a whirl and published his review: Avant-Garde Is an Experimental Block Theme With Well-Designed Patterns


Jacob Martella posted his Personal wishes for full site editing and block themes and goes quite into salient details for each item

Building Themes for Full Site Editing.

In her latest video, Anne McCarthy is Exploring types of WordPress Themes in a full site editing world. Some features of the full-site editing experience are also useful even if you don’t use or build a block theme. McCarthy takes a deep dive into the different types of themes that are now possible with WordPress

  • Classic theme: a theme built the way we’ve been used to with PHP templates, functions.php, and more.
  • Block theme: a theme made for FSE using HTML templates and theme.json, allowing one to manage all parts of their site with blocks.
  • Hybrid theme: a classic theme that adopts a feature(s) of FSE, like theme.json or the template editor.
  • Universal theme: a theme that works with both the Customizer and the Site Editor.

McCarthy goes through some examples to elaborate on these categorizations and then also provides a glimpse of the future.


Justin Tadlock picked up on two conversations in the community and put them into context for you.

WordPress Social Learning Events

Nick Diego published the recording from the WordPress Social Learning event on WordPress.TV Builder Basics – Designing with Columns, Group, and Row Blocks. Diego explored how to design layouts using the Columns, Group, and Row blocks. These blocks represent the fundamental building blocks of every WordPress website. You’ll learn the nuances of each block type and how to configure them correctly.


If you are a developer working with code, the Gutenberg Developer Hours are for you. The next event will take place March 22nd, 2022 16:00 UTC / noon ET.

With Joni Halabi, Tammie Lister and Fabian Kägy

March 15, 2022 at 9:30 am ET / 14:30 UTC
Beginner’s Guide to Full Site Editing with Sarah Snow

March 22, 2022 at 3 am ET / 8:00 UTC
Intro to Theme Blocks with Wes Theron

March 23, 2022 at 1pm ET / 18:00 UTC
Builder Basics: Exploring Block Layout, Alignment, Dimensions, and Spacing with Nick Diego

March 28, 2022 at 11 am ET / 16:00 UTC
Hello Blocks! Coding a custom block with Wes Theron and Ryan Welcher

March 29, 2022 at 3 pm ET / 20:00 UTC
Beginner’s Guide to Full Site Editing with Sarah Snow


Don’t want to miss the next Weekend Edition?

We hate spam, too and won’t give your email address to anyone except Mailchimp to send out our Weekend Edition

Thanks for subscribing.

by Birgit Pauli-Haack at March 12, 2022 11:45 PM under Weekend Edition

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

“I have so many design ideas in my head that I am about to make it my mission to singlehandedly fulfill [Matt Mullenweg’s] vision of 5,000 Full Site Editing #WordPress themes in the directory,” tweeted Brian Gardner earlier today.

Daniel Schutzsmith responded:

I’m just not seeing the need for more than one theme for FSE as long as I can override the look of it.

Would appreciate someone explaining why one theme like @frostwp COULDN’T just be the standard.

Making more themes feels like it defeats the concept of FSE altogether.

It is not the first time someone asked whether more than one block theme is necessary. In 2019, Rich Tabor proposed adding a base theme to WordPress itself, one upon which others would be built, if at all.

Even that was not the first time someone had pondered similar one-theme utopias throughout the platform’s history. Many framework-style parent themes have all made a run for it.

Let us assume for a moment that WordPress has reached a state where all themes no longer need custom PHP and CSS code. We are nowhere near that point yet, but we can imagine such a day might be possible in the relatively distant future. In this ideal world, templating, styling, theme-supported features, and plugin integration are neatly packaged into something configurable from the admin. In practice, users could control any aspect of their site’s front-end through the interface.

The problem is that someone still needs to make those customizations, and not everyone has a knack for design. One person’s ability does not automatically translate to all other users.

Perhaps a more crucial point is that not everyone wants to customize their site’s design. Some people simply want to find something that suits their style and move along.

There are alternative routes for arriving at the same destination, but themes are currently the only reliable vehicle.

Schutzsmith tweeted the following in response to Jamie Marsland, who likened the notion to asking Picasso for the canvas instead of the finished painting:

Themes and swapping out the whole thing is an old way of thinking. Sure a theme could = painting but I’m saying why can’t we just swap out the theme.json and get the same result? Why the need for themes at all when all we need to change is theme.json.

That is a future that I would not mind striving for. It is not insurmountable, but there is an uphill climb that WordPress will undoubtedly struggle with. Without a standardized CSS toolkit in place, switching theme.json files simply does not work. If WordPress tackles that problem, it takes us one step closer.

But theme.json only represents settings and styles. It says nothing about the structure of a website. Pre-configured templates are still necessary. Right now, that job sits squarely on top of the theme author’s shoulders.

If and when a well-designed user experience for full-page patterns lands in WordPress (related ticket), the template argument becomes less relevant. With such a system in place and enough variety from the pattern directory, some users might not require themes to handle this.

Starter page templates proposal.

The only worthwhile argument I have for multiple — even 1,000s of — themes is the promise they make to the user: install this thing, and you get this result.

For example, a pizzeria owner installs WordPress on their site and begins looking for a design for their online presence. This is likely someone working all day in a hot kitchen and comes home exhausted at night. However, they hop on the computer to update tomorrow’s specials or tinker with a new homepage layout for a few minutes. Everything about that experience should be catered to their use case. As an owner, chef, spouse, and parent, they need to quickly get things done and spend the rest of the night with their family.

This and 1,000s of similar scenarios are why themes are as important today as they ever were. Not everyone has the privilege of time, the skillset, or the inclination to piece their sites together.

When done well, block themes offer a controlled experience that cuts out all the cruft. They feel like they were built for an audience of one while being flexible enough for public release.

Schutzsmith later tweeted in the thread that he liked Elementor’s Kits. These are predesigned website designs that span multiple industries.

Pattern category types, which are not currently in WordPress, could evolve into that role. The Block Pattern Explorer plugin enables the feature, but themes must add support for the types to appear.

In the following screenshot, I have created a “Profile Cards” type in a theme of mine, but it could be industry-specific:

Block pattern category types.

It should be as easy as locating an industry-specific type and finding patterns for the pizzeria owner. A theme can offer that by either packaging patterns or pointing to those hosted in the directory.

I could see this evolving into more of a kit-like solution.

I disagree with Schutzsmith’s conclusion of needing only a single theme but not the questions he is asking. Our design community cannot simply say that themes should be “this one thing” because that is what they have always been. Its members need to continually ask: What is a WordPress theme?

The answer may be different to various groups of creators and users. If someone can get everything they need from the pattern directory without switching from Twenty Twenty-Two, maybe themes are irrelevant. If a creator simply likes building global style variations (theme.json files), WordPress should make it easy to use them on a wide range of sites.

However, many users will still need turnkey design solutions, and themes can be the best way to facilitate that. I do not know if that is 100, 1,000 or 5,000, but we will see how it goes.

by Justin Tadlock at March 12, 2022 03:57 AM under Themes

WPTavern: Koji Launches New Block Plugin for WordPress

Koji, a popular “link in bio” platform that provides apps to the creator economy, has launched a WordPress plugin for the block editor. The San Diego-based startup has raised $36.1M, most recently securing $20M in a funding round led by Jump Capital. Koji has attracted 150,000 users since its official launch in March 2021. It offers a way for creators on TikTok, Instagram, Twitch, and other social media platforms to monetize their followings.

“WordPress, along with the bloggers and creators it supports, is a cornerstone of the modern creator economy,” Koji CEO Dmitry Shapiro said. “This integration is a massive addition to the power and extensibility of WordPress, giving bloggers a frictionless and intuitive way to incorporate Koji mini apps in their content strategies.”

The new plugin introduces a Koji App block that gives users access to Koji’s app store and 200+ web-based mini apps. The apps offer a wide array of interactive functionality, such as e-commerce, games, video guestbook, calendar scheduling, NFT storefronts, billboards, and more.

Koji App Store in the Block Editor

Although the plugin’s description page says that it allows users to “embed any Koji app,” it’s not explicit about how that looks on the frontend. The app store launches in an overlay where you select and customize the app. In testing the plugin, I found that when when you insert the app into your WordPress site, it just shows up as a black button that says “My Koji App.” You can customize the button’s color and text, but that’s about it. The button launches the app in a lightbox-style overlay on top of the page content.

Koji App display on the frontend

The image above is a screenshot of two buttons that Koji inserted representing a Tip Jar app and an Ask Me Anything app. There is no way to differentiate the two besides editing the text.

The screenshots on the plugin’s details page show how the app is launched over the content, but it doesn’t show what users see on the page before they click the link.

I was not particularly impressed with this first version of the plugin, as it seems to misrepresent what it actually does. The plugin places links in plain black buttons that will launch an iframe of the Koji app on the page. It doesn’t make much use of the block editor’s customization features, nor does it provide any kind of visual preview of the app on the page. Even a small thumbnail preview would be far superior to a plain black button.

The plugin says that embedding these apps allows users to “sell downloadable files, sell custom video requests like shoutouts and birthday greetings, embed games that can be played by visitors, and more.” It does make it possible for users to do these things in the iframe popup, but the plugin doesn’t provide any kind of preview for these apps that would compel a visitor to click on them.

The Koji Block plugin offers a nominal integration between the Koji platform and WordPress, but misses an opportunity to display visually appealing previews within content. For an app platform with hundreds of colorful, interactive apps, the plain black button method of displaying them is uninspiring.

Koji collects fees on apps with e-commerce capabilities. If you are looking to collect donations or sell products on your WordPress site, there are many more homegrown (and visually appealing) ways to do so. This plugin is best-suited to creators who are already heavily using the Koji platform and want a simple way to link to an app from WordPress.

by Sarah Gooding at March 12, 2022 03:02 AM under Plugins

March 11, 2022

Post Status: Post Status Notes #489

An App Store for WordPress.com? Performance Team Gathers Steam. WP Notify. FSE Beta. Block is Beautiful. Security, Plugin, Dev, Acquisitions.

An App Store for WordPress — .com?

Donna Cavalier recently announced on the WordPress.com blog that “instant purchases of plugins, themes, and even services” are “coming soon” to WordPress.com. In fact, they are coming “right within” the WordPress.com dashboard.

The new App Store-like experience is described as providing an integrated and “curated selection” of the “best” plugins, “premium” themes, and services. “Professional help” is mentioned too, along with “managed” plugins and themes.

WordPress plugin and theme developers can fill out a form within the announcement to get on an “early access list.” We signed up and will share what we learn in the future.

Some of our members in Post Status Slack feel like this is indeed an “App Store for WordPress.” Notably, Matt Mullenweg is quoted in the announcement:

And of course, we will prioritize working with developers and companies who participate in Five for the Future and contribute back to the WP community.

We will see what “prioritize” means in this context in the days ahead. We'll keep an eye on the terms of use as they emerge and look at how they contrast with the fine print regarding partnerships on the WooCommerce store.

.kt-block-spacer-_bd7bed-58 .kt-divider{width:80%;}

Scott Murcott asks on the Freemius blog: Is the WooCommerce Marketplace a good platform for selling your WooCommerce extensions? — especially if you want greater control and share of revenues? It's a take from a competing marketplace but a question in every Woo or WordPress product owner's mind.

.kt-block-spacer-_a97a33-47 .kt-divider{width:80%;}

Getting Up to Speed with the Performance Team

The Performance Lab plugin has been released!

As Felix Arntz from the core Performance Team explains, this plugin is a collection of performance-related “feature projects” for WordPress core. This “beta” plugin includes several modules including WebP Uploads (which creates a WebP version for new JPEG image uploads), WebP Support (which adds a check to Site Health), Persistent Object Cache Health Check, and Audit Enqueued Assets, which adds a CSS and JS resource check to the Site Health status.

It's exciting to see progress from this new team that came together about six months ago in October 2021. If you want to learn more about the team's active progress, check out this recent episode of Post Status Excerpt with Felix Arntz and Thierry Muller.

.kt-block-spacer-_ccf749-3c .kt-divider{width:80%;}

Take Note of WP Notify

Jonathan Bossenger, fresh from appearances on a recent Post Status Comments episode and the WP Tavern Jukebox dives even deeper into WP Notify on his own site. WP Notify aims to create a new and better way to manage and deliver notifications in the WordPress admin interface:

The site user can choose which notifications they wish to receive, from which source (WordPress core, plugins, theme), and via which channel (if multiple channels are available).”

Fixing — or actually having a proper system for — Admin Notifications is really important. WP Notify is surely going to be the fix, thanks to community contributors. Check it out and pitch in if you can lend a hand. 🛠

.kt-block-spacer-_4985b6-3c .kt-divider{width:80%;}

When Will FSE Come out of Beta?

There is a discussion unfolding around the question, “When is it time to remove the beta label from Appearance > Edit for Full Site Editing in the WordPress 5.9 admin area?”

So far the popular opinion is that FSE is not ready yet, and some things should be established before it matures out of beta. We agree with that position.

.kt-block-spacer-_5992e7-ce .kt-block-spacer{height:60pxpx;}.kt-block-spacer-_5992e7-ce .kt-divider{width:80%;}

For a digest of everything happening to make and maintain WordPress this week, see This Week at WordPess.org for March 7.

.kt-block-spacer-_4affd2-0a .kt-block-spacer{height:60pxpx;}.kt-block-spacer-_4affd2-0a .kt-divider{width:80%;}

Block is Beautiful

The Museum of Block Art is a recently launched project that hopes to inspire creativity and push the limits of art with WordPress. Each piece featured on the site was constructed using the block editor.

According to its origin story, the Museum site was designed and built by Beatriz Fialho, Product Designer at Automattic. Here's why:

Anything that would enable both artful and practical inspiration for using the block editor and related tools I believe is very much needed especially for those exposed to the block editor (and now Full Site Editing) for the first time.

This is wild, beautiful work! Check out this image by Tammie Lister.

.kt-block-spacer-_5bd6c8-eb .kt-divider{width:80%;}

WordPress Security Issues Up 150% in 2021

Patchstack has released a State of WordPress Security report for 2021, and it's a doozy. Some highlights:

  • 29% of plugins with critical vulnerabilities, received no public patch.
  • 2021 saw a 150% rise in security bugs reported in the WordPress ecosystem.
  • 42% of WordPress sites ran at least one vulnerable component.
  • 99.31% of all security bugs were in components.
  • WordPress core had 4 security releases. One was critical but involved a dependency, not WordPress core itself.
.kt-block-spacer-_ea92cb-85 .kt-divider{width:80%;}

Plugin Notes and Changelogs

If you use BuddyBoss, you might be interested in a newly released integration with WP Offload Media — which also has an update for WordPress 5.9 compatibility.

.kt-block-spacer-_f43989-24 .kt-divider{width:80%;}

Brad Williams shares the history of the popular Custom Post Type UI plugin. It has over 1 million active installs today and over 10 million all-time downloads.

.kt-block-spacer-_038cc0-fe .kt-divider{width:80%;}

Joost de Valk explains how the Yoast development team built a “pretty cool” feature for Yoast SEO but had to remove it. Why? There were unintended side effects discovered just before its release.

Joost notes how this story demonstrates the importance of testing, but knowing what to test for is even more important.

The big takeaway: “You need to think about crawlers when building web functionality.”

.kt-block-spacer-_eab60e-29 .kt-divider{width:80%;}

David Bisset asks on Twitter what was the FIRST WordPress plugin you (not a client or employer) paid for? Over 100 replies came in, and it looks like Gravity Forms and Advanced Custom Fields are the most common answers. This thread is worth a read for the unexpected history and insights, like Marc Benzakein‘s tweet:

“It's the plugin that got me into WordPress in the first place. It was called phpBayPro and it allowed you to bring in a feed from eBay. To this day, best $49 I ever spent.”

.kt-block-spacer-_f62656-53 .kt-divider{width:80%;}

Acquisition News: WPExperts

After their recent acquisition of the Post SMTP plugin, WPExperts has also acquired Ben Huson‘s Password Protected plugin. It currently has over 300,000 installs. Some goals for the plugin's future development include making it “more developer-friendly.”

Sarah Gooding over at WP Tavern notes that “WPExperts founder Saad Iqbal said he plans to introduce some updates with an aim to produce a commercial version in a few months.”

The WordPress marketplace is up to a total of eight acquisitions on the year.

Congrats to WPExperts for becoming a WordPress VIP Silver Agency Partner this week too.

.kt-block-spacer-_c0ffd5-6d .kt-divider{width:80%;}

Dev Notes and Tips

Developers concerned with accessibility will want to read this note from Steve Faulkner on aria-owns which allows developers to restructure parent-child relationships in the accessibility tree.

.kt-block-spacer-_546a2c-f5 .kt-divider{width:80%;}

Sam Julien offers advice for developers who are introverts. Introverts need to network to build their careers just like everyone else.

Anyone can benefit from these tips on making others feel welcome, giving first (then giving some more), showing genuine gratitude, finding common ground with people, and following up the right way.

.kt-block-spacer-_8a8d5e-b6 .kt-divider{width:80%;}

Cloudways has recommended fifteen Full Site Editing themes. Most of them are getting 50-100 downloads a day with a few notable exceptions. Twenty Twenty-Two gets 7,500 downloads per day and is the most popular.

If you're starting down the FSE road this is a nice “best of” list to inspire you and set a standard.

.kt-block-spacer-_bff7db-6e .kt-divider{width:80%;}

by David Bisset at March 11, 2022 04:59 PM under WooCommerce

Post Status: WooCommerce Releases and a Chat with Mitch Callahan of Saucal — The Woo Snippet (March 7)

Welcome back to The WooSnippet — fresh with the latest WooCoomerce intelligence for the week of March 7, 2022.

WooCommerce 6.3 and 6.3.1

If you've been staying on top of the monthly release schedule, you know WooCommerce 6.3 dropped this week. As with a lot of the monthly releases, both WooCommerce Blocks and WooCommerce Admin had updates. In addition, two database indices were added to the product attributes lookup table.

A WooCommerce 3.5.10-6.3.1 Security Release also came out with important improvements for the PayPal gateway that was deprecated in July 2021.

Want to keep a close eye on Woo (and other major plugin) updates? Check out Chris Hardie's WP Lookout — there is even a Woo support thread history tracker there. 🚨

Advice for Newcomers to SEO and WooCommerce

On Twitter, Yoast asked for SEO tips for people starting out in the e-commerce space. There are some interesting points in the thread that emerged. Add your own insights to the mix!

Mitch Callahan's Agency Journey with Saucal

This week we had a chance to chat with Post Status member Mitch Callahan while diving into a bit of the secret sauce behind his agency, Saucal, which specializes in WooCommerce. When asked about his lofty goal of driving more Fortune 500s onto Woo, Mitch replied:

“Things tend to fall into place. WooCommerce started off really small and now we've definitely entered the mid-market, and I think it's one of the most lucrative spots for WooCommerce, and I think it's only a matter of time before we move into the really high-end enterprise market. And it's already happening.”

Lastly, over on Do the Woo we are opening things up a bit more around both podcast and post contributors. So if you do the Woo and are interested in getting on the show, check out this post about Woo BuilderBytes.

That's all for this week!

Do the Woo

Do the Woo! Get the Podcast. Subscribe to the Newsletter.

Learn from others. Grow your business. Connect with a community of like-minded developers and builders who freelance, run agencies, and build really cool products and sites in the WooCommerce ecosystem.

by Bob Dunn at March 11, 2022 02:57 PM under business

Post Status: WooCommerce Function of the Week: wc_get_held_stock_quantity

Welcome back to WooCommerce Function of the Week! This week we cover a little hidden gem within the WooCommerce plugin code: wc_get_held_stock_quantity(). As the name suggests, this function helps you get the amount of stock present in pending orders for a given product.

If your store relies on careful stock management — maybe because you handle products with a small inventory — wc_get_held_stock_quantity is very useful. As orders come in for a limited number of products, you can take special action. Maybe you need to cancel those orders, or maybe you want to entice the customers placing them to complete their purchases before the item goes out of stock.

So, as usual, let's first take a look at the function syntax and then consider a practical example of how you might use or display the returned value. Enjoy!

Function syntax

You can find the wc_get_held_stock_quantity() function under woocommerce\includes\wc-stock-functions.php:

/**
 * See how much stock is being held in pending orders.
 *
 * @since 3.5.0
 * @param WC_Product $product Product to check.
 * @param integer    $exclude_order_id Order ID to exclude.
 * @return int
 */
function wc_get_held_stock_quantity( WC_Product $product, $exclude_order_id = 0 ) {
	/**
	 * Filter: woocommerce_hold_stock_for_checkout
	 * Allows enable/disable hold stock functionality on checkout.
	 *
	 * @since 4.3.0
	 * @param bool $enabled Default to true if managing stock globally.
	 */
	if ( ! apply_filters( 'woocommerce_hold_stock_for_checkout', wc_string_to_bool( get_option( 'woocommerce_manage_stock', 'yes' ) ) ) ) {
		return 0;
	}

	return ( new \Automattic\WooCommerce\Checkout\Helpers\ReserveStock() )->get_reserved_stock( $product, $exclude_order_id );
}

As you can see, there is a filter hook (apply_filters) at the very beginning of the function that allows you to disable the hold stock functionality. But we want this to be active to understand what the function does, so let's go ahead.

As the return statement says, we need to study another function: get_reserved_stock(). Let's do a quick file search within the WooCommerce plugin files with your favorite code editor. The only search result is in woocommerce\src\Checkout\Helpers\ReserveStock.php:

/**
 * Query for any existing holds on stock for this item.
 *
 * @param \WC_Product $product Product to get reserved stock for.
 * @param integer     $exclude_order_id Optional order to exclude from the results.
 *
 * @return integer Amount of stock already reserved.
 */
public function get_reserved_stock( $product, $exclude_order_id = 0 ) {
	global $wpdb;
	if ( ! $this->is_enabled() ) {
		return 0;
	}
	// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.PreparedSQL.NotPrepared
	return (int) $wpdb->get_var( $this->get_query_for_reserved_stock( $product->get_stock_managed_by_id(), $exclude_order_id ) );
}

I have a feeling this will take a while…

For sure, it seems we're querying the WordPress database now. But in order to find out what we're looking for, we've got to do another file search for the get_query_for_reserved_stock function. Here we go; it's in woocommerce\src\Checkout\Helpers\ReserveStock.php:

/**
 * Returns query statement for getting reserved stock of a product.
 *
 * @param int     $product_id Product ID.
 * @param integer $exclude_order_id Optional order to exclude from the results.
 * @return string|void Query statement.
 */
private function get_query_for_reserved_stock( $product_id, $exclude_order_id = 0 ) {
	global $wpdb;
	$query = $wpdb->prepare(
		"
		SELECT COALESCE( SUM( stock_table.`stock_quantity` ), 0 ) FROM $wpdb->wc_reserved_stock stock_table
		LEFT JOIN $wpdb->posts posts ON stock_table.`order_id` = posts.ID
		WHERE posts.post_status IN ( 'wc-checkout-draft', 'wc-pending' )
		AND stock_table.`expires` > NOW()
		AND stock_table.`product_id` = %d
		AND stock_table.`order_id` != %d
		",
		$product_id,
		$exclude_order_id
	);

	/**
	 * Filter: woocommerce_query_for_reserved_stock
	 * Allows to filter the query for getting reserved stock of a product.
	 *
	 * @since 4.5.0
	 * @param string $query            The query for getting reserved stock of a product.
	 * @param int    $product_id       Product ID.
	 * @param int    $exclude_order_id Order to exclude from the results.
	 */
	return apply_filters( 'woocommerce_query_for_reserved_stock', $query, $product_id, $exclude_order_id );
}

Fantastic! We now have our database query. Here's what it does:

  • First, the database query looks for the wc_reserved_stock table. I didn't know that myself!
  • Next, it sums all stock quantities for order IDs that are in pending / draft status.
  • Then it adds the held stock that hasn't expired yet.
  • And then it counts where the order contains a given product ID.
  • Finally, it counts where the order is not the excluded ID.

Excellent stuff, another cool little function to know!

But don't forget! The “Hold stock” WooCommerce setting must be enabled, otherwise, there won't be any held stock to count up:

The “Hold stock” field should not be blank so that some stock can be held and give you some results for wc_get_held_stock_quantity().

Case Study

Let's say you have product ID = 123 with stock quantity = 10, and you usually give a lot of time to your users to complete their orders. Say, “Hold stock” is, for example, 1440 [1 day in minutes]).

Wouldn't it be cool if you could automatically trigger a reminder to customers with pending orders when their product is about to go out of stock?

To achieve this, you can simply get the product stock and subtract the held stock from it to calculate the “actual” stock currently available for all pending orders completed within a given day. If you reach a low threshold of, for example, two items left in stock, then an email could be triggered for customers with a custom message.

For the email trigger, I'll reuse some of the code I already wrote for my “WooCommerce: Send Email to Admin Every 3 Hours” tutorial on Business Bloomer:

/**
 * @snippet       Send Pending Order Reminder If Actual Stock Low
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

// ---- ---- ----
// A. Define a cron job interval if it doesn't exist
 
add_filter( 'cron_schedules', 'bbloomer_check_every_3_hours' );
 
function bbloomer_check_every_3_hours( $schedules ) {
    $schedules['every_three_hours'] = array(
        'interval' => 10800,
        'display'  => __( 'Every 3 hours' ),
    );
    return $schedules;
}
 
// ---- ---- ----
// B. Schedule an event unless already scheduled
 
add_action( 'wp', 'bbloomer_custom_cron_job' );
 
function bbloomer_custom_cron_job() {
   if ( ! wp_next_scheduled( 'bbloomer_send_pending_order_reminder' ) ) {
      wp_schedule_event( time(), 'every_three_hours', 'bbloomer_send_pending_order_reminder' );
   }
}
 
// ---- ---- ----
// C. Trigger email when hook runs
 
add_action( 'bbloomer_send_pending_order_reminder', 'bbloomer_generate_pending_order_reminder' );
 
// ---- ---- ----
// D. Generate email content
 
function bbloomer_generate_pending_order_reminder() {   
   $range = 180; // 3 hours in minutes
   $pending_orders = bbloomer_get_pending_orders_before_after( strtotime( '-' . absint( $end ) . ' MINUTES', current_time( 'timestamp' ) ), current_time( 'timestamp' ) );
   if ( $pending_orders ) {
      $email_subject = "Complete your order before products go out of stock!";
      foreach ( $pending_orders as $pending_order_id ) {
         $pending_order = wc_get_order( $pending_order_id );
         foreach ( $pending_order->get_items() as $item_id => $item ) {
            $product = $item->get_product();
            if ( $product && $product->managing_stock() && ( $product->get_stock_quantity() - wc_get_held_stock_quantity( $product ) ) < 3 ) { 
               $email_content = "Hello " . $pending_order->get_billing_first_name() . ", your pending order #" . $pending_order_id . " contains a product that may soon run out of stock. This is a gentle reminder so that you do not miss on the opportunity to buy now while stock lasts.";
               wp_mail( $pending_order->get_billing_email(), $email_subject, $email_content );
            }
         }
      }
   }
}
 
// ---- ---- ----
// E. Query database for pending orders between two timestamps
 
function bbloomer_get_pending_orders_before_after( $date_one, $date_two ) {
   global $wpdb;
   $pending_orders = $wpdb->get_col(
      $wpdb->prepare(
         "SELECT posts.ID
         FROM {$wpdb->prefix}posts AS posts
         WHERE posts.post_type = 'shop_order'
         AND posts.post_status = 'wc-pending'
         AND posts.post_modified >= '%s'
         AND posts.post_modified <= '%s'",
         date( 'Y/m/d H:i:s', absint( $date_one ) ),
         date( 'Y/m/d H:i:s', absint( $date_two ) )
      )
   );
   return $pending_orders;
}

This week I've been super busy so I'll leave the testing to you. It will be nice to get your feedback in the comments!

Happy Woo!

Do the Woo

Do the Woo! Get the Podcast. Subscribe to the Newsletter.

Learn from others. Grow your business. Connect with a community of like-minded developers and builders who freelance, run agencies, and build really cool products and sites in the WooCommerce ecosystem.

by Rodolfo Melogli at March 11, 2022 02:30 PM under wc_get_held_stock_quantity

WPTavern: Patchstack Whitepaper: WordPress Ecosystem Records 150% Increase in Security Vulnerabilities in 2021

Patchstack has published its State of WordPress Security whitepaper with a summary of threats to the WordPress ecosystem recorded in 2021. The whitepaper aggregates data from multiple sources, including the Patchstack Vulnerability Database, the Patchstack Alliance (the company’s bug bounty platform), and publicy reported CVEs from other sources.

In 2021, Patchstack recorded nearly 1,500 vulnerabilities, a 150% increase as compared to 2020, which recorded ~600. Patchstack found that the majority of these come from the WordPress.org directory:

The WordPress.org repository leads the way as the primary source for WordPress plugins and themes. Vulnerabilities in these components represented 91.79% of vulnerabilities added to the Patchstack database.

The remaining 8.21% of the reported vulnerabilities in 2021 were reported in premium or paid versions of the WordPress plugins or themes that are sold through other marketplaces like Envato, ThemeForest, Code Canyon, or made available for direct download only.

WordPress core shipped four security releases, and only one included a patch for a critical vulnerability. This particular vulnerability was not in WordPress itself but rather in one of its bundled open source libraries, the PHPMailer library.

Patchstack estimates that 99.31% of all security bugs from 2021 were in components – WordPress plugins and themes. Themes had the most critical vulnerabilities, logging 55 this year. Patchstack found that 12.4% of vulnerabilities reported in themes had a critical CVSS score of 9.0-10.0. Arbitrary file upload vulnerabilities were the most common.

Plugins had a total of 35 critical security issues. This is fewer vulnerabilities compared to themes, but 29% of these received no public patch.

“The most surprising finding was really also the most unfortunate truth,” Patchstack Security Advocate Robert Rowley said. “I was not expecting to see so many plugins with critical vulnerabilities in them not receive patches.

“Some of those vulnerabilities required no authentication to perform, and  have publicly available proof of concepts (exploit code) made widely available online. It is probably already too late for the site owners who did not get a notice that their websites were vulnerable.”

Patchstack surveyed 109 WordPress site owners and found that 28% of respondents had zero budget for security, 27% budgeted $1-3/month, and just 7% budget ~$50/month. Agencies were more likely to allocate monthly costs to security than individual site owners.

Conversely, results from these same respondents showed$613 as the average cost of malware removal. Post-compromise cleanup prices reported ranged from $50 – $4,800.

Rowley sees the significant increase in security vulnerabilities found in 2021 as evidence of more engaged security professionals, not a sign of the WordPress ecosystem becoming less secure.

“Most likely this is due to more security bugs being reported (more vulnerable code being found, because more people are looking),” Rowley said. “Patchstack runs a bug bounty program which pays security researchers for the bugs they report in the WordPress ecosystem, which incentives security researchers (and even developers familiar with WordPress) to look for more security bugs.”

Overall, Patchstack’s findings this year show that WordPress core is very secure and the vast majority of vulnerabilities are found in themes and plugins. Users should monitor their extensions and periodically check to see if they have been abandoned, as not all vulnerable software is guaranteed to get patched. Check out the full security whitepaper for more details on the types of vulnerabilities most commonly found in 2021.

by Sarah Gooding at March 11, 2022 04:08 AM under security

WPTavern: Should WordPress 6.0 Remove the “Beta” Label From the Site Editor?

The short answer: probably not.

The longer answer…

It will depend on many things going right over the next couple of months. WordPress 6.0 is scheduled for launch on May 24, 2022. The 6.0 Beta 1 is on April 12. Even with a slightly extended cycle, major updates come fast.

Anne McCarthy opened a discussion in the Gutenberg repository on Tuesday. She posted:

Across the community, I’m getting questions around when the beta label for the site editor will be removed. While not explicitly stated in the 6.0 post, I know it’s been discussed around having it removed for 6.0 as this was meant to be a temporary label to communicate that the site editor is still in early stages.

In order to track this concern and have a place to point people, I’m opening this issue so, when the time comes, a decision can be made and folks can be notified.

In response, Courtney Robertson said she would like to see a unified effort on creating support material across LearnWP, HelpHub, and DevHub. “What would the community’s expectation be for supporting resources related to beta, and what capacity do teams have to reach that goal?” she asked.

In a separate reply, she posed additional questions:

  • What does the 3rd party ecosystem struggle with today for adopting FSE?
  • What impact with this have for end site builders using products (plugins) that want to but can’t yet work with Site Editor because features are missing (custom post types, templates, shortcodes) and the following impact to their clients?
  • What areas feel incomplete yet in Site Editor?

“Before removing the label, we need feedback about the expectations when there is no beta label,” she wrote.

Alex Stine noted accessibility issues as a blocker for removing the beta label. Dave Ryan added items that theme authors were still hard-coding because they are unsupported in the editor.

Avoiding the WordPress 5.0 Gutenberg debacle should be a priority. The block editor was arguably the worst feature rollout in the platform’s history, one that has left a fractured community that is, over three years later, still picking up some of the pieces of itself.

The problem was more about communication than anything. It was not that the block editor was in and of itself a poor product. It just felt very much like beta software that was switched on overnight — the platform’s users its guinea pigs. Plus, the lack of a built-in method of staying on the classic editor without installing a plugin made for a rough transition.

Aurooba Ahmed noted a similar risk with removing the beta label early:

[Josepha Haden Chomphosy] talked about the impact and experience of social proof not being on Gutenberg’s side early on in the project. I think a lot of that had to do with how things were presented and a bunch of PR issues. Removing the beta label from the Site Editor could be just as problematic.

Some FSE features like block-based widgets and nav menus have also had problematic rollouts. Developers and end-users have often needed to scramble for solutions without an appropriate transition period before switching the features on when ready.

However, the site editor and global styles have been entirely opt-in FSE features thus far. That is not changing anytime soon. Users must explicitly activate a block theme to access them.

This has made for a far gentler transition, allowing early adopters to test the waters before the rest of the world. And, make no mistake, the site editor and block-based themes fundamentally change how WordPress’s theme and customization system has worked for years.

We will be lucky if even 100 block themes are in the official directory when WordPress 6.0 launches. Today, there are 53, a fraction of the 1,000s of themes in total.

There is little harm that could be done by keeping the site editor in beta for a while longer. When something breaks, it feels better knowing it is an experimental feature.

Of course, it must come to an end one day as we peel back the label and let the site editor shine in its own light. It cannot stay in beta endlessly, and “6.0” is a nice, round, feel-good number. Despite WordPress marching to the beat of its own versioning drum, it does not erase how much those “x.0” releases feel like they should be revolutionary in some way. Putting a stamp of approval on the site editor would be a highlight, but it would likely be premature.

WordPress 6.1 may be a more opportune moment. There is no pressing need to rush support material, bypass accessibility issues, or not let features mature for a cycle or two.

by Justin Tadlock at March 11, 2022 04:00 AM under WordPress

Follow our RSS feed: 

WordPress Planet

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

Official Blog

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

Subscriptions

Last updated:

March 20, 2022 06:30 PM
All times are UTC.