Anyone interested in taking over this “planet”?


When I started this little project in 2005 (wow?! already?), things were obviously very different, RSS aggregators were a thing, Twitter and Facebook were not, and I felt the need for something more open than the official news feed shown at that time in every WordPress Dashboard.

Now, I’m not so sure 🙂 This thing runs fine on autopilot with practically no maintenance from me, but on the other hand I’m not doing anything to try and make it better, if possible.

So, anyone interested? Ideally I’d like to hand this over to someone already established in the community, for obvious reasons. If you’re interested or just want to discuss it, please shoot me an email (ozh at ozh dot org)

WordPress Designers Explore Proposal to Simplify WP Admin Navigation

The admin can be intimidating to navigate if you’re just getting started with WordPress. After installing a few plugins, top-level menu items begin to pile on. This adds even more complexity to grapple with in a narrow space with long lists of items hidden behind flyout menus that make managing WordPress on mobile a frustrating experience.

The admin dashboard design hasn’t changed significantly since the MP6 plugin was merged into WordPress 3.8 in 2013. This project brought updated typography and improved contrast to the admin but didn’t tackle the increasing complexity of admin navigation.

A new proposal on trac aims to simplify the left sidebar navigation to improve accessibility, usability, and scalability by replacing the flyouts with accordion menus. Designer Dave Martin shared some mockups originally created by Joen Asmussen, and describes them as “a very early, exploratory concept.”

Martin listed several reasons for exploring a new design, including the inaccessibility of the hover/flyout menus and how poorly they scale on mobile interfaces. He also cited the abundance of top-level menu items that are rarely used, which he said contributes to the cognitive weight of admin navigation by still being permanently visible.

The major changes included in this proposal include the following:

  • Flyout menus are replaced with accordion behavior. This scales all the way from mobile to desktop, and affords better accessibility.
  • Menu is made 80px wider (240px vs. 160), affording a 14px minimum font size for all items, perhaps bigger icons in the future, more relaxed spacing, enhancing usability and accessibility.
  • Sidebar is grouped in major sections, “Site”, “Design”, “Tools” and “Manage”.
  • “Updates” are moved to a subsection of “Manage”, making Home a single item.
  • Items related to content on your site (such as “Posts” and “Pages”) are moved under “Site”.
  • Clicking major menu items just opens or closes the accordion, as opposed to go directly to the first subsection. This unifies the mobile and desktop behavior. You can keep the accordion open if you use it all the time (each click will save state, so you’ll see the same open/closed sections upon page refresh).
  • All “Settings” subsections are moved under “Manage”, along with “Plugins & Blocks” and “Users”.
  • Separators group major categories, like “Site” and “Design” together
  • Dashboard is renamed “Home”, because all of WordPress is a Dashboard, and “Home” is where you can get an overview at a glance.

WordPress core committer John Blackbourn commented on the proposal, recommending further exploration of what the menu could look like for different user roles and whether that might affect the appearance, grouping, and behavior of the menu items. For example, roles with more limited publishing capabilities, such as a subscriber, would see very few menu items.

There’s also a bit of discussion regarding the use of the word ‘Site’ where some might better understand that section as ‘Content.’ As this is just an initial mockup, nothing is set in stone and many iterations will likely follow.

Even with many changes expected as the concept evolves, the proposed design significantly reduces cognitive load, especially for new users who may not be as familiar with the admin menu. An updated admin navigation design might lend itself well to being tested as a feature plugin. As with any major change in WordPress, there are many considerations for how it will affect plugin developers. Major visual overhauls like this are exciting, but it takes time to get it right. This proposal already shows a lot of promise but needs more feedback and participation from diverse user groups across the WordPress community.

Theme news, tutorials, ACF, and WordPress update

Today’s roundup focuses on some theme related news items, as well as some tutorials and a lot of ACF goodies. But, don’t worry, I’m also bringing you up to speed on WordPress 5.2 and the new Gutenberg update. Would be weird if I didn’t, right? 😏

Genesis 2.10

The Genesis framework saw a nice update to version 2.10 last week. The most important features that were added in this update were WP-CLI commands, improved navigation, increased visibility into Genesis plugins, and easier access to the settings and features. Check out the 2.10 release post for more in-depth information about this release.

Disable Genesis schema markup

If you’ve been using Genesis because of its rich schema markup alongside our Yoast SEO plugin, you may now want to disable Genesis’ schema markup altogether so Yoast SEO can provide everything instead (see the Yoast SEO 11.0 update post for more information about why). To disable Genesis schema, Bill Erickson released a small but effective plugin that does exactly this for you. You can learn all about it in Bill’s post.

Exhale with Justin Tadlock

Justin Tadlock is probably the one I learned from the most about building themes. He’s been around since 2008 and has always produced solid content in the shape of tutorials. Justin recently released a new theme called Exhale which he is using to base a couple of child themes on.

What I really like about Justin’s approach is that he immediately teaches you what he has learned through his blog posts. He has already posted a couple of tutorials on ThemeHybrid’s blog that show you what you can do with a theme that’s making good use of Gutenberg. For instance, how to create an app sales landing page, a cafe landing page, or a business landing page.

Justin’s looking for inspiration to create more of these kinds of landing pages, so if you have an idea, go and respond to his tweet:

ACF and flexible content

Speaking of landing pages. Bill Erickson, yes, the same guy I mentioned earlier in this post, wrote a nice tutorial on how to use ACF to create more flexible landing pages when Gutenberg blocks just don’t cut it.

Bill does a great job explaining in great detail how to approach this. I’m a big fan of Bill’s tutorials as he (just like Justin Tadlock) really takes the time to explain everything step by step.

But there are even more options with ACF.

ACF Blocks

ACF makes it super easy for you to create blocks, and if you prefer not to touch code, you’re in luck. ACF just released ACF Blocks, which is a collection of Gutenberg Blocks. It helps you speed up website creation in the Gutenberg editor. ACF Blocks is built on-top of Advanced Custom Fields Pro. Do note, that this plugin requires the ACF Pro version of the ACF plugin to function correctly.

WordPress 5.2 RC2

If everything goes according to plan, the WordPress Core Team will release WordPress 5.2 this week. They’ve already released the second Release Candidate, so if there are no more blockers, it will be released this week.

Gutenberg 5.6

The work on improving the Gutenberg editor is continuing relentlessly. We saw the release of version 5.6 last week. With the most important updates being a number of improvements, including to the button block focus states, theming, and block mover controls with full- and wide-aligned blocks. Per usual, you can learn more about it here.

The post Theme news, tutorials, ACF, and WordPress update appeared first on Yoast.


Colorful, striped, curled ribbon.

Every year I tell myself that I’m going to blog my birthday. And, every May 1st, with the exception of a bacon omelet photo I posted in 2013, I fail.

This year, I was determined.

The fates were absolutely working against me today. I was coding a new feature for my Exhale WordPress theme that I thought would be finished by lunch. But, I missed that mark by a few hours.

Still, I was determined to sit down and write this post. And, here we are.

It’s been a solid year for me so far. Last month, I released the Exhale theme, which has dominated much of my working hours. I rebranded and refocused Theme Hybrid. These were some of my big work-related goals for the year, and I’m happy to have them done within the first half of the year.

As for my personal life…

2019 goal updates

Since my birthday is in May, I thought it’d make for a good time to look over and evaluate some of the goals I set for the year.


I’m woefully behind on my writing goals thus far. I done well in January and February with tinkering on a couple of novel ideas. But, I haven’t found a good balance between other creative pursuits and writing. I need to do better.


I’m doing great with my reading goals. I’ve read 12 of 40 books for my 2019 reading challenge on Goodreads, and I’m working on #13. I’d probably be a bit further ahead, but most of what I’ve been reading has been epic fantasy. I’ll still be on track for the year once I pick up a few shorter works to balance things out.

Some reading stats thus far (Goodreads stats):

  • 12 books
  • 6,897 pages
  • Shortest book: 192 pages
  • Longest book: 1,178 pages
  • Average length: 582 pages

Watch less TV

I’ve definitely cut back in this area. Just keeping up with my reading has made this a reality. I’ve also saved over $100 this year by canceling both Netflix and YouTube Premium.

One thing I done was cut out a few shows that I began watching in the fall. I hate quitting things once I’ve started, but some series were just not that interesting to me anymore.


I had a good stretch of tidying earlier in the year. I accomplished many of the big tasks like organizing clothes, books, and movies. I still have a lot of miscellaneous areas to cover.

I got a little behind recently because my grandmother wanted her kitchen and dining rooms tidied. It took us four Sunday afternoons to do it (time I would’ve been tidying my own stuff). But, I’m glad I got a chance to help her with it because it kick-started her journey into other areas of her house.

Bullet journaling

This has been hit or miss for me. I enjoy the process, and it definitely helps me organize work/life better…when I do it. I still haven’t built up a good habit with this.


I’m nearly perfectly on track here. I cut way back this year so that I could focus more on work and other pursuits. My primary crop of potatoes is looking great. I should harvest them within the next month or so.

Outside of potatoes, I just have a few beds with a mix of veggies.


I feel like I’ve been doing better here. I’ve saved back a small bit. My big goal was not to buy a lot of new stuff.

The two “big” purchases I’ve made have been a couple of new sheet sets for the bed. It’s been years since I got new sheets, and dropping a few extra dollars for a couple of quality sets was well worth it.

I finally maxed out my $100 Amazon gift card from Christmas. I only bought books with it, so that’s helped me save a few of my own dollars.

Contextual customize partials

Animated preview of selectively refreshing the featured image size from the WordPress customizer.

While building the Exhale theme, my latest WordPress project, I wanted to build a cool feature into the customizer. The idea was that the user would have an option to select their preferred featured image size. When selecting a size, their featured images would be refreshed in the preview panel without fully refreshing the entire preview.

That sounds pretty easy to do in theory. I’ve used the selective refresh feature many times since it became a core feature. In practice, what I found was there was no existing documentation on how to do this contextually.

By context I mean that I needed to figure out a way to pass around the post ID to refresh the featured image for each post shown in the preview panel.

After a lot of digging through undocumented code, I managed to stumble upon the data-customize-partial-placement-context HTML attribute, which is what needs to be set to get this to work.

In this tutorial, I’m going to share how I built this feature into my theme. However, you can use the method applied here for other features that need a context.

Building a class for output

The first thing I wanted to do is build a wrapper for the core get_the_post_thumbnail() function so that I’d have some consistency with the output of the image. So, I created a FeaturedImage class to handle the job. This primarily serves as a quick template tag within my theme templates, and it allows me to return the image in the customizer partial.

Another benefit is that I could control the attributes. Remember that data-customize-partial-placement-context attribute I mentioned? We can check if we’re in the customizer preview and add that if so. We only need to pass a post_id parameter back, but you can pass an entire array of parameters.

Here’s what my featured image class looks like:

namespace JTTemplate;

class FeaturedImage {

	public static function display( $post = null ) {
		return static::render( $post );

	public static function render( $post = null ) {

		$post = get_post( $post );

		if ( ! $post ) {
			return '';

		$attr = [
			'class' => 'entry__image'

		// If in the customizer, add a context to be passed back to the
		// partial's render method.
		if ( is_customize_preview() ) {

			// JSON encode our context.
			$context = wp_json_encode( [
				'post_id' => $post_id
			] );

			$attr['data-customize-partial-placement-context'] = esc_attr( $context );

		return get_the_post_thumbnail(
			get_theme_mod( 'featured_image_size', 'thumbnail' ),

Selectively refreshing the featured image

In the customizer, we need to be able to re-render our featured images whenever a new featured image size is chosen. This way, the appropriate size is shown in the preview panel.

The most important bit of adding a customize partial is the following:

$manager->selective_refresh->add_partial( 'featured_media_size', [
	'selector'            => '.entry__image',
	'container_inclusive' => true,
	'fallback_refresh'    => false,
	'render_callback'     => function( $partial, $context ) {
		return isset( $content['post_id'] )
			   ? FeaturedImage::render( absint( $context['post_id'] ) )
			   : '';
] );

The render_callback function accepts two parameters: $partial and $context. The $context parameter will be the JSON-decoded array passed in earlier.

Here’s a full look at a customize class with the section, setting, control, and partial:

namespace JTCustomize;

use WP_Customize_Manager;
use JTTemplateFeaturedImage;

class Customize {

	// Call this to bootstrap.
	public function boot() {
		add_action( 'customize_register', [ $this, 'register' ] );

	public function register( WP_Customize_Manager $manager ) {

		// Create a media section.
		$manager->add_section( 'media', [
			'title' => __( 'Media' )
		] );

		// Featured image size setting.
		$manager->add_setting( 'featured_image_size', [
			'default'           => 'thumbnail',
			'sanitize_callback' => 'sanitize_key',
			'transport'         => 'postMessage'
		] );

		// Featured image size control.
		$manager->add_control( 'featured_image_size', [
			'section' => 'media',
			'type'    => 'select',
			'label'   => esc_html__( 'Featured Image Size' ),
			'choices' => [
				'thumbnail' => __( 'Thumbnail' ),
				'medium'    => __( 'Medium' ),
				'large'     => __( 'Large' )
		] );

		// Featured image size partial.
		if ( ! isset( $manager->selective_refresh ) ) {

			$manager->selective_refresh->add_partial( 'featured_media_size', [
				'selector'            => '.entry__image',
				'container_inclusive' => true,
				'fallback_refresh'    => false,
				'render_callback'     => function( $partial, $context ) {
					return isset( $content['post_id'] )
						   ? FeaturedImage::render( absint( $context['post_id'] ) )
						   : '';
			] );

Wrapping up

All that’s really left is calling <?php JTTemplateFeaturedImage::display() ?> in the appropriate theme template.

I hope this helps someone else along the way. It took me a lot of digging to find this little-explored feature of the WordPress customizer.

WordPress 5.2 RC, Site Health Check feature, release WP CLI 2.2

Did you know you update plugins, configure multisite installations and much more, without using a web browser? You can with a tool call WP CLI and it saw a big update. WordPress 5.2 saw its Release Candidate, well, released, and there’s a fun CSS related bonus link this time. Let’s dive in!

WP CLI 2.2 released

WP CLI is the command line interface tool for WordPress. With this plugin, you can do all kinds of exciting things inside of WordPress, but instead of using the browser, you can use the command line. This last week saw the release of the 2.2 version. Alain Schlesser had this to say about it:

Although there are not that many new features, we had a lot of work being done behind the scenes, to make future releases smoother. A lot of the processes have been improved, and we’ve managed to squash quite a few bugs while doing so. A team of 57 contributors has collaborated on this release to get 347 pull requests merged

Alain Schlesser

You can read more about it in the full release post. And, if you’ve never worked with WP CLI, then learn more about it and check if your web host has it installed. Most of the hosts on our WordPress Hosting page have it preinstalled.

WordPress 5.2 introduces the Site Health Check feature

One of the cool new features of WordPress 5.2 is the Site Health Check. This feature will add two new pages in the admin interface to help end-users to self-service their site through common configuration issues. It also provides a standardized location for developers to add debugging information.

The new pages can be found under the Tools menu, as Site Health, and presents the user with a new admin interface. One that you’ll want to continue to use in the future. If you’re building plugins or themes, there are really neat ways to interact with this new Site Health Check feature.

WordPress 5.2 Release Candidate

The first Release Candidate (RC) for WordPress 5.2 was released three days ago and with its release, we should expect the final release to be in about two weeks later.

A first RC also marks the moment when no new text strings are to be introduced. Also knows as a hard string freeze. If you speak any other language besides English, please help us translate WordPress into more than 100 languages!

Bonus link

This edition’s bonus link is for all you CSS warriors out there. Tobias Ahlin wrote about how to create masonry layouts with CSS only, using flexbox, nth-child() and order and think it’s pretty neat! He put a lot of thought and experimenting into getting it working, so check it out!

The post WordPress 5.2 RC, Site Health Check feature, release WP CLI 2.2 appeared first on Yoast.


“Is this the be-all and end-all of your ambition? What are you that this little corner of the great world is all you want?”

Dragonflight book cover.

I’d had Anne McCaffrey’s Dragonriders of Pern series on my to-read list for a while. I wasn’t sure that I wanted to jump into a dragon-related book after the disappointment of Eragon earlier this year. But, I wanted to stick with something a bit shorter before wrapping up Brandon Sanderson’s Mistborn trilogy.

Therefore, I flipped to page 1 of Dragonflight and began my journey into this new world.

Early on, there were several moments where I nearly shelved the book. The writing style made the initial chapters a bit of a slog to work through. Names like F’nor, F’lar, F’lon, and Flax didn’t help much. I got characters confused. Admittedly, I have an aversion to names with apostrophes in them (and there are many in this book). They’ve always thrown me off. But, come on! Let’s get a little more variety.

At least Lessa was easy to remember. It’s a good thing too because she’s our heroine.

Lessa has been working for years in the kitchens on what was formerly her father’s lands. She’s been in disguise but one day hopes to reclaim what’s rightfully hers. However, her destiny goes much beyond her home. Her fate will change as becomes bonded to a queen dragon.

Dragons and Riders have always protected the world from Threads, a substance that falls from the skies and must be destroyed by dragon fire. But, there are few Dragons and few Riders left because the Threads haven’t fell in a long time. Many don’t believe the Threads exist. The people no longer have the reverence they once did for Dragonriders. Now, Lessa and the Dragonriders must find a way to save the planet.

McCaffrey has given us a glimpse into an interesting world in this first book. It’s not as fully fleshed out as a longer work of fantasy, but the story was good enough to keep me turning the page despite my early drawbacks with the style and character names.

There were a few times where I cringed at the overt sexism and a few rough scenes in the book. I would have perhaps expected it from a male author in the 1960s, but I wasn’t expecting it from a female author. Some readers may find this completely off-putting and not be able to handle the work. Fair warning.

What McCaffrey does better than most others is bring you into the relationship between Dragon and Rider and show the beauty of flying with a dragon. They are bonded as one. There were moments where I could feel the wind blowing as if I had taken flight upon a great dragon myself. I could share the experience of being one with my own Dragon as I went on this adventure.

Dragonflight is a mix of fantasy with some sci-fi elements. I don’t want to spoil what one of those sci-fi-like elements is because it’s a major twist in the plot that changes everything. And, it was beautifully handled.

I’m glad I didn’t put the book down early on. I enjoyed reading this classic.

⭐⭐⭐⭐/5 stars.

Epic Zero

Epic Zero book cover

One of the things I like to do between epic reads is to cleanse the mental palate for a day or so before diving back into a deeper work of fiction. Sometimes that’s with shorter, adult-level fiction. Other times, I like to pretend I’m a kid and simply enjoy a work for younger readers.

That’s how I came upon Epic Zero: Tales of a Not-So-Super 6th Grader. It sounded like an easy read that might bring back memories of the kind of heroics I enjoyed around the time I was in 6th grade.

The premise sounded interesting. The world is full of “metas.” Everyone in Elliot Harkness’ family is a superhero. However, he’s a big, fat zero. Even the family dog has powers. But, not Elliot. Of course, that means that we’ll get to watch him somehow save the day. We know the destination, but the journey really didn’t pay off for me.

Instead of cleansing my mental palate, I was just frustrated with the poor execution. I found the work to be boring, clichéd, and downright silly. I wasn’t expecting a Pulitzer-worthy work of fiction, but I was expecting more.

The book is listed for Grades 4-7 on Amazon, but I’d say 4th grade is the upper limit. When I was in 6th grade, I was reading books such as Lois Lowry’s The Giver. Maybe my standards were just higher.

For something better at a similar reading level, I’d highly recommend Story Thieves by James Riley instead.

⭐⭐/5 stars.

A Clash of Kings

Oh, to be sure, there is much we do not understand. The years pass in their hundreds and their thousands, and what does any man see of life but a few summers, a few winters? We look at mountains and call them eternal, and so they seem … but in the course of time, mountains rise and fall, rivers change their courses, stars fall from the sky, and great cities sink beneath the sea. Even gods die, we think. Everything changes.

Maester Luwin

Cover of 'A Storm of Swords' by George R.R. Martin

I’ve somehow gotten way behind on my book reviews in the last couple of months. The plan was to review each book I’ve read this year. Life, gardening, and other projects have taken over my free time.

I finished reading A Clash of Kings back in early March. I picked it up immediately after finishing A Game of Thrones. I was so enthralled with the story, despite having watched most of the TV series, that I couldn’t get enough of this world that George R.R. Martin had created.

I just wrapped up A Storm of Swords while in the midst of this review. I read a few other books in between the two. I’m having to go back and read a plot summary to remind me what happened in the second book. A Song of Ice and Fire is like one gargantuan story that flows smoothly from one book to the next, and it’s been quite a ride thus far.

A Clash of Kings picks right up where A Game of Thrones leaves off. The Seven Kingdoms are at civil war. Daenerys Targaryen has lost everything but gained three baby dragons. And, there’s this dark looming feeling hanging over everything that something big is about to go down.

The first book felt like a limited view of this world that Martin had created. We saw events unfold from a handful of characters’ viewpoints. The follow-up book expands this world.

We get viewpoints from Cressen (maester at Dragonstone) in the prologue. New character-based chapters follow Theon Greyjoy (ward of Eddard Stark and heir to the Iron Islands) and Ser Davos Seaworth (former smuggler, the Onion Knight). Theon serves to bring us into the world of the Iron Islands, and Davos primarily follows the rightful king Stannis Baratheon.

I’m going to leave this at a short review. It’s a great continuation of the overall story, and I look forward to continuing it. It’s hard to top what Martin does if you enjoy his sort of gritty realism that doesn’t play into traditional fantasy tropes.

⭐⭐⭐⭐⭐/5 stars.

WordPress 5.2 Pushed Back to May 7, RC 1 Now Available for Testing

WordPress 5.2 was originally scheduled to be released on April 30, but has now been pushed back to May 7, due to the number of open tickets last week (43). There is now only one ticket remaining on the 5.2 milestone for completion of the About page and WordPress 5.2 RC 1 is ready for testing.

The upcoming release will bring major improvements to the block editor (everything released in the Gutenberg plugin prior to version 5.4). This includes the new block management capabilities and several new blocks that were ported from core widgets.

WordPress 5.2 will introduce a new admin interface for Site Health under the Tools menu. It runs tests that deliver results categorized as critical, recommended, or good, along with action items for users to improve their settings. The Information tab was added for basic debugging and provides information about the website and server setup.

A new feature called “fatal error recovery mode” is also included in this release. It pauses themes or plugins that are causing a fatal error and puts the site into recovery mode so the user can still access the admin to troubleshoot the issue. Users should experience fewer “white screen of death” situations with this new feature in place.

WordPress 5.2 brings a host of accessibility improvements to various admin screens for users who rely on assistive technologies. It also makes it easier to customize and design WordPress’ included Privacy Policy page.

Check out the 5.2 field guide for a detailed breakdown of everything that’s coming in the upcoming release. If you want to get a sneak peak and help test the release candidate, the easiest way is to install the Beta Tester plugin and select the “bleeding edge nightlies” option.

WooCommerce 3.6, AMP plugin update, WPGraphQL and WordPress news

It’s time for another roundup, packed with updates. Today’s headlines: WooCommerce finally embracing the Gutenberg editor fully, AMP for WordPress delivering great improvements with their new update and an introduction to WPGraphQL. So much WordPress news to cover!

WooCommerce 3.6 Loves Gutenberg

WooCommerce saw an update that delivers much better integration with the new Block Editor. This update introduces blocks for Products by Category, Best Selling Products, Hand-picked Products, Newest Products, On Sale Products, Top-Rated Products, Products by Attribute and Featured Product. And I’ve got to say, having these blocks available is a huge improvement in this Gutenberg-powered era.

It’s also really good to see WooCommerce working hard on improving performance. That’s something we at Yoast are big fans of, and highly recommend all developers to have a strong focus on. You can learn more about WooCommerce 3.6 in their introductory post.

Big update for the AMP plugin

The AMP project aims to make the web faster. And that’s exactly what the new 1.1 release does. The WordPress AMP plugin saw some nice new features and bug fixes. I’m especially happy that the image rendering bug has been fixed.

WPGraphQL making strides!

If you haven’t yet heard of GraphQL, or its WordPress equivalent, WPGraphQL, I encourage you to check out this data query solution. It’s a very performant way to work with WordPress data.

With GraphQL, the client makes declarative queries, asking for the exact data needed, and in exactly what was asked for is given in response, nothing more. This allows the client to have control over their application and allows the GraphQL server to perform more efficiently by only fetching the resources requested.


They released a WPGraphQL integration plugin with ACF last week. This plugin makes working with custom data provided by ACF a very smooth experience, with a lot of potential.

WordPress and mental health

There’s a project growing inside the WordPress Community that deserves a bit more exposure: WP&UP. It aims to support and promote positive mental health within the WordPress community. From their website:

WP&UP recognizes that members of the WordPress community can potentially manifest mental health issues from a variety of pressures. The WP&UP Health Hubs are designed to provide holistic support for the individual.

WP&UP website

During WordCamp London, I met the team recently and learned more about their mission and goal. If mental health is (or should be) a focus of yours, do check out their website and see how they can help you.

WordPress 5.2 postponed for one week

Looks like the Release Candidate for WordPress 5.2 is going to be delayed for a week. And this invariably means the release itself is going to be postponed as well. So, what to do with all this extra time?! Well, you can start reading up on the Block Editor changes in WordPress 5.2 or a good summary of the new Fatal Error Recovery Mode in 5.2.

The post WooCommerce 3.6, AMP plugin update, WPGraphQL and WordPress news appeared first on Yoast.

WordPress 5.2 Will Add 13 New Icons to the Dashicon Library

Dashicons, the WordPress admin icon font, will be getting its first update in three years when WordPress 5.2 ships. The library will be updated to use WOFF2 (Web Open Font Format 2), replacing the previous WOFF 1.0 format for improved compression. WOFF 1.0 will still be included in core to maintain backwards compatibility.

In addition to the new font file format, Dashicons is adding 13 new icons to the library and CSS declarations for 18 icons that were previously unavailable. The additions span a range of categories, including Buddicons, Core Teams, sites, menus, social, and miscellaneous.

Nate Allen, a Senior Web Engineer at 10up, is a new contributor to the Dashicons library, even though he is not a designer.

“WordPress has had a ‘businessman’ dashicon for as long as I can remember, but didn’t have a female or gender neutral version – until now!” Allen said.

“Previously I worked for Firefly Partners, an agency that builds WordPress sites for nonprofits. I was working on a project for a woman’s rights organization that needed a ‘staff’ post type. It was a little awkward explaining to them that there was a ‘businessman’ icon we could use for free, or they could pay extra to have a custom ‘businesswoman’ icon designed. Not a great look for WordPress.”

Allen submitted a GitHub issue, to see if someone would be willing to create a “businesswoman” and “businessperson” icon, but nobody had the time. Dashicons is maintained by a volunteer team and it can take a long time to get new icons designed.

“About 5-6 months later I learned how to use Illustrator to create vector icons and submitted the icons myself,” Allen said. He submitted the PR and the new icons he created will be included in the next release of WordPress.

These business people icons are useful for projects that include creating things like custom post types for bios, testimonials, team members, and job postings. WordPress 5.2’s updates to Dashicons make the library more inclusive and useful for more diverse projects. is Protesting Support Forum Moderators by Publishing Zero-Day Vulnerabilities

image credit: Jason Blackeye

A security service called Plugin Vulnerabilities, founded by John Grillot, is taking a vigilante approach to addressing grievances against support forum moderators. The company is protesting the moderators’ actions by publishing zero-day vulnerabilities (those for which no patch has been issued) and then attempting to contact the plugin author via the support forums:

Due to the moderators of the WordPress Support Forum’s continued inappropriate behavior we are full disclosing vulnerabilities in protest until WordPress gets that situation cleaned up, so we are releasing this post and then only trying to notify the developer through the WordPress Support Forum. You can notify the developer of this issue on the forum as well. Hopefully the moderators will finally see the light and clean up their act soon, so these full disclosures will no longer be needed (we hope they end soon).

In the linked incidents cited above, Grillot claims that moderators have deleted his comments, covered up security issues instead of trying to fix them, and promoted certain security companies for fixing hacked sites, among other complaints.

In response, Plugin Vulnerabilities has published a string of vulnerabilities with full disclosure since initiating the protest in September 2018. These posts detail the exact location of the vulnerabilities in the code, along with a proof of concept. The posts are followed up with an attempt to notify the developer through the support forum.

Grillot said he hopes to return to Plugin Vulnerabilities’ previous policy of responsible disclosure but will not end the protest until support forum moderators comply with the list of what he outlined as “appropriate behavior.”

WordPress’ security leadership is currently going through a transitional period after Aaron Campbell, head of WordPress Ecosystem at GoDaddy, stepped down from his position as head of security in December 2018. Automattic Technical Account Engineer Jake Spurlock is coordinating releases while the next person to wrangle the team is selected. This announcement was made in the #security channel, but Josepha Haden said there are plans for a more public post soon. Campbell did wish to publish the details of why he stepped down but said that he thinks it is important to rotate that role and that “the added influx of fresh energy in that position is really healthy.”

When asked about the Plugin Vulnerabilities’ protest against, Spurlock referenced the Responsible Disclosure guidelines on WordPress’ Hackerone profile. It includes the following recommendation regarding publishing vulnerabilities:

Give us a reasonable time to correct the issue before making any information public. We care deeply about security, but as an open-source project, our team is mostly comprised of volunteers.

Spurlock said that since those guidelines are more pertinent to core, dealing with third-party plugins is a trickier scenario. Ideally, the plugin author would be notified first, so they can work with the plugins team to push updates and remove old versions that may contain those vulnerabilities.

“The WordPress open-source project is always looking for responsible disclosure of security vulnerabilities,” Spurlock said. “We have a process for disclosing for plugins and for core. Neither of theses processes include posting 0-day exploits.”

Grillot did not respond to our request for comment, but the company’s recent blog posts contend that following responsible disclosure in the past would sometimes lead to vulnerabilities being “covered up,” and even at times cause them to go unfixed. support forum moderators do not permit people to report vulnerabilities on the support forums or to engage in discussion regarding vulnerabilities that remain unfixed. The preferred avenue for reporting is to email so the plugins team can work with authors to patch plugins in a timely way.

However, in the wild west world of plugins, which includes more than 55,000 hosted on, there are times when responsible disclosure falls apart and occasionally fails users. Responsible disclosure is not a perfect policy, but overall it tends to work better than the alternative. The Plugin Vulnerabilities service even states that they intend to return to responsible disclosure after the protest, essentially recognizing that this policy is the best way to coexist with others in the plugin ecosystem.

In the meantime, publishing zero-day vulnerabilities exposes sites to potential attacks if the plugin author is not immediately available to write a patch. The only thing can do is remove the plugin temporarily until a fix can be released. This measure protects new users from downloading vulnerable software but does nothing for users who already have the plugin active. If site owners are going to protect themselves by disabling it until there is a fix, they need to know that the plugin is vulnerable.

Plugin Vulnerabilities’ controversial protest, which some might even call unethical, may not be the most inspired catalyst for improving’s approach to security. It is a symptom of a larger issue. WordPress needs strong, visible security leadership and a team with dedicated resources for improving the plugin ecosystem. Plugin authors need a better notification system for advising users of important security updates inside the WordPress admin. Most users are not subscribed to industry blogs and security services – they depend on WordPress to let them know when an update is important. Refining the infrastructure available to plugin developers and creating a more streamlined security flow is critical for repairing the plugin ecosystem’s reputation.

Tips to enhance your experience with the Block Editor

Today I’d like to highlight two plugins that supercharge the new Block Editor experience. They’re very different in nature, but I find them both equally impressive. There’s some news about the upcoming WordPress 5.2 release, and there might be mention of a bonus link. Come and find out.

Gutenberg on steroids

We’re four, five months into using the new Block Editor and by now, I’m sure, you’ve started to get the hang of it. I mean, I sure have. I love how I can easily play around with rich media in new, exciting ways with just a couple of clicks.

Having said that, there are times when I wish I had a bit more control over a certain block. So, I looked around and found two wonderful plugins that enhance my Gutenberg experience.

Advanced Rich Text Tools for Gutenberg

This is the most lightweight of the two, but a sweet one at that. It only does three things at the moment, but it does them perfectly:

  • It adds code, subscript (sub), and superscript (sup) buttons to the formatting toolbar.
  • It also adds inline text and a background color panel.
  • And, it adds a “Remove formatting” button.

Like I said, only three things, but it gets a lot of joy out of these three little options. Find out more information here.

Advanced Gutenberg

The second plugin I found is a bit more complicated. It adds a plethora of options to existing Gutenberg blocks. I choose it for wanting a smarter way to display Gutenberg gallery images on one of my playground sites, a site about old German cars. Specifically, I wanted them to show in a lightbox pop-up when clicked on.

However, that’s only one small thing this plugin does. For example, it also allows you to configure:

  • Default block configuration.
  • Advanced Gutenberg icons block color.

And, you’re going to love this if options is your thing, it adds more than 20 different blocks to do all kinds of fancy things. Find out more at the plugin page.

WordPress 5.2, beta 3

WordPress 5.2 keeps being refined and improved. We’re currently already at beta 3. This beta release also marks the soft string freeze point of the 5.2 release schedule. If you speak additional languages besides English, now’s a great time to help to make sure WordPress 5.2 is properly translated in your language. WordPress 5.2 is slated for release on April 30, and we need all the testers we can get. Head over if you’d like to help out.

Bonus link

If you’ve ever needed to limit access your site to visitors who are logged in or accessing the site from a set of specified IP addresses, Restricted Site Access is the plugin you’re looking for. It’s a great solution for extranets, publicly hosted intranets or heck, you can even use it for your staging sites.

The post Tips to enhance your experience with the Block Editor appeared first on Yoast.

PHP requirement for WordPress, WooCommerce dashboard and Gutenberg 5.4

Today’s roundup is all about various upcoming updates across the WordPress ecosphere. From WordPress itself to Gutenberg, PHP, and WooCommerce. Let’s get started!

WordPress wants you to update your PHP

If you’ve been following my roundups, you may recall that WordPress is finally bumping its minimum PHP requirement in the upcoming WordPress 5.2 release. I usually don’t like to repeat myself, but in this case, I’ll make an exception. Partly, because there now is a post on by Aaron Jorbin. In it he says the following:

If your site is running on an unsupported version of PHP, the WordPress updater will not offer WordPress 5.2 to your site. If you attempt to update WordPress manually, that update will fail. To continue using the latest features of WordPress you must update to a newer version of PHP.

More information about what this means for you, why you should want to upgrade anyway, and how to prepare can be found in the rest of the post. I highly encourage you to read it.

A new WooCommerce Dashboard is in the making

WooCommerce, the most popular e-commerce solution for WordPress, has shared some interesting news about a new feature. They’re going to completely overhaul the WooCommerce dashboard.

It will give store owners a quick overview of how their store is performing and the ability to customize the dashboard to their needs. Store owners can view charted data directly from the Dashboard via 14 different data points, and select any chart to load an associated report for deeper analysis.

With those 14 data points, store owners can track performance with statistics, analytics, and other reports

WooCommerce is bundling this new dashboard in a feature plugin which you can download for testing. Read all about it in their announcement post.

Gutenberg 5.4

Last but not least, let’s look at the progress in Gutenberg. From the Make WordPress Core blog:

Foundational work and initial UI explorations to implement the block-based widgets screen are on-going. In the meantime, the contributors worked on a number of bug fixes and improvements. All the bug-fixes will be included in the next beta of WordPress 5.2.

Meaning, even though the features added up until Gutenberg 5.3 will be added to WordPress 5.2, bug-fixes found to those features are still being included to the betas.

If you’d like to read more about how Gutenberg 5.4 now supports vertical alignment for the columns block – and more – you can do so here.

The post PHP requirement for WordPress, WooCommerce dashboard and Gutenberg 5.4 appeared first on Yoast.

Gutenberg Team Publishes RFC Document on Widget-Block Interfaces

The Gutenberg team has published a Blocks in Widget Areas RFC (request for comments) document, detailing a technical approach that brings blocks to the wp-admin/widgets.php screen and the Customizer. This is one of the goals on the roadmap Matt Mullenweg outlined in his 9 Projects for 2019 post.

Based on the requirements outlined in the beginning of the document, it looks like the Gutenberg team is working to make the transition from widgets to blocks as seamless as possible:

  • Editing blocks in wp-admin/widgets.php and the wp-admin/customize.php should use the same block editor that wp-admin/post-new.php uses.
  • The block editor should read and update blocks in widget-editing areas via the REST API.
  • Upgrading WordPress must not affect the appearance of the user’s site, or any of their existing widgets.
  • Existing Core and third-party widgets must remain functional in the new block-based interface.
  • Backwards compatibility must be maintained. That is, themes and plugins that use public widget APIs must remain functional.
  • During a transition period, it should be possible to disable the block-based interface and return to the classic widget-editing interface.

The requirements for backwards compatibility are a tall order but will make it much easier for users to trust WordPress during this transition. Content will not be forced into the new interface and users will retain the option to use the classic widget-editing screen if they prefer. The team has not yet announced a date for when widgets will be officially deprecated.

Gutenberg version 5.4 was released last week with vertical alignment support for the columns block, a playsInline option in the video block, and a number of other minor enhancements. It also contains nearly two dozen bug fixes that will be rolled into the next beta of WordPress 5.2.

Gutenberg phase 2 technical lead Riad Bengella also confirmed in comments on the release post that the long-awaited section/container block is coming in the next release of the plugin. This will be an important milestone on the journey to full site editing with the block interface.

Custom Fields Metabox in Gutenberg Block Editor

The generic “Custom Fields” feature in WordPress is really useful for adding meta data to posts such as redirect URLs or custom feature flags.

WordPress Custom Fields metabox
“Custom Fields” metabox in WordPress.

However, this metabox wasn’t updated for Gutenberg and has to be manually enabled in the block editor options under “Advanced Panels”.

  1. Click on the block editor settings (three dots) in the top-right corner of the page and select “Options”.
  2. Select “Custom Fields” in the “Advanced Panels” section.
  3. The “Custom Fields” metabox is now available under the block editor area.

Here is a video showing how to do that:

How to enable Custom Fields in Gutenberg block editor.

Never lose a single business lead or enquiry again! Get my latest plugin Storage for Contact Form 7 now!

Buy now for only $19 →

Demo Videos for WordPress Products

I’ve been wanting to create a short demo video for my Storage for Contact Form 7 plugin in hopes that it would increase sales by engaging users that don’t enjoy reading long sales pages.

Last week I finally got to record the video and it is available on YouTube. Instead of writing a script I just did multiple takes while the contents and narrative become clear. English is not my first language so there are still some weird things being said, however, it felt good enough for the experiment and also brings some authenticity to it.

Here it is:

Demo video of Contact Form 7 Storage plugin.

I’ve been creating videos on YouTube about electric skateboards and electronics but this was one of the first times doing a screencast.

I’ve played around with the Open Broadcaster Software (which seems to be used by the majority of streamers) but it requires a bit of setup so I went with Screenflick — a paid closed-source software but with regular updates. It also takes care of hiding all desktop icons and changing the desktop background to a solid color. Very nice to work with!

Very few products on Evanto have video previews so I’m not entirely sure if the experiment will be any success.

Both my storage and controls & analytics add-ons for Contact Form 7 cover a lot of pain points for the Contact Form 7 plugin users so I want to create a library of short videos about the most typical issues and problems that users have. Hopefully those would become the gateway for people to discover my products. Something that Ryan Daniel Moran calls a multiplier.

What is your experience with video walkthroughs and tutorials for digital products? Is there a chance for this to succeed?

Never lose a single business lead or enquiry again! Get my latest plugin Storage for Contact Form 7 now!

Buy now for only $19 →

How To Fix ‘The Link You Followed Has Expired’ Error In WordPress

The “link you followed has expired” is a common error that occurs when trying to upload themes and plugins via the WordPress dashboard. The error usually happens when the file you’re trying to upload is larger than the default upload and execution limits set by WordPress. The best way to fix the issue is to increase the default upload limits..... Continue Reading

The post How To Fix ‘The Link You Followed Has Expired’ Error In WordPress is written by Editorial Staff and appeared first on WPKube.

WordPress To Move to PHP 5.6+

WordPress 5.2 is due out at the end of April, and wit that release the minimum recommended version of PHP will be PHP 5.6.

Minimum PHP Version update

For most plugins this is a non-issue. While we recommend you update your “Requires PHP:” version in your readme.txt, this won’t change the functionality of your code. That field is a minimum version, so if your code works with 7.0 and up, you can set it to `Requires PHP: 7.0` and that will cover 7.1 and 7.2

Also keep in mind, this doesn’t change our policy on PHP versioning, which is to say we still do not have an official version requirement for PHP in your plugins. If you want to support 5.6 forever, feel free. If you want to require 7.1 and up, again, go for it.

You can use a compare to do the basic check:

version_compare( PHP_VERSION, '5.6', '<' )

And remember the goal for your plugin is “Don’t break things for users.” Stop them from getting fatal errors, and don’t run your plugin if you know it can’t work.


Plugin tips for A/B testing, profiling and more!

Today’s roundup highlights some useful WordPress plugins. They’re either new, or have recently been updated with interesting features. From A/B testing to profiling and more… And of course, I have some bonus links for you as well!

A/B testing made easy

Testing between two versions, to see which one works best, is called A/B testing. You can A/B test many things, like your newsletter or your website. There are plenty of ways to do A/B tests on your website, but here, I’d like to highlight a new one. Gaya Kessler developed a sweet little WordPress plugin called A/B Testing for WordPress. This plugin allows you to create two variants right inside Gutenberg.

The plugin works while keeping SEO in mind, which means it doesn’t do anything that affects your SEO. It simply works like most A/B testing tools out there, but directly from your own WordPress site. Without the use of third-party services. You can find it here on

WordPress profiling plugin

Andrey Savchenko published an update to his WordPress profiling plugin, releasing version 3.3:

Laps is a plugin that shows performance information about WordPress page load. It provides a visual summary in a toolbar that is quick and easy to inspect. Laps and John Blackbourn’s Query Monitor have always been my two favorite plugins in my quest to make WordPress sites performant and faster. Check out Andrey’s plugin over at Github.

WordPress Emails

Query Monitor isn’t the only useful resource John Blackbourn has shared with us, by the way. This is an older resource, but if you haven’t heard of it before: you’ll love it. John has listed every single type of email WordPress sends out and how to filter them.

Bonus links

  • Jonathan Wold shares an interesting view on where the next opportunities lie in the WordPress ecosphere. He calls it ‘ecosystem plugins’. So, if you’re looking to build something with our favorite CMS tool, check out his post!
  • Our friends at Google (hello Felix!) released a plugin for WordPress last week. It’s called Reporting API and it provides a storage mechanism and endpoint for browser reports according to the Reporting API spec in WordPress. Additionally, it provides an admin interface for browsing these reports. Lastly, it also provides an API for sending the Report-To response headers. You can learn more about it here.
  • Have you tested WordPress 5.2 Beta 1 yet?
  • WordPress updating its minimum PHP version to 5.6 is beginning to make waves. You can now create themes for the WordPress theme repository with PHP 5.6 as a minimum. Exciting times!

The post Plugin tips for A/B testing, profiling and more! appeared first on Yoast.