WordPress.org

WordPress Planet

November 11, 2019

WPTavern: Beyond Prefixing: A WordPress Developer’s Guide to PHP Namespaces

Prefix everything.

It is an adage that is old as the WordPress software itself. Prefixing has been a standard for WordPress developers for so long that it’s hard to imagine doing anything different. But, the time has come for something new. Well, it is long past due, but WordPress lags a bit behind in standard practices in the larger PHP world.

Prefixing is the practice of creating a code-friendly version of your project name and sticking it to the front of functions, classes, and other things in the global namespace. For example, you would name a function tavern_get_post() instead of get_post() to avoid function name clashes, which would result in a fatal error.

Prefixing is one form of “namespacing,” which is just a fancy way of saying that names in this space belong to a specific project. However, prefixing (and suffixing, which is less common) is a hack from a time when no solution existed for the PHP language.

PHP 5.3 introduced an official method of namespacing, so the standard has existed for years. Because WordPress 5.2 bumped the minimum PHP requirement to 5.6, it is time for developers to shed their old habits and catch up to the rest of the PHP world.

Namespace (Almost) Everything

PHP namespacing only covers the following items.

  • Classes
  • Interfaces
  • Traits
  • Functions
  • Constants declared with the const keyword but not define()

When it comes to script handles, image size names, database options, and other items in the global namespace, you must still prefix them. Those are IDs and outside the scope of PHP namespacing.

How to Create Namespaces

Namespaces are simple to declare. At the top of any PHP file that you want to use a particular namespace, declare it as shown in the following code snippet.

<?php

namespace Tavern;

What this line of code does is declare that everything within this particular file has the namespace of Tavern.

Take a look at a simple function under that namespace for outputting a Hello, World! message.

<?php

namespace Tavern;

function hello() {
    _e( 'Hello, World!', 'example-textdomain' );
}

If following the old rules of prefixing, hello() would have been named tavern_hello(). However, that’s not the case with namespaces. The hello() function is encapsulated within the Tavern namespace and will not conflict with other functions named hello().

Classes and interfaces work the same as functions. With a class name of Article, the class file might look like the following.

<?php

namespace Tavern;

class Article {
    // ...
}

Note: There should only ever be one class or interface per file. This is particularly important if you ever plan to use an autoloader.

How to Name Namespaces

Developers like to argue over how to name things, and there is no one-size-fits-all solution. The most important rule is to be unique to avoid clashes with code from other projects. One of the best ways to do that is to use a top-level Vendor namespace with a Package sub-namespace.

Suppose the vendor namespace was Tavern and the project in question was a WordPress theme named News. The namespace for the project might look like the following.

<?php

namespace Tavern\News;

That may be a bit verbose for some developers. If your project’s name is already fairly unique, such as “Awesomesauce,” you may simply want to use the following.

<?php

namespace Awesomesauce;

You will want to come up with some sort of standard convention, at the very least, for yourself. Eventually, you’ll want to get into things like auto-loading, so having a system you follow in all your projects will help. Feel free to peruse the PHP-FIG Autoloader standard.

Importing Classes and Functions into a Different Namespace

When you need to use a class or function from a different namespace than the current namespace, you need to import it. This is done via the use keyword in PHP.

The use statement must come after the namespace declaration. It should also reference the fully-qualified class name. The following code imports the Tavern\Helpers\Post class into a file with a different namespace.

<?php

namespace Tavern\Template;

use Tavern\Helpers\Post;

Once it is imported, you are safe to use the Post class directly as shown in the next snippet.

$post = new Post();

As of PHP 5.6, you can also import functions and constants from other namespaces using the use function and use const keywords, respectively. The following code block demonstrates how to import both a function and a constant.

<?php

namespace Tavern\Template;

use function Tavern\Helpers\func_name;
use const    Tavern\Helpers\CONSTANT_NAME;

Aliasing Classes and Functions

Eventually, you will run into a situation where you need to import a class or function that has the same name as a class or function within the current namespace. You might be thinking that this is the problem that namespaces were meant to solve. Fortunately, PHP provides a method of creating an alias on import.

Suppose you have a class named Tavern\User and need to implement the Tavern\Contracts\User interface. When importing the interface, you will need to create an alias as shown below.

<?php

namespace Tavern;

use Tavern\Contracts\User as UserContract;

class User implements UserContract {
    // ...
}

The as UserContract appended to the end of the use statement creates an alias for the User interface. You can safely use the new UserContract name without error.

Classes, interfaces, functions, and constants all follow the same method for creating an alias.

Organizing Folder Structure Based on Namespaces

It is standard practice in the wider PHP world for namespaces and the project’s file and folder structure to match. Doing this makes it easy for other developers to easily locate code within your project. It also makes it simple to build autoloaders for loading classes on demand.

Generally, all PHP code should go into a /src, /inc, or similarly-named folder in your project. An example plugin file and folder structure might look like the following.

/plugin-name
    /src
        /Core
            /Activate.php
            /Setup.php
        /View
            /Post.php
            /Page.php

If following the same structure with namespaces, the above .php files would contain the following classes.

  • Tavern\Core\Activate
  • Tavern\Core\Setup
  • Tavern\View\Post
  • Tavern\View\Page

Take note that file and folder names are case-sensitive and should match the namespace and class name exactly.

Of course, you are free to follow any convention that you wish. However, the preceding recommendation is good practice and will simplify how you organize your projects in the long term.

Benefits of Using Namespaces

The most obvious benefit is to avoid clashes between classes and functions with the same name. You should use real namespaces for the same reason you used prefixes.

Namespaces help to avoid long class names. Typing long names throughout a large project is a tedious practice at best.

More easily switch implementations by importing. Once you get the hang of importing classes and interfaces from other namespaces, you can switch an implementation of an interface with a single line of code.

Autoloading classes is far easier if you follow the PSR-4: Autoloader standard, which requires at least a top-level namespace.

For developers in the professional space, you will gain a marketable skill beyond the WordPress ecosystem. You will be hard-pressed to find PHP development work if you don’t know how to use namespaces. It is not a tough concept to grasp, but there can be a learning curve for some in practice.

by Justin Tadlock at November 11, 2019 06:43 PM under php

Matt: Farnam Street’s Great Mental Models, Presented by Automattic

I’ve been a fan of Shane Parrish and his indispensable Farnam Street for many years now. Shane is a fascinating person — he’s a former cybersecurity expert for the Canadian intelligence agency and occasional blogger who turned his website into a full-time career. Oh and fs.blog is on WordPress, too. 😎

His book, The Great Mental Models: General Thinking Concepts, has been tremendously valuable to me in my work. So valuable, in fact, that Automattic is now sponsoring the next printing of the hardcover edition. You can pre-order it here, then learn more about the mental models outlined in it.

by Matt at November 11, 2019 03:59 PM under productivity

November 10, 2019

BuddyPress: The road to BuddyPress blocks

Hi everyone!

First, we’d like to thank all the people who contributed to the poll we shared on our development updates blog and into a topic of one of our forums a month ago. It was really important for us to have your expectations about the content the plugin should provide to the WordPress Block Editor.

It’s now time for us to share with you the results of this poll and tell you how we plan to work on BuddyPress blocks for the next release(s) of your favorite community engine!

The results of the Blocks Poll

It received a total of 161 votes divided as follows:

  • A block to share a post or a page via the Activity Stream : 17 votes.
  • A block to list the recently published posts from across your network (Exists as a widget) : 13 votes.
  • A block to display Sitewide Notices posted by the site administrator (Exists as a widget) : 12 votes.
  • A block to dynamicaly list the recently active, popular, newest, or alphabetical groups (Exists as a widget) : 11 votes.
  • A block to display Profile photos of online users (Exists as a widget) : 10 votes.
  • A block to highlight a single Group : 10 votes.
  • A block to highlight a single Member : 10 votes.
  • A block to dynamicaly list the recently active, popular, and newest Friends of a given member (Exists as a widget) : 9 votes.
  • A block to display the Profile photos of recently active members (Exists as a widget) : 9 votes.
  • A block to restrict content to a Group type : 9 votes.
  • A block to dynamicaly list the recently active, popular, and newest members (Exists as a widget) : 8 votes.
  • A block to restrict content to a Member type : 8 votes.
  • A block to restrict content to Group members : 7 votes.
  • A block to list the Member types : 7 votes.
  • A block to display a selected Activity as a quote : 6 votes.
  • A block to list the Group types : 5 votes.
  • A placeholder block for directory pages to eventually make them benefit from wide alignments : 5 votes.
  • No blocks! : 3 votes.
  • Other : 2 votes.

As you can see, top results are mostly corresponding to existing widgets except for:

  • A block to share a post or a page via the Activity Stream.
  • A block to highlight a single Group or a single Member.

We also analyze from these results that there is no blocks expected to be a must have and it’s interesting to see that the 2 first blocks are about highlighting WordPress content. Finally only one suggestion was made : A “Block for Activity Stream component” (PS: in Nouveau there’s an existing widget for it).

About the BuddyPress development team’s decision regarding BuddyPress blocks.

Screen capture of the BuddyPress Blocks category when the BP Blocks plugin is active.

We think working on blocks to highlight a single Group or a single Member is a good starting point. Moreover it’s something we don’t make possible yet. We also think converting existing widgets to blocks is an obvious move to do.

We’ve decided to work on these blocks from a specific GitHub repository and to merge into the Core of the BuddyPress plugin the “JavaScript built” blocks as soon as they are ready. To the very least, we’ll have the 2 blocks to highlight a Group or a Member of your community site merged into BuddyPress for its next major release (6.0.0).

We’ve just pushed the minimal code to start working on BuddyPress blocks into the BP Blocks’ GitHub repository. We’ll soon add contributing notes into this repository so that you can help us building beautiful BuddyPress blocks. You can already share with us your “Pull Requests” forking the repository.

If you can’t wait for the contributing notes to start working on BuddyPress Blocks, here’s a quick “how-to” :

  • Once you cloned your fork into your development environment, do npm install
  • The JavaScript (ESNext) code for your block needs to land into the /src/bp-{ID of the BP Component}/js/blocks/ directory.
  • Have a look at the way the bp/member block is registered here to build your registration code.
  • run npm start to see how your JavaScript code behaves at each edit.

Let’s build awesome BuddyPress blocks, together <3.

by imath at November 10, 2019 06:30 PM under blocks

November 08, 2019

WordPress.org blog: People of WordPress: Kim Parsell

You’ve probably heard that WordPress is open-source software, and may know that it’s created and run by volunteers. WordPress enthusiasts share many examples of how WordPress changed people’s lives for the better. This monthly series shares some of those lesser-known, amazing stories.

Meet Kim Parsell

We’d like to introduce you to Kim Parsell. Kim was an active and well-loved member of the WordPress community. Unfortunately, she passed away in 2015. Lovingly referred to as #wpmom, she leaves behind a legacy of service. 

Kim Parsell

How Kim became #wpmom

In order to understand how highly valued the WordPress community was to Kim Parsell, you have to know a bit about her environment.

Kim was a middle-aged woman who lived off a dirt road, on top of a hill, in Southern rural Ohio. She was often by herself, taking care of the property with only a few neighbors up and down the road.

She received internet access from towers that broadcast wireless signals, similar to cell phones but at lower speeds.

Connecting through attending live podcast recordings

By listening to the regular podcast, WordPress Weekly, Kim met members of the WordPress community and was able to talk to them on a weekly basis. The show and its after-hours sessions provided Kim a chance to mingle with the who’s who of WordPress at the time. It helped establish long-lasting relationships that would open up future opportunities for her.

Since she lived in a location where few around her used or had even heard of WordPress, the community was an opportunity for her to be with like-minded people. Kim enjoyed interacting with the community, both online and at WordCamp events, and many community members became her second family, a responsibility she took very seriously.

“Many members of the WordPress community became her second family, a responsibility she took very seriously.”

Jeff Chandler

One of the first women of WordPress

Kim is regarded as one of the first “women of WordPress,” investing a lot of her time in women who wanted to break into tech. She worked hard to create a safe environment sharing herself and her knowledge and was affectionately called #wpmom.

She contributed countless hours of volunteer time, receiving “props” for 5 major releases of WordPress, and was active on the documentation team. 

“Affectionately called #wpmom, Kim was an investor. She invested countless hours into the WordPress project and in women who wanted to break into tech.”

Carrie Dils
Kim at WordCamp San Francisco

Kim Parsell Memorial Scholarship

In 2014, she received a travel stipend offered by the WordPress Foundation that enabled her to attend the WordPress community summit, held in conjunction with WordCamp San Francisco. She shared with anyone who would listen, that this was a life-changing event for her. 

The WordPress Foundation now offers that scholarship in her memory. The Kim Parsell Memorial Scholarship provides funding annually for a woman who contributes to WordPress to attend WordCamp US, a flagship event for the WordPress community.

This scholarship truly is a fitting memorial. Her contributions have been vital to the project. Moreover, the way she treated and encouraged the people around her has been an inspiration to many.  

Her spirit lives on in the people she knew and inspired. Here’s hoping that the Kim Parsell Memorial Scholarship will serve to further inspire those who follow in her footsteps.

Drew Jaynes

Kim is missed, but her spirit continues to live on

Sadly Kim died just a few short months later. But her spirit lives on in the people she knew and inspired within her communities. The Kim Parsell Memorial Scholarship will serve to further inspire those who follow in her footsteps.

Contributors

@wpfiddlybits, @yvettesonneveld, @josephahaden, Topher Derosia, Jeff Chandler, Carrie Dils, Jayvee Arrellano, Jan Dembowski, Drew Jaynes

by Yvette Sonneveld at November 08, 2019 11:58 PM under heropress

Post Status: A Teenage Woman’s Perspective On The State of The Word

Hello everyone! This year I got the chance to go to the State of the Word, which is a talk given by Matt Mullenweg each year at WordCamp US (WCUS). Here are my thoughts and views on this year’s State of the Word.

Before he even got started with the State of the Word, Matt premiered a new documentary that focuses on the fact that WordPress is both open source and also a big community. The documentary takes you to WordCamp Phoenix, WordCamp US (2018), and others. It also gives you first-hand exposure to what the community is really like.

Another thing that the film emphasizes, is the fact that everyone wants everyone in the community to succeed, and this might be one of the unique features of the WordPress community — how members are supportive of each other.

Let’s Get Started!

Matt discussed several milestones and release notes for WordPress.

Two different releases within a year:

  • WordPress 5.1: Developer Experience Improvements 
  • WordPress 5.2: New Widgets, which can be shown or hidden

The future of releases:

WordPress 5.3

  • November 12
  • Over 150 block editor improvements
  • Twenty Twenty theme
  • Admin Email Verification
  • Time/Date Component Fixes
  • PHP 7.4 Cap
  • MinPHP 5.6.20

Mobile

  • Got Gutenberg on mobile 
  • Almost done with offline mode
  • DARK MODE 8

Social

  • 141 WordCamps 
  • About 15 KidsCamp
  • HeroPress
  • There is going to be a new scholarship to bring more people to WCUS

Let’s Time Travel…

A Year Ago

  • People did not like Gutenberg

Today

  • They have added motion
  • Typewritter mode
  • Block previews

Future

  • SOCIAL ICONS!!! (This is going to be a Gutenberg block)
  • The Navigation block/editor
  • GRADIENTS (I’m excited!)
  • Multi-Button Block
  • Block Directory 
  • Block patterns 

Community

  • There are so many different sites just using the block editor.
  • You are able to use Microsoft Word with the new editor using the Copy and Paste method.

Beyond

Gutenberg is about 20% done. There are going to be 4 phases of Gutenberg:

  • Easier Editing
  • Customization
  • Collaboration
  • Multilingual

Our Path Forward…

  • Help be the change 
    • Go to Contributor Day
    • Design Experiments by the WordPress team.
  • More Blocks!
    • Learn JavaScript Deeply. 
  • Help Teach the change
  • There are meetups everywhere
  • Help open the web. 
  • Five for the future

My Thoughts

As a young person…

As I was listening to the talk, I did find some golden gems that I thought my generation might be able to take advantage of and use to the benefit of both our generation and also the WordPress community.

One of those things is the new documentary that shows how open the WordPress Community really is.

Another thing, and yes, I am serious about this, is the fact that they are adding gradients to the WordPress editor for the Gutenberg blocks. I think that addition is going to bring out the artistic side of those of us who do not know how to do gradients in code yet.

That time I asked Matt Mullenweg a question…

One of the major things that I did during my WordCamp US trip happened during the Q&A Session which is right after the State of the Word. I decided to try to ask a question of my own.

Me asking Matt Mullenweg a question

And to summarize, I asked what was Matt’s plan for the inclusion of the next generation of WordPress users. His response to that is the fact that Automattic bought Tumblr and is going to turn the back end of their site into a Gutenberg-centric WordPress interface.

I do not think that this is a bad thing. In fact, I think that this is a good thing because of the fact that Tumblr is something that is attracting the younger generation of users.

I think Tumblr’s addition is going to be targeted towards some of the same people who are already using WordPress, and I was just hoping for a start to something that is able to capture a new group of people who are not using Tumblr to blog.

And now I know what you are thinking, Doesn’t KidsCamp already attract the younger generation? I LOVE KidsCamp and everyone and everything to do with KidsCamp. But here is the thing, KidsCamp is something that happens in less than half of the WordCamps inside of the United States, and getting there might be difficult for some parents, especially if they are going to bring their kids with them.

In conclusion

The organization of the whole event played out nicely. The media (or the people who tweet the most) got to sit in the front rows for the convenience of taking photos and notes.

There was no line for any of it, therefore we got the chance to fully enjoy the afternoon break that came right before the State of the Word.

I’m glad I got to ask my question to Matt. I think that there are some different ways that different people from the WordPress community are able to step in and help, beyond Tumblr, and beyond KidsCamp.

But that is going to come inside of a different blog post later in the future.

by Olivia Bisset at November 08, 2019 11:00 PM under Planet

WPTavern: Themes of the Future: A Design Framework and a Master Theme

WordPress theming has a rich history. Over the years, theme authors have brought a plethora of features to the platform. In part, it is because they have often had to solve foundational issues with WordPress to create the features that end users want.

The post and body classes all theme authors use today? Those were originally in a theme called Sandbox.

Featured images? Those were popularized by magazine themes a decade ago.

You think post formats originated with Tumblr? Matt Mullenweg, co-creator of WordPress, taught us how to create aside posts in our themes in 2004, but they existed before that.

WordPress features often get their start in the theme world. We sometimes take for granted the years of experimentation and iteration on ideas where theme authors are putting in the work. Even the block editor is handling items that have traditionally been within the realm of theme design. The cover block is a good example. For years, theme authors built theme options for a basic hero image with text and buttons overlain. The result was often clunky and not ideal for users. By bringing this feature into core, it provided users the ability to put this cover block in any permitted block area.

The reason many theme features make it to core is that they simply work better when they are standardized. Users know what to expect, and theme authors can focus on the design aspect rather than solving the user experience problem.

Part of the problem of the past is that each new feature adopted into core did not follow any standard design pattern or naming scheme. A huge skill in designing WordPress themes is committing the mish-mash of hundreds of classes to memory.

The block editor is in a unique position to change that by creating a universal design framework.

Does WordPress Need a Front-End Design Framework?

With block patterns coming in the future and full-site customization at some point after that, theme authors are wondering just exactly where this ship is sailing. It is exciting because the possibilities are boundless for end users. It is frightening for theme authors who have built their empires upon one way of doing things, but development is more about adaptation than anything else.

Armed with the foreknowledge that the landscape is changing, this is the moment theme authors need to band together to shape their futures in a block-based world.

There is a bit of a running joke in one of the developer groups I am involved in that core developers are not theme authors. From the theme author perspective, it can sometimes seem like ideas are haphazardly thrown together with no thought toward CSS design systems.

Oh, I see some BEM. Why does this sub-element not follow the same naming scheme? Wait. Is that a 38-character utility class?

What WordPress has always lacked is a universal front-end design system. At times, that has been a good thing. It has allowed theme authors to use their preferred framework. Any theme author who has been in the game long enough will tell you, that sort of flexibility is great…until it is not. Have you ever tried adding contextual classes to widgets? What about adding a utility class to the comment form wrapper? You will need an Aspirin. Or two.

With WordPress, some things are set in stone and others are pluggable. Some features follow a standard class-naming scheme and others make no sense. The result for themes is often bloated CSS in an attempt to wrangle the various components.

It is next to impossible to fully use a utility-class framework like Tailwind CSS in a theme without recreating core features.

Much of this stems from years of legacy code piling up and WordPress’ commitment to backward compatibility. But, the future does not have to resemble the past. We are at the threshold of a new era, and now is the time for front end designers to jump into the conversation.

WordPress needs a solid front-end design framework.

That is a loaded statement. If you put 20 designers in a room and ask them to discuss design frameworks, it could be a recipe for fisticuffs. I tend to be an optimist and hope the debate provided results.

Gutenberg has pushed us partially in this direction, but it does not quite go far enough. With full-site editing in the future, there is a need for a more holistic approach in tackling this problem.

More than anything, we need more front end designers in the conversation. There is no way .has-subtle-pale-green-background-color should exist as a utility class over something like .bg-pale-green, .bg-green-100, or even .background-pale-green, if you want to be more verbose. There was no concept of optimization that went into that decision. In a time where developers are running on gigabyte internet connections, it is easy to forget that much of the world is following along at a slower pace.

A component-based naming scheme with a healthy dose of utility classes is one option that could hit several sweet spots. This is not an argument for one CSS framework over another. There are many good, existing options. WordPress should tackle this head on by borrowing from the groundwork laid down by other projects and creating something uniquely WordPress. It should be a leader in the field.

Design frameworks are also about plugins. There is some crossover into the realm of themes where the two have been waging an ongoing war since the dawn of the theme system. The battlefield between themes and plugins is littered with the deaths of good ideas. Far too many never garnered the support they needed to land in core. Some sort of universal design standard could stanch the flood of issues and call for a cease-fire.

A plugin that outputs a custom front-end component has no way of knowing how the current theme handles vertical rhythm, for example. Does it use top or bottom margin? What is the value and unit used? This is foundational stuff, and it is almost always broken when the plugin attempts to add custom CSS to handle it.

WordPress needs a design framework, or language, that allows all of its moving parts to come together in harmony on the front end. I am sure we will get there at some point. I hope that it is more cohesive than the random components and naming schemes of the past. We should also have a clear roadmap that fills in some of the technical details so developers and designers might be prepared.

Is a One-Theme Future Possible?

Rich Tabor makes the argument that core WordPress could provide a single parent theme in his article A Look at WordPress Themes of the Future. The idea is that theme authors would be relegated to creating a child theme for this “master” theme.

The gut reaction for many would be that it would not work, themes would lose their personality and we would live in a world of cookie-cutter designs.

The reality is that we are barreling toward a future where the idea of a single parent or master theme is a serious consideration.

Most themes are custom groupings of standard elements that exist in nearly all themes. There are some decisions, aside from stylistic concerns, that make themes different from one another, such as the layout of the header. One theme might have a site title and nav menu in one block. Another might have a nav menu, title, and a second nav menu below. Yet, another theme might show a search box. In a world where full-site customization belongs to the user, those decisions become a part of the user experience rather than the developer experience.

Themes will need to stand out with color palettes, typography, and their own brand of quirkiness — a return of the days of CSS Zen Garden but on a much larger scale.

I won’t be sad about that. It would be interesting to see the competition between the top designers in the field. It may also bring WordPress theming back to an era when anyone could do it with a little CSS knowledge and determination.

While we are not quite ready for a future in which one theme rules theme all, it is a place to start the conversation. If we designed WordPress for this potential future, even if we never implement a master theme, what would the roadmap look like? What obstacles stand in the way? Is it feasible?

by Justin Tadlock at November 08, 2019 09:13 PM under wordpress themes

November 07, 2019

WPTavern: Oklahoma Watch Becomes First U.S. Publication on Newspack; 34 Pilot Newsrooms Announced for Second Round

Homepage of the Oklahoma Watch website on Newspack.

Oklahoma Watch is the first U.S. publication to relaunch and the second publication to go live on Newspack, a platform created this year to bring WordPress to newsrooms. Newspack announced the relaunch today. The announcement includes the list of 34 new publications that will work with the Newspack team during its second phase.

Newspack is a project of Automattic, the parent company of WordPress.com. Its mission is to create a platform for more newsrooms to make the move to WordPress. The team has been working alongside industry leaders and small publications during the pilot program this year to tackle issues with running online newsrooms.

Chilean news site El Soberano was the first newsroom to go live on the new system, relaunching their site on October 16. Oklahoma Watch follows them as only the second publication to take the next step. The remaining participants in the pilot program are expected to launch in the coming weeks.

Oklahoma Watch is a non-partisan publication that does not publish opinion pieces. It is a nonprofit news organization that covers stories on public-policy issues within the state of Oklahoma. “Those include education, criminal justice, public and mental health, state government, poverty, and human-needs issues that disproportionately affect women, children, and the disadvantaged,” said executive editor David Fritze. “Our staples are in-depth stories, searchable data, interactives, public forums, live-tweeting and other social media, and, increasingly, video.”

The publication distributes its stories for free republication to around 100 newspapers and radio and TV news outlets throughout the state.

Oklahoma Watch’s Move to Newspack

In 2013, the Oklahoma Watch site moved to Largo, a WordPress theme framework for news publishers. It is developed and maintained by the Institute for Nonprofit News.

“Our website was clean and bright, but was rather monotonous, with a long stack of same-sized headlines, excerpts and a right sidebar with typical fixtures, such as a newsletter sign-up ask and our Twitter feed,” said Fritze. After bringing on a visual journalist to bring the site up to date with media, they still felt tools were limited and needed a site refresh.

“We went live with Newspack more than a week ago, and we’re still gradually digging around — spelunking in a way — to learn how to make the most of it,” said Fritze. “But I would say it already has and will make a world of difference.”

He sent the following update to the publication’s email subscribers.

[Newspack] gives smaller organizations more tools to deliver their content in engaging, creative ways. What you will notice: a faster mobile experience; a better showcasing of visuals, stories, and informational bits, and a more vibrant, flexible home page – with new features to come. The goal is to make oklahomawatch.org a richer experience for you and to enhance the investigative reporting that is central to our mission.

The team switched from the classic editor and has been learning the block editor (Gutenberg) along with the Newspack tools. Fritze said the team is happy about:

  • Being able to serve donation and subscription forms anywhere.
  • Having the ability to more easily manage their homepage content, media, and headlines.
  • Making changes without spending valuable time that would be better spent investigating stories.

As part of the initial pilot program, Oklahoma Watch was in a unique position to help make this an easier process for future publications on the platform. “We were fortunate to be a pilot site and have the full let’s-develop-this attention of the Newspack team — on Slack, in regular video conference calls, in emails, and by phone,” said Fritze.

“Early on, it became clear that some of the news sites’ reps were more well-versed in web tech and other programs than we were, so it took me a while to get my bearings,” said Fritze of the process. “But I requested specific features and preservation of one or two of the tools we already have and prefer.” One such tool was the TablePress plugin. The Oklahoma Watch team uses it to display interactive, tabular data from CSV files.

Fritze said he had a few requests for other features that are still pending, such as a film-strip-like homepage carousel. However, the Newspack team was clear from the outset that not all plugins or features would be adopted for the system.

“Perhaps that would give some clients pause, not being able to pull any fish you wanted out of the sea of WordPress plugins, based on some mention on the web,” said Fritze. “On the other hand, the quality control is reassuring, especially for smaller organizations like ours that have little time to go kicking those tires.”

In any controlled system, it makes sense that not every feature request will be granted. It would increase the quality control burden. However, without more control over tools or features, it could be a non-starter for some publications.

Fritze does have a big feature request for the long term. “If there is one thing that Newspack should make sure happens going forward, it’s to promote easy interaction among Newspack sites, including the ability to communicate one on one and find peer sites that have similar needs and challenges,” he said.

Second Round of Pilot Newsrooms Announced

Oklahoma Watch and the 11 other newsrooms currently in the program are being followed by a larger group of publications. The 34 new sites will have the benefit of the past seven months of work the Newspack team and pilot newsrooms put into the initial launch. Newsrooms in the second phase are expected to relaunch their sites on the platform by the end of February 2020.

Publications such as the Hong Kong Free Press, MLK50: Justice Through Journalism, and The Daily Yonder are a part of the second group. Most are small or medium-sized publications that focus on local news. The full list is available via the announcement post on the Newspack blog.

Like the first group, the new newsrooms will work directly with the Newspack team to identify and address technical issues faced in online journalism. They will continue helping to design and test the platform’s features.

All pilot newsrooms will continue using Newspack for free until March 2020. After that point, the price will jump to $1,000 per month. The price includes priority access to Newspack developers, some level of premium support, quarterly benchmarking reports, and community membership with other Newspack users.

The Newspack team plans to consider additional applications in January 2020. Nearly 500 applicants have applied for the program thus far.

by Justin Tadlock at November 07, 2019 06:50 PM under Newspack

November 06, 2019

WPTavern: The Power of Stories: Chris Lema and the Bridge Framework

I would tell you that when Chris Lema, VP of Products at Liquid Web, is speaking, you should listen. But, there is no need to say that. He has an infectious quality that grabs your attention and doesn’t let go. I found myself hanging onto every word in his session, The Content Framework that Powers Stories, Landing Pages, & More, via the WordCamp U.S. livestream this past weekend.

Telling stories is a uniquely human trait. Our ability to weave narratives together is what separates us from lower animals. Sure, other important things such as the ability to make fire, understand advanced mathematics, and build rocket-powered ships all set us apart. But, it is the stories we tell that are the most interesting things about us as a species.

Any good story leaves you waiting to see what will happen next and how the people within those stories react. How they grow. How they change.

This fundamental human activity was at the heart of Lema’s 15-minute presentation. “When people believe that you’ve been where they are and can see that you’ve gotten to the other side, they will follow,” said Lema of selling products.

Ultimately, the bridge framework is about guiding others through your journey and helping them cross the bridge you have found. This framework can apply to your brand, your products, or any other content that you are providing to others.

One thing product makers often fail at is providing a solution before sharing how they have encountered the same problem. “No one feels like they need a bridge until they are facing a river,” said Lema. The struggle must come first.

What Comes After the Product

In 2007, I built one of the most popular themes ever in WordPress’ short history. It does not matter what theme it was. It is long retired. What mattered was it helped users get to their destination.

One theme user who stood out was building a Formula 1 racing website. I was a mediocre designer at best, but this user would create some of the most beautiful customizations that I had ever seen. It seemed like he would change the design every week. Each time, I was in awe at his talent. He continued using this same theme of mine for years, even after I archived it and moved onto other theme projects.

What I should have learned during those years was, without knowing, I had the story right. I knew the technical aspects of why this specific theme was a leap forward. However, I didn’t understand the story I was telling users was drawing people in.

I had been where they were. I had struggled to get to where I was going. I had braved the journey beyond that point and found a path for others to join me.

As time moved on, I became a better developer. I had one more insanely popular theme. Again, it was about the story. I could recognize the problems. I had the same frustrations as others. I had a way to fix those problems and get people from Point A to Point B. I invited others along. I told them I would be there every step of the way.

I never recreated that early success with another theme, at least not on the same scale.

I stopped focusing on what mattered.

I marketed future themes based far too much on the technical aspects. Essentially, I was flaunting my development skills. After years of lucking into success by being a storyteller, I tried to follow the trends of others who were marketing their HTML5, CSS3, or whatever other keyword was popular at the time.

Fortunately, I had loyal users who stuck with me over the years. There was one theme user who would often switch themes whenever I released a new one. Like the racing enthusiast, this person would put his own spin on the design. He used the themes on his photography site. What was interesting about some of the themes was they were not specifically built with photography in mind. That was never my goal when creating them.

What was it that made this user continue using different themes of mine?

It was never about all the bells and whistles. Many of them were unused on the site. It was about what came after activating the theme. It wasn’t about me. It was about the user being able to tell his own story through photos.

In hindsight, I could see that the projects I achieved the most success with were the projects I was the most passionate about. I had built them to solve specific problems. The technical details did not matter. I had built or found a bridge to get to the place that I wanted to be. My excitement and passion naturally transferred to how I spoke about those projects. It changed how I sold them to users. I told my story.

The biggest failures I had were when I did not have a good story to tell.

Watch Chris Lema’s Speech

For those that are running any type of business, you owe it to yourselves to listen to Lema explain how to connect with customers.

Lema’s session starts at the 2:59:46 mark if the videos doesn’t start at the correct point. The embedded video should begin at his introduction.

by Justin Tadlock at November 06, 2019 05:53 PM under wcus

Matt: State of the Word 2019

In case you missed it, here’s the first-ever State of the Word… designed completely in Gutenberg:

WordCamp US was a fantastic experience, as always. Thank you again to the hundreds of organizers and volunteers who made it happen, to the thousands who attended, and to the city of St. Louis for hosting us. We’ll be back there again next year.

And special thanks to this next generation of WordPress contributors. So exciting to see KidsCamps continue to expand and thrive:

As you can see, my site is now featuring the new WordPress Twenty Twenty theme. And for more coverage from my State of the Word, check out the recaps from WP Tavern and Post Status. Here’s my full audience Q&A below:

You can see my previous State of the Word keynotes here.

by Matt at November 06, 2019 06:38 AM under state of the word

BuddyPress: Test BuddyPress 5.1.0-beta1 thanks to our new BP Beta Tester plugin

Hi BuddyPress contributors!

We will soon publish a maintenance release (5.1.0) to fix some issues that arose since BuddyPress 5.0.0 “Le Gusto”. A detailed changelog will be part of our official release notes, but, until then, you can check out this report on Trac for the full list of fixes.

Today we’re publishing a very specific beta release for version 5.1.0 as it has two goals:

  • Let you make sure the fixes have no side effects on your community site’s configuration.
  • Test in real conditions the plugin we’ve been working on and which should greatly simplify the way you betatest BuddyPress.

Meet BP Beta Tester

Once installed it will help you to upgrade your website to the latest Beta or Release candidate. You will also be able to downgrade to the latest stable release once you finished your Beta tests.

Once activated, go to the home page of your Dashboard (Network Dashboard if your are using WordPress Multisite) to find the BP Beta Tester sub menu of the Dashboard menu. From this page, you’ll be able to install the 5.1.0-beta1 release clicking on the tab “Upgrade to 5.1.0-beta1”.

You can always downgrade to the latest stable version of BuddyPress using the corresponding tab of the page’s header.

The development version of this plugin is hosted on GitHub: you can contribute to it pulling requests or reporting issues. We plan to submit this plugin on the WordPress.org Plugins directory so that it’s easier to install.

Download BP Beta Tester or Download BuddyPress 5.1.0-beta1.

Happy testing 😉

by imath at November 06, 2019 02:45 AM under releases

November 05, 2019

WordPress.org blog: WordPress 5.3 RC4

The fourth release candidate for WordPress 5.3 is now available!

WordPress 5.3 is currently scheduled to be released on November 12 2019, but we need your help to get there—if you haven’t tried 5.3 yet, now is the time!

There are two ways to test the WordPress 5.3 release candidate:

For details about what to expect in WordPress 5.3, please see the first,  second and third release candidate posts.

Release Candidate 4 contains three bug fixes for the new default theme, Twenty Twenty (see #48450), and addresses the following:

  • The Twemoji library has been updated from 12.1.2 to 12.1.3 (see #48293).
  • Two regressions in the Media component (see #48451 and #48453).
  • One bug in the Upload component (see #48472)
  • Five bugs in the Block Editor component (see #48502)

Plugin and Theme Developers

Please test your plugins and themes against WordPress 5.3 and update the Tested up to version in the readme to 5.3. If you find compatibility problems, please be sure to post to the support forums so we can figure those out before the final release.

The WordPress 5.3 Field Guide has also been published, which details the major changes.

A new dev note has been published since the Field Guide was released, Use of the “wp_update_attachment_metadata” filter as “upload is complete” hook. Plugin and theme authors are asked to please read this note and make any necessary adjustments to continue working well in WordPress 5.3 or share any difficulties encountered on #48451.

How to Help

Do you speak a language other than English? Help us translate WordPress into more than 100 languages!

If you think you’ve found a bug, you can post to the Alpha/Beta area in the support forums. We’d love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac, where you can also find a list of known bugs.

by Francesca Marano at November 05, 2019 11:56 PM under Releases

November 04, 2019

WPTavern: State of the Word 2019 Recap: All Roads Lead to the Block Editor

If there was one common theme in Matt Mullenweg’s State of the Word address this year at WordCamp U.S., it was that all roads lead to the block editor. His speech was primarily about blocks, blocks, more blocks, and a dash of community. This doesn’t come as a surprise because we are closing in on the one year mark of the official merge of the Gutenberg plugin into the core WordPress code. It has been a year about blocks, and nothing is changing that course.

WordCamp U.S. 2019 was held in St. Louis, Missouri, over this past weekend. The event was planned and put together by 47 organizers and 122 volunteers. There were 90 speakers who held sessions across a range of topics in multiple rooms.

For people who were not able to attend or watch via the livestream, the sessions are available via YouTube. Eventually, the videos will also make their way over to WordPress.tv

Open: The Community Code

Mullenweg opened The State of the Word by showing a documentary named Open: The Community Code, which is a film that primarily focuses on the WordPress community.

The film explores why people are so passionate about a project that is essentially just code. What drives them to organize and attend events like WordCamps? Why do they volunteer their free time contributing to an industry that sees over $10 billion in profits? What makes the WordPress community different from other projects? The film team interviewed 37 people to get to the bottom of these questions.

The team behind the project is also providing the film and all of the raw footage as open source for others to use.

The Events of the Past Year

Mullenweg primarily focused on WordPress updates and changes within the community when recapping events of the past year. Since the release of WordPress 5.0 on December 6, 2018, WordPress has had two major releases. A third major release, WordPress 5.3, is scheduled to launch on November 12.

During 2019, most heavy work went into the Gutenberg plugin, which was ported back into core WordPress. The number of contributors to Gutenberg more than doubled since WordPress 5.0 launch, an increase from 200 to 480 individuals.

The release of WordPress 5.1 introduced the first iteration of the site health page, new cron features, and a site meta table for multisite installations.

“WordPress is all about empowering users and we wanted to put the information and the tools in the hands of users as well to keep the site running in tip-top shape as we power an ever-increasing percentage of the web,” said Mullenweg of the site health feature. He further explained that it is WordPress’ responsibility to make sure users are up to date and running the latest versions of software.

Building on top of the site health introduction, WordPress 5.2 launched with a PHP fatal error protection and recovery mode. The release also bumped the minimum PHP version to 5.6 and ported all widgets to blocks.

Mullenweg then outlined the work done toward getting WordPress 5.3 ready for its November 12 launch date. The major changes include:

  • 150+ block editor improvements
  • Twenty Twenty default theme
  • Date/Time improvements and fixes
  • PHP 7.4 compatibility

As of now, 83% of all users on WordPress 5.2 or newer are running at least PHP 7. This means the WordPress project has done what it can from the user end. It is now time to start working with hosts to get sites updated to the latest version of PHP.

The block editor is now available on both Android and iOS devices. Mullenweg announced they were almost done with offline post support and that a dark mode is coming in weeks.

The community had a good year. In 2019, there were 141 WordCamp events, 34 of which were in new cities. There were 17 Kids Camps for younger contributors to get involved. There were also over 5,000 meetups and 16 do_action() charity hackathons.

The WordPress news page has been highlighting one story from HeroPress every month in the past year. HeroPress is a project that allows people to tell their stories of how they got involved with WordPress.

Mullenweg held a moment of silence for long-time community member Alex Mills (viper007bond) who passed away earlier this year after a long-fought battle with leukemia. Automattic is planning to finance a scholarship in his honor. The scholarship will go to a plugin developer to attend WordCamp U.S. who has not had an opportunity to attend.

2019: The Year of the Block Editor

Slide with screenshots of Gutenberg criticism from users.

Mullenweg started focusing on the block editor after recapping the events of the past year. WordPress 5.0 was released one day before WordCamp U.S. 2018 in Nashville.

“We had people coordinating work from airplanes,” said Mullenweg. “There were impromptu groups of core developers, testing and packaging the release in the hallways. The polyglots, marketers, and support teams were just scrambling to get ready.”

He explained the reason for the biggest change to WordPress in its then 16-year history. “We came together and decided to make this big change cause we wanted to first disrupt ourselves. We wanted to empower more WordPress users to realize our mission of democratizing publishing, and wanted to make the web a more open and welcoming place.”

Not everyone was happy with the direction of WordPress and its new block editor. It was a rough year from a leadership perspective to have a vision and see it through, despite constant negative feedback. Mullenweg highlighted some of the comments that were critical of the block editor and explained that they had learned a lot from the process.

“I think that we also have a great opportunity when we make big changes in the future,” said Mullenweg. “Sort of build that trust in the conversations around testing, using GitHub for development, things like accessibility. So, I understand why we had a lot of this feedback. But, we did get through it together.”

Mullenweg highlighted that, according to Jetpack plugin stats, over 50 million posts have been written in the block editor. That amounts to around 270 thousand posts per day. It is important to note that this stat is on the lower end because it only accounts for users of the Jetpack plugin. Therefore, the number is likely much higher.

He covered the performance improvements to the editor, block motion when moving blocks, typewriter mode, block previews, and the social block. “These are like the Nascar stickers of the web,” he said of social icons. “They’re everywhere.”

The Next Steps for the Block Editor

In his address, Mullenweg covered the four phases of the Gutenberg project.

  1. Easier Editing
  2. Customization
  3. Collaboration
  4. Multilingual

The first phase was the initial launch and iteration of the block editor for content. The second stage, which we are in now, is about full site customization. This includes widgets and non-content areas, and will eventually cover areas like the site header and footer. It will be interesting to see how page-building plugins work with these upcoming changes. Some could use WordPress as the foundational, framework-type layer. Others may go their own way. Themes will also have to keep pace with the changes.

Phase three, collaboration, will introduce a feature that allows multiple authors to collaborate and co-edit posts on a site in real time. With any luck, WordPress will also build in a proper system for attributing posts to multiple authors.

The fourth and final phase cannot get here fast enough. As WordPress usage continues to grow around the world, it is past time that it offered a multilingual experience. “We’re going to tackle the Babel fish problem,” said Mullenweg.

Also on the roadmap is the concept of block patterns. Patterns would be a groups of blocks that follows common patterns seen across the web. The existing Media & Text block is an example of a common pattern, but new patterns would go far beyond something so basic. By providing patterns to users, they could simply insert a pattern and fill in their details, which should make it easy to rapidly create rich content.

Watch the State of the Word

Mullenweg’s entire presentation was done from the block editor. He used the Slides plugin created by Ella van Durpe.

Community Questions and Answers

The Q&A sessions after Mullenweg’s address was more focused on community and policy.

Rian Kinney asked whether we would see official policies on accessibility, ethics, conflicts of interest, and diversity. She wanted to know how the community could make this happen over the next year.

While a privacy policy is in the footer of WordPress.org, Mullenweg expressed his desire to not make changes than lean too heavily on policy. “That is in spite of there being a policy or not, we’ve tried to enact bigger changes in WordPress in a policy-first way in the past,” he said. “To be honest, it felt nice but didn’t always make things actually change.” He said we usually do better by working with people to make changes rather than starting with the policy.

Olivia Bisset, a young WordCamp speaker behind Lemonade Code, asked Mullenweg how we could inspire kids who are currently in school to get involved with WordPress. The project has tough competition coming from more exciting technology sectors such as robotics and other industries that are swaying the next generation.

“This is going to be on YouTube later, and boys and girls, maybe of your generation, will see you here asking a question and being a speaker at WordCamp in front of a thousand adults,” said Mullenweg. “And, you know, it’s kind of beautiful.”

Mullenweg said that we need more stories from younger people on HeroPress and that Kids Camps will help. He said that WordPress should be easier and more accessible, which are things that the current generation is more aware of and care about. He also mentioned Automattic’s recent acquisition of Tumblr, which has a larger user base of young users, as a way to introduce them to WordPress.

View the Q&A portion of The State of the Word in the following video.

by Justin Tadlock at November 04, 2019 07:18 PM under wordcamp us

November 02, 2019

Post Status: Matt Mullenweg’s State of the Word, 2019

WordCamp US 2019 is taking place for the first time in St. Louis, Missouri, where more than 1,300 WordPress community members and leaders are gathered.

It’s been the year of Gutenberg in 2019, and in his State of the Word, Matt Mullenweg highlighted what has been accomplished and what is coming next.

Matt kicked off the event with the premiere of Open: The Community Code, a film about the WordPress open source community.

Open was really well done and made a great introduction to Matt’s review of the year’s achievements. In the film, Matt says that $10 billion flows through the WordPress economy every year, but that doesn’t define the community. WordPress is more than code, more than business. Matt says, “It’s more than a tool.” It’s more like a canvas that “anyone can paint on.”

Open is a film about WordPress and what WordPress really is — not just software, but people, a community, and a mission. Open is a documentary short produced by Andrew Rodriguez and directed by Sean Korbitz. ​Executive producers Mark Maunder and Kathy Zant of WordFence contributed to the production of Open as well, and they are submitting it to independent and documentary film festivals.

The WordPress Community

The community continues to evolve, thrive, and adapt to the changing environment.

WordCamp US 2020

The next WordCamp US will be hosted during the workweek and won’t overlap with Halloween. This is something I’m personally thankful for, as it opens up the weekend for family. Many people, including me, got to the conference late this year due to spending the holiday trick-or-treating with family.

Volunteers Organizers, Speakers, and Sponsors

WCUS was made possible by 47 organizers, 122 volunteers, and 90 speakers. Bluehost, WooCommerce, Jetpack, and Google are this year’s lead sponsors. Thank you to everyone!

Meetups, People, and Community Endeavors

There have been more than 5,000 WordCamp events and several do_action WordPress community events as well.

One HeroPress story per month is now being featured on the WordPress blog.

Matt honored Alex Mills, a prolific early and long-time contributor to WordPress who passed away in 2015.

WordCamps

There will be a total of 141 WordCamps in 2019, including 34 in brand new cities. There are also 17 KidsCamps happening in 2019.

This year there are at least four WordCamp US speakers under age 15, which makes them younger than WordPress itself.

In 2020, the first WordCamp Asia is happening in February, in Bangkok, Thailand. WordCamp Europe will convene in Porto, Portugal.

One year ago

WordPress 5.0 was released just before WCUS began in Nashville last year, a contentious decision on timing in itself. 2018 was what Matt calls a “controversial year,” where we wanted to “disrupt ourselves.” Gutenberg was included in core despite a lot of criticism in and outside of the community about this decision. Matt says we learned a lot from the process, and it was “really good practice for future changes we want to make.”

He also added, “I understand why we had a lot of this feedback,” and he expressed excitement for WordPress’s future.

Ways to Get Involved with WordPress

Matt highlighted several ways to get involved in the WordPress community today:

  • Participate in WordCamp contributor days, including one at WCUS.
  • Install the Gutenberg plugin, which is now a testing ground for features. About 275,000 people are taking part in this effort.
  • Install Design Experiments, a new feature plugin to test user interface experiments.
  • Create blocks! Matt made a call for Gutenberg block creation to “expand the window for how people are creating WordPress sites today.” If it’s JavaScript only it will be able to go easily into the new block directory.
  • Help teach others in the community.

When Matt says why we do all this, he says it’s to “help the open web.” He says the open web is like a pendulum that can swing to being more closed or more open over time.

Five for the Future

There’s now a dedicated landing page for Five for the Future to highlight people and organizations devoting 5% of their resources to WordPress development through this program.

Core WordPress Development

There have been two core releases in 2019. WordPress 5.1, “Betty,” brought the “Site Health” screen, along with other feature adjustments and bug fixes. It also included the Cron API and Site Meta for Multisite.

WordPress 5.2, “Jaco,” included live block previews, better block management, and the end of the WSOD (White Screen of Death).

WordPress 5.3 will be released on November 12th. It includes more than 150 block editor improvements. Also in 5.3 is the beautiful Twenty Twenty theme. And thanks to a new security feature, every six months or so, WordPress will send administrator email verifications to help ensure site admins are staying up to date.

The minimum PHP version requirement for WordPress is now 5.6.20, which ended support for 5.2 and 5.3. Compatibility is now up to PHP 7.4. More than 80% of all WordPress sites are now on PHP 7 or higher. Matt highlighted the still-urgent need to improve update mechanisms and strategies with webhosts and site owners.

We are currently at 1,122 total unique contributors to WordPress this year. WordPress 5.3 will have more than a hundred contributors than any release before.

Gutenberg

There have been more than 20 major Gutenberg releases, and the number of Gutenberg contributors is up to 480 from 200 a year ago. Matt says the number of sites using Gutenberg is up more than 2.7 times, and we just surpassed 50 million posts created in Gutenberg. Gutenberg-based posts are increasing at a rate of about 270,000 posts per day as tracked by Jetpack, so that’s a conservative estimate.

In last year’s State of the Word question and answer session, someone asked what percentage of Gutenberg was complete, and Matt answered “10%.” A year later he says he thinks it’s about 20% complete. He also highlighted how it’s an ongoing process that he expects to take a decade to bring to fruition everything he envisions.

Gutenberg Feature Improvements

There are a lot of improvements happening:

  • Gutenberg is now fully mobile compatible, and many of the core blocks are fully integrated. Offline support and dark mode are also nearly complete.
  • The average time to load Gutenberg has been cut in half, and time to type has been reduced from 170ms to 53ms.
  • There is now a smoother scrolling motion in Gutenberg.
  • Block previews allow you to see what a block looks like before you insert it, and it also allows you to see more information about what the block does.

Other Gutenberg features in the works:

  • Social icons that can be placed anywhere.
  • The navigation menu is going to be an inline Gutenberg block — a likely precursor to “customize all the things.”
  • Gradients will be more a part of the Gutenberg experience.
  • Core Gutenberg is getting a button block.

Matt recognizes that we’ll have thousands of blocks created for Gutenberg, and there will be a block directory which will load inside the Gutenberg editor. Patterns will be collections of blocks that people can install in bulk.

Matt says he thinks people will be able to create just about any type of website layout in just a few clicks when Gutenberg is mature.

Several use cases of Gutenberg were highlighted in Matt’s talk, from newsletter editors to WordCamps, newsrooms, Microsoft Word converters, and more.

The Four Phases of Gutenberg

Matt continues to highlight the four phases of Gutenberg development and where we are now.

  • Easier editing: simply making the WordPress editing experience better has been the focus of the last year.
  • Customization: we are “in the thick” of the customization phase now, some of which is complete, and some (like full inline site editing) is still to come.
  • Collaboration: real-time editing collaboration is coming in the third phase, something I’m very excited about.
  • Multilingual: core WordPress and core Gutenberg will have complete multilingual support.

In conclusion

Matt’s slides for the State of the Word were actually built with Gutenberg.

The code for the presentation is on Github for anyone to use.

It’s been an interesting and challenging year for WordPress. With that observation, Matt opened up the question period.

Here’s the complete video:

And the Q&A session:

Photo of Matt by Brian Richards for Post Status. Thank you to David Bisset for live-tweeting the event while I wrote this.

by Brian Krogsgard at November 02, 2019 10:30 PM under Planet

WordPress.org blog: 2019 Annual Survey

It’s time for our annual user and developer survey! If you’re a WordPress user or professional, we want your feedback.

It only takes a few minutes to fill out the survey, which will provide an overview of how people use WordPress. We’re excited to announce that this year, for the first time, the survey is also available in 5 additional languages: French, German, Japanese, Russian, and Spanish. Many thanks to the community volunteers who helped with the translation effort!

The survey will be open for 4 weeks, and results will be published on this blog. All data will be anonymized: no email addresses or IP addresses will be associated with published results. To learn more about WordPress.org’s privacy practices, check out the privacy policy.

by Andrea Middleton at November 02, 2019 09:15 PM under Community

November 01, 2019

WPTavern: BoldGrid Joins Forces with W3 Edge, Acquires W3 Total Cache Plugin

BoldGrid, a WordPress product and services company, announced today that it has joined forces with W3 Edge, the parent company behind the popular W3 Total Cache (W3TC) plugin. BoldGrid acquired the W3TC plugin and retained its creator, Frederick Townes, along with its development and support staff. The two teams will operate as sister companies but jointly work on the plugin’s future roadmap.

“There are some things a larger team can accomplish for Total Cache that we are targeting right now,” said Brad Markle, development manager at BoldGrid. “After a few more releases of core Total Cache features, the TC team is slated to help accelerate our CRIO Theme Framework on the BoldGrid side.”

BoldGrid has a range of plugins, themes, and services for WordPress sites. The company offers plugins like its post and page builder, themes such as its “super theme” CRIO, and services like testing and performance coaching.

W3 Edge’s primary product is its W3TC plugin, which serves as the caching solution for over one million WordPress installs. It is one of the most-used caching plugins available in the official WordPress plugin directory.

Many competing caching plugins have been gaining considerable exposure in the past few years. Some of those are free. Others, such as WP Rocket, have captured large segments of the premium market. Managed WordPress hosts also generally offer built-in caching solutions as part of their strategy to build their customer numbers. The question is whether this move will provide growth for W3TC and any related products or services.

The Future of the W3TC Plugin

Screenshot of a new Caching Statistics page for W3 Total Cache

The BoldGrid team has plans to continue developing the W3TC plugin. “Since joining with the awesome team at W3, we have been working to add in some slick new features like Caching Statistics and Lazy Loading,” said Harry Jackson, product manager at BoldGrid.

“We are also looking to partner with theme and plugin developers to ensure the widest range of compatibility for the product, and the WordPress Community,” said Jackson. It is unclear what such partnerships would entail and the type of compatibility needed from third-party developers. The BoldGrid team did not provide further details.

For some users, the W3TC interface and options can be overwhelming. “User Experience is at the top of the list of things we are working on,” said Sash Ghosh, BoldGrid’s marketing manager. “It can be challenging for some users to fully understand and utilize all the powerful features. We will soon be adding an on-boarding and configuration guide to the plugin that will hopefully make the plugin accessible to more users.”

Building Trust After a Rocky Past

Despite setbacks in 2016, the W3TC plugin has maintained over one million active installs over the past three years. In March of that year, there was concern that the plugin was abandoned after no activity for seven months. The plugin was not working for many users on the latest version of WordPress.

Much of the issue seemed to stem from not yet knowing how to scale such a popular product with a small team.

Later in September of 2016, a high-risk XSS vulnerability was discovered with the plugin. The plugin developer patched the plugin quickly. However, the updated versions introduced new bugs and a poor experience for many users.

While things seem to have been running more smoothly in recent years, there is still some level of distrust within the inner WordPress community. When asked how they are prepared to address past issues and assure they are looking out for the best interests of users in the future, the BoldGrid team said that security is a top priority. They also expressed their openness to community feedback for improvement.

“As with all big plugins, there are challenges with functionality, features, and security,” said Jackson. “With a bigger team and additional Quality Assurance resources we feel that Total Cache will continue to improve in all the major areas. We have also introduced a public pull request process to facilitate additional feedback and bug fixes. Though you can’t ever guarantee security, our team is very committed and respects our responsibilities to our million-plus users.”

by Justin Tadlock at November 01, 2019 02:01 PM under News

WordPress.org blog: The Month in WordPress: October 2019

October has been a busy month with preparations for WordCamp US as well as the next major release of WordPress. Read on to find out about all that work and more.


WordPress 5.2.4

On October 14, WordPress 5.2.4 was released as a security release fixing 6 security issues. The fixes were backported to earlier versions of WordPress as well, so they’re available for sites not yet upgraded to 5.2.

This kind of release is only possible because people report security issues responsibly so that the Core team can address them. You can find out more specific information about the fixes on the release documentation page.

Want to get involved in building WordPress Core? Follow the Core team blog, and join the #core channel in the Making WordPress Slack group.

WordPress 5.3

WordPress 5.3 has seen active development over the past month, with a release date set for November 12. You can download and test the release candidate to get a taste of what to expect—this is largely what final release will look like.

This is a big release with a number of exciting and important updates. Among them are significant changes to the look of the admin interface, enhancements to the block editor that will affect developers of themes and plugins, large improvements to the way that Core processes images, updates to cater for some functions specific to PHP 7.4, improvements to the Site Health feature, and many more improvements that are all documented in the WordPress 5.3 Field Guide.

In addition to these Core updates, the upcoming major release will also include the new default theme, Twenty Twenty.

Want to get involved in building WordPress Core? You can contribute by testing the upcoming release, as well as follow the Core team blog, and join the #core channel in the Making WordPress Slack group.

New Core Committers

Three new committers have been added to the WordPress Core organizational structure. Core committers are individuals who have direct access to the Core development code repositories in order to publish updates to the software.

The new committers are Ian Belanger (@ianbelanger), Timothy Jacobs (@timothyblynjacobs), and Joe Dolson (@joedolson). While Ian’s commit access is specifically for Core themes, both Timothy and Joe have full access to Core. This type of access is only given to individuals who have proved themselves with high-quality contributions and a deep understanding of how the WordPress project works.


Further Reading:

Have a story that we should include in the next “Month in WordPress” post? Please submit it here.

by Hugh Lashbrooke at November 01, 2019 07:28 AM under Month in WordPress

October 31, 2019

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

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

  • We’ve improved the activation and setup process.
  • We’ve fixed a bug that could have allowed an attacker to make you recheck your Pending comments for spam.

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

by Christopher Finke at October 31, 2019 03:59 PM under WordPress

October 30, 2019

WPTavern: Jason Schuller Launches DSKO, a Discovery Network for Creators and Brands

On October 23, Jason Schuller officially announced that his new side project built on WordPress was open to the public. The idea behind DSKO was to solve the issue of discoverability for creators and brands across various networks and websites by consolidating everything into a single space.

The website offers an easy signup process. DSKO currently features 220 profiles, but that number is sure to grow. For now, the site is purely about discovering creators and finding out how to contact or follow them through website or social media links.

The site allows profile creators to set up a bio, image, and even video, such as the one seen on the ArtSnacks profile. It will be interesting to see how people use this new WordPress-based site as a branding tool.

“I’ve been asked what the incentive is to re-visit DSKO after you’ve created a profile,” said Schuller in a Twitter update. “I have features (some nearly finished) in the works which will make that crystal clear.”

Schuller has been active within the WordPress community for over a decade. He originally launched Press75, a WordPress theme shop, in 2008 with a focus on video-centric themes. Like several others in the theme business at that time, he had the fortune of good timing. From 2008 through the next couple of years, theme companies enjoyed little competition and a wide-open market for exploration. However, business growth plateaued after a while.

“I quickly realized that my perception of how to properly launch and scale a project had been skewed by my experience with my WordPress theme business,” wrote Schuller in a history of his theme business. “With Press75, I just built it and they came — a strategy that surprisingly doesn’t work so well the majority of the time for new ventures.”

Unable to duplicate his early success and unhappiness with the direction of WordPress theming, he sold Press75 in 2014. Since then, he has moved onto new ventures such as Leeflets, a single-page website creator on top of WordPress.

“There seems to be growing interest in minimalist single-page website solutions for simple profiles (e.g. Carrd.co, Linktr.ee, etc),” said Schuller. “After building [Leeflets] last year, it occurred to me that while all of these options are great for creating an individual site/page, none of them enable the people and brands who are using them to be discovered beyond organic search via Google or sharing a URL across various other networks. My goal was to see if I could solve that by creating a discovery network for people and brands.”

The inspiration behind DSKO came from projects like existing single-page website builders. Schuller said the grid design and navigation were inspired by the image-sharing site Unsplash while Twitter inspired the profiles. “I wanted it to be extremely quick and easy to browse, find and consume profiles,” said Schuller.

While borrowing concepts from popular projects already in the wild, he wanted to put his spin on them. One interesting custom feature is the ability to connect profiles on the DSKO site to other profiles. For example, a person (creator) can connect his or her profile to a separate brand profile. This helps with the discoverability aspect by allowing visitors to browse connected profiles.

The Technology Running the Network

DSKO is a completely front-end interface built on top of WordPress and shows what can be done without sending users to the WordPress backend.

“Essentially, DSKO boils down to users, profiles, categories, and tags which makes WordPress the perfect framework,” said Schuller. “The functionality was there, I just needed to create a custom front-end experience to manage it all. Most of my recent projects have utilized WordPress this way, and every time I make something new, I borrow aspects from the previous project.” This allows Schuller to bring a project from the concept stage to production more quickly.

The only third-party plugin running on the site is Admin Columns Pro, which makes it easier for Schuller to manage users and content based on custom fields.

For those who create a profile on DSKO, one uncommon feature is that there is no password field. Instead, the site provides a “magic” login link. “Essentially, by removing the concept of a password, I’ve simplified the onboarding process and am validating a real email address (ensuring a real user) at the same time.”

The system generates a unique login token when the user creates a new account. The token is sent as a link to the user email address. The link is used to log into the site. When a session expires or a user logs out, users can get a new link by re-entering their email address.

Currently, the code behind the site is not available to the public. However, Schuller did say that he would consider opening up the platform in the future. Starting from a more mature codebase could help other developers in the WordPress space build interesting projects where similar features are needed.

Beyond DSKO: The Present and Future for Schuller

Schuller is currently on contract with 10up. He primarily works with them on the Microsoft In Culture project. “[It] has been an amazing project to be a part of,” said Schuller. Because the contract is only part-time work, it leaves him enough creative freedom to experiment with ideas like DSKO.

Another creative pursuit is an upcoming WordPress plugin that he’s building along with Phil Kurth. It will allow site owners to map custom domains to any post or page on a single WordPress install. The idea was inspired by his work with Leeflets. “It’s going to be the first WordPress product I’ve been a part of since I sold my theme business in 2014.”

by Justin Tadlock at October 30, 2019 06:32 PM under News

October 29, 2019

WordPress.org blog: WordPress 5.3 RC3

The third release candidate for WordPress 5.3 is now available!

WordPress 5.3 is currently scheduled to be released on November 12 2019, but we need your help to get there—if you haven’t tried 5.3 yet, now is the time!

There are two ways to test the WordPress 5.3 release candidate:

For details about what to expect in WordPress 5.3, please see the first and second release candidate posts.

Release Candidate 3 contains improvements to the new About page, bug fixes for the new default theme, Twenty Twenty (see #48450), and 9 fixes for the following bugs and regressions:

  • Four bugs in the block editor have been fixed (see #48447).
  • Three Date/Time related bugs have been fixed (see #48384).
  • A regression in date_i18n() has been fixed (see #28636).
  • An accessibility color contrast regression for primary buttons when using alternate admin color schemes was fixed (see #48396).

Plugin and Theme Developers

Please test your plugins and themes against WordPress 5.3 and update the Tested up to version in the readme to 5.3. If you find compatibility problems, please be sure to post to the support forums so we can figure those out before the final release.

The WordPress 5.3 Field Guide has also been published, which details the major changes.

How to Help

Do you speak a language other than English? Help us translate WordPress into more than 100 languages!

If you think you’ve found a bug, you can post to the Alpha/Beta area in the support forums. We’d love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac, where you can also find a list of known bugs.

by Jonathan Desrosiers at October 29, 2019 09:16 PM under Releases

WPTavern: WordPress Businesses Should Send Out Press Releases

I have only been on the job for less than two months. In that time, one thing has become abundantly clear. The largest companies in the WordPress ecosystem send out press releases to news organizations such as WP Tavern. Small businesses may send an email with few details. Others send nothing at all.

As a former business owner, I never thought about writing a statement to send to the press. Now that I am on the other side, I see how I missed huge opportunities to potentially get more coverage and build a relationship with the publications within the WordPress arena.

Brian Krogsgard of Post Status, a competing publication of WP Tavern, agrees that companies are missing opportunities. “There are many easy wins in PR that only a few companies take advantage of in our space,” said Krogsgard.

As a journalist, I am here to tell the truth, regardless of who or what the story is about. However, there will always be a part of me that wants to see every businesses within the WordPress space succeed. Therefore, this article is a tutorial that will help businesses within our space get their news items out to the public. Plus, the larger and more successful the WordPress community grows, the more potential WP Tavern has of growing its audience. It is healthy for the ecosystem on the whole.

Because of this symbiotic relationship between the media and product creators, it is important that business owners have a good working relationship with the publications that are writing about them.

What Is a Press Release?

A press release is sometimes called a “press statement” or “news release.” It is an official statement from a company about a particular news item. In a sense, it is a news story itself. There are some publications in the larger world of journalism that routinely publish only the press releases sent to them.

A press release can be in the form of an email, text file, PDF, or even video. Its purpose is to simply let the press know about your news.

Why Should Companies Put Together Press Releases?

On occasion, I get a message that says something along the lines of, “Hey, you’re giving the big businesses too much coverage. How about throwing the smaller folks a bone?” That is a fair question. However, what is often the problem is that this news by a smaller company may not be on a particular publication’s radar.

Enter the press release.

This is where smaller companies should sneak a peek at larger companies’ playbooks. Large businesses often have entire public relations (PR) or communications departments. Sometimes they only have one person in that role. What those PR positions are doing is getting the word out, and they are making sure the publications within the WordPress realm know about their news.

Individuals or small companies need not hire someone for communications with the press. However, at least one person should serve as a representative and handle this role.

There are many things happening in the WordPress world on any given day. Even with a press release, there is no guarantee that WP Tavern or another publication will publish your story. There is a guarantee that they won’t if they do not know about it.

A press release is a way to get your foot in the door and should be a part of any company’s strategy.

“I definitely prefer press packets for product launches, particularly if I can see the key features ahead of time,” said Krogsgard. “Press releases at the time of a news event is fine, but the best company PR is usually done by working with media outlets ahead of a release schedule.”

Whether your news is covered will depend on several factors. The important thing, particularly for smaller businesses, is that you put yourself on a publication’s radar.

The team here at WP Tavern will certainly appreciate your company passing along a press release, but do not limit yourself. Send it to other publications. Give podcast creators a copy. Most will be accepting of any news you send their way.

How To Write a Press Release

Press releases can take a few different forms, but there are some things that should be included with every statement that a business issues.

The following is an outline of a basic press release. You can deviate from the formula a bit, but make sure you include the important information.

Contact Information

Journalists need to know how to get in touch with you or the appropriate representative for your company for potential follow-up questions. In the WordPress world, this will primarily be a name and email address. However, including something like your WordPress Slack username for text chats helps.

Most of all, you should provide the best way to contact you.

This also means being prepared to answer questions if and when you are contacted. Quotes are like gold to journalists. It is often the human element that we are after. The press release opens the door to a conversation.

Story Headline

Journalists get a lot of emails, notes, and so on. A press release should contain a headline that is both factual and grabs attention. It should be a brief summary of what news you want to share. It is no different than writing a blog post. In our fast-paced culture, you only have a moment to let someone know that your story is worth reading. Avoid headlines that look like click-bait, but tell why your news is newsworthy.

Depending on the news, a sub-headline is often an extra piece of info that helps. A quick sentence or two that expands on the headline is sometimes necessary to fully explain why the press should continue reading.

Dateline

A press release should always include a dateline. There are two types of datelines. The first type is the date of the press release. This means journalists can move forward with the story.

However, you can also put a future date in the dateline. This is common when you want to prepare publications for an upcoming story that you don’t want to publicly announce yet. This is called requesting a news embargo, which means that publications should sit on the story until that particular date.

Introduction or Lede

A lede is the opening paragraph of a story that answers the five W’s: who, what, when, where, and why. This is the moment you should let journalists know what the story is about. Get to the point in answering those five questions.

Body Copy

After introducing the story, you should stick to relevant information about the story. Any data or details that are important for the story should be included.

“Another thing that’s really helpful is screenshots, or short video overviews, and other brand assets that can provide visual appeal to go alongside a story,” said Krogsgard of writing a compelling press statement. “Do you have a revamped interface? Well nicely packaged visual materials really help sell that to convince me that it’s worth covering — and also to use in the article myself if I do write about it.”

Company Bio or Info

Last but certainly not least is including a section that provides details about your company. Consider it a short biography.

One of the worst things for a journalist covering a story is spending hours trying to dig up your company’s information online instead of working on the story. Providing that information up front is a huge help to the press. It also ensures we are getting your information correct.

by Justin Tadlock at October 29, 2019 07:49 PM under Opinion

October 28, 2019

WPTavern: Not Attending WordCamp US 2019? How to Watch From Home

For those of you unable to attend WordCamp US at St. Louis, Missouri, this weekend, the event will be available for live streaming. The conference runs from Friday, November 1, through Sunday, November 3. Friday and Saturday’s regular sessions, which do not include workshops, will be streamed.

While previous events like WordCamp US 2018 have always been available to watch for free, they required you to sign up before viewing. This year’s event is open with no such restriction. You can simply pick a streaming video and watch.

There will be multiple livestreams running simultaneously based on the room the parallel sessions are happening in. The WordCamp organizers have already set up the livestream videos with YouTube. By going to the Friday livestream or Saturday livestream page, you can set a reminder for any particular room you want to watch via the YouTube embed.

There are many sessions planned for the camp schedule. The tough problem is going to be figuring out what to watch with overlapping streams from three rooms. All times on the schedule are in Central Time US (CST).

If you have a question for a particular speaker, WordCamp US will have a volunteer social media team keeping an eye on the following hashtags on Twitter. The volunteers may ask your question if time permits for the session.

Watch Previous WordCamp US Speakers

If you can’t wait for this year’s sessions, you can view the 2018 sessions from WordPress TV. It is a good way to get yourself in the mood for this year’s event and to look at how much WordPress has changed in the past year.

One of the most interesting WordCamp videos is always the “State of the Word” presented by Matt Mullenweg, co-founder of WordPress. You can watch last year’s video below. What do you expect to see in this year’s talk?

How Will You Attend WordPress US 2019?

Are you planning on attending in person this year? Or, will you be among the many who are watching from home, the office, or elsewhere?

Unfortunately, WP Tavern will not be able to cover the event in person this year. However, we will be watching from home like many of you. Feel free to drop your recommended must-watch sessions in the comments.

If you are unable to attend or watch via livestream, the videos will be available on WordPress TV and YouTube to watch at your leisure.

by Justin Tadlock at October 28, 2019 05:18 PM under wordcamp us

October 25, 2019

WPTavern: Automatic Image Alt Tags and More with Image SEO

I had the opportunity to test the Image SEO plugin over the past week. Image SEO is a plugin that connects to an accompanying online service that processes images uploaded to a WordPress installation. The plugin can automatically rename file names, create alt tags for screen readers, and optimize images for Pinterest.

The plugin is one half of a Software as a Service (SaaS) product. To use the image processing features, you must sign up for an account on the Image SEO website. Currently, users are provided credits for processing 10 images for free to test out the service. After that, image processing requires a monthly or annual fee based on a set number of images. Pricing starts at 4.99€ per month for the lowest tier and ranges up to 59.99€ for the enterprise option. The service also offers one-time purchases for a given number of images.

The Image SEO team went public with their plugin and service in April and have been refining the product since. Aurelio Volle, co-founder and chief marketing officer, said a big part of the process was removing unnecessary features in favor of developing the core product and creating new features.

“[Thomas Deneulin] asked me in December 2018 to come and work with him on a project,” said Volle. “They had developed an Image SEO auditing tool but they were not able to sell it. I went through the product, cut so many features, created a new narrative, asked for reviews, etc.” Volle’s work primarily centered around identifying user needs and figuring out what they would be willing to pay for the service.

Volle said they use all the major facial recognition APIs available on the market, but they are not willing to share their secret recipe at this time. “We process the results with an algorithm we created to provide our users with the most relevant data possible for alts and names,” said Volle. “We are still working on the algorithm. The results should be more and more accurate in the future.”

When I come across a new WordPress plugin or theme with the term “SEO” in the name, I cringe. It is used so often as a marketing term that it has lost meaning for me. I’d like to ignore it like a bad commercial on TV, but it’s there in the name. I know it is probably smart to use it for marketing purposes. Despite my misgivings about the name, I gave Image SEO a serious look and found that I liked its potential.

Would I use the plugin? Probably not on a personal blog where I control all of the content. I am a stickler for controlling every aspect of my own content. I am not within the target audience for the plugin.

However, I would use the plugin for a large site with multiple writers. It would work well as part of a quality control system.

My primary interest was in how well Image SEO auto-created image alt tags. I have little interest in what search engine benefits the plugin might provide. I was more interested in how it could help describe images for users who use a screen reader. A plugin that can accurately add alt tags for users on assistive technologies could be useful in an environment with multiple writers. I have worked with clients in the past where such a plugin would have been a welcome addition to the site.

This is not to say the plugin isn’t useful for single-person sites or those with a small group of writers. It depends on whether the individual site could use it. If needed, I would recommend the Image SEO plugin to anyone.

The free service is currently only available in English. If you need alt tags in another language, you will need to go with a premium plan. This would be better opened up to all languages. It is hard to vouch for the accuracy of non-English alt tags when they are not available in the free plan.

How Well Does the Plugin Work?

The plugin gives you the option of automatically renaming image file names and setting alt tags. I would recommend using both of these options. File names like IMG_2019_345.jpg do not tell search engines or users anything about an image, and the automatic alt tags are the most useful feature of the plugin.

The plugin doesn’t make you work to get results. I tested out 60 images (10 free plus an extra 50 provided by the Image SEO team). On the whole, the results were fairly accurate.

However, not every image passed the accuracy test. Take note of the following screenshot with an image of two people standing at the end of some hallway or structure. I’m not exactly sure what they are in, and neither was the service. The resulting alt tag was “Archives – A very dark water – Art.”

A rare inaccurate alt tag added by the plugin.

I had to throw a few curveballs at the software to see how it stood up. Technologically, humans are not at the pinnacle of artificial intelligence and recognition software, but we are constantly improving. The service will undoubtedly improve over time with anything thrown at it.

My biggest gripe with the plugin is that it automatically prepended the post/page title to the front of every image’s alt tag when uploading via the post editor. There is no reason to do this. The post title often has nothing to do with describing the image for screen readers. I could see this being useful for product images on an eCommerce site. This feature should be opt-in. It would quickly become irritating to manually remove the post title from each image.

The plugin also allows you to add a description, ID, and other elements for use with Pinterest. I also could not figure out how to get the attributes to show for my images on anything but attachment pages. It was unclear how this feature worked on the front end of the site. Admittedly, it did not bother me because I had no interest in this aspect of the plugin.

Bulk Optimizing Images

Bulk optimizing cat pictures, the most useful type of images for internet usage.

The Image SEO plugin allows users to bulk optimize images across the entire site. The bulk optimization tool also allows you to preview the results before deciding on whether you want to make the changes. This can be an extremely powerful tool if you are running a site with a lot of old images with missing alt tags.

The biggest thing to watch out for is that running this tool can eat up a ton of image credits.

A fair word of warning: even the optimization preview uses image credits. I hope this limitation is addressed in some way because it is not clear up front. Using the feature can catch you off guard and drain money if you simply want to preview the optimization prior to deciding whether you want to go through with the changes.

The textual description on the bulk optimization page may even lull you into a false sense of security. It reads, “No worries, you can get a preview of the results before going further.” Fortunately, I was running this on a free account and did not lose real dollars over it.

It will take a bit of time to run, depending on the number of images, but the bulk optimization tool works flawlessly.

How Does the Code Stack Up?

I see little reason for concern with the code. The developers have a clear architecture and hierarchy. It is forward-thinking and uses modern PHP practices.

The one caveat is that the plugin does not use the core WordPress HTTP API for handling remote requests to their service. Users without cURL enabled on their site would be unable to use the plugin, which is likely not an issue for most people. The team said they went with a custom implementation so they could easily deploy their project on other PHP projects and not be limited by tying the code to WordPress. They have reported no problems with customers thus far.

The Final Verdict

There is a lot to like about the plugin. If you are in it for the SEO benefits, having a system in place to automatically rename ugly image file names and create fairly accurate alt tags, you may find this plugin useful.

The plugin is not 100% accurate by any means, but you won’t find that level of accuracy anywhere. With the 60 images I threw at it, it performed well. The pricing model also looks fair for what the service offers.

by Justin Tadlock at October 25, 2019 07:53 PM under review

October 24, 2019

WPTavern: GoDaddy Launches eCommerce Hosting Plan in Partnership with WooCommerce

GoDaddy launched an eCommerce tier for their managed hosting plans on October 22. The new tier launched in partnership with WooCommerce and offers over $1,500 of commercial extensions and themes for setting up an online shop.

The eCommerce plan utilizes GoDaddy’s onboarding process available with all managed hosting plans. The system automatically sets up the user’s online shop based on answers provided during onboarding. This process eases the burden of setting up a fully-functional eCommerce website for users who are new to working with WordPress and WooCommerce.

GoDaddy also sets up and maintains a free SSL certificate, a necessity for handling secure payments, as long as the site continues using their managed hosting. This service is available with some of their other managed hosting plans but not the lower tiers.

It makes sense that GoDaddy would try to carve out a slice of the WooCommerce pie now that the plugin is powering 30% online shops around the world.

Neither GoDaddy nor Automattic, the parent company of WooCommerce, has released the details of what the partnership entails. Aaron Campbell, GoDaddy’s head of WordPress Ecosystem and Community, confirmed the two companies did have an official partnership.

The available list of bundled WooCommerce extensions includes the following, but it is unclear what other extensions are available (official extensions number in the hundreds). Campbell said that some extensions are still rolling out on the platform.

  • Advanced Notifications
  • WooCommerce Brands
  • Checkout Field Editor
  • WooCommerce Deposits
  • Follow-Ups
  • WooCommerce Points and Rewards
  • WooCommerce Pre-Orders
  • Product Add-Ons
  • Product Vendors
  • Min/Max Quantities
  • Product CSV Import Suite
  • Memberships
  • Bulk Stock Management
  • Subscriptions
  • WooCommerce Bookings
  • UPS & USPS Shipping Methods

There are a few popular add-on plugins in the mix, but many store owners could need to purchase additional extensions to build their ideal online shop. Setup costs could be steeper than some customers anticipate. Official WooCommerce extensions can range between free and $299 per year.

The plan also makes several premium Storefront child themes available to customers. Like extensions, there is currently no public list of which themes are included with hosting.

The new eCommerce tier runs on the same managed hosting system as other plans, which all allow site owners to run WooCommerce.

“From an ease-of-setup standpoint, eCommerce site owners will definitely benefit from the simplified onboarding process that helps them through setting up their store,” said Campbell. (Read our review of GoDaddy’s onboarding process.)

Aside from potential help from the onboarding process, the value-add for going with the eCommerce hosting tier is directly tied to the bundled WooCommerce extensions and themes. Without an official list available, it is hard to speculate whether the upgrade from the next lowest tier, Ultimate, is worth it. The Ultimate plan runs $5 cheaper each month ($60/year). It is virtually the same plan minus the WooCommerce extensions. Plus, you can run a second website on Ultimate.

Shelling out the extra dollars for the eCommerce tier comes down to personal choice. Whether GoDaddy is offering an extension or theme that would cost more than the $60 in savings each year should play heavily into that decision. A single commercial extension or theme will likely exceed that cost.

by Justin Tadlock at October 24, 2019 10:23 PM under woocommerce

WPTavern: Possibilities of a CMS in the Spatial Computing Future

In my role at WP Engine, I have the opportunity to travel the world serving as an ambassador for new and interesting ways of using WordPress. I was recently in Raleigh, North Carolina, at All Things Open talking about the possibilities of a CMS in the spatial computing future. This was a lofty topic for 45-minute talk, so I thought I’d share a more in-depth look at a new way to build Extended Reality (XR) experiences with WordPress using a headless approach.

The Headless Craze

I think many of us see headless primarily as a way to make our sites faster and decouple them from the CMS that controls our content. While true in some cases, this is probably not the most compelling lens to view this concept in when we consider what this means for native apps and Augmented, Virtual and Mixed Reality, more broadly defined as Extended Reality.

In order to understand how WordPress can power XR experiences we must take a step back and understand what key features developers and designers desire in interactive applications.

What is the core appeal of a CMS?

Zooming out and looking at what a CMS is at its core highlights a few key features that make my future-looking imagination race. A CMS can be broadly defined as:

  • post/page data
  • meta associated with data like users and posts
  • a secure user system
  • a rich content editor
  • extendability through plugins/themes/etc. 

WordPress shines brightly across this entire spectrum and, pairing that with open-source flexibility, you can build whatever you can dream. User systems and content are key requirements in interactive and media-rich applications such as XR. An open-source solution like WordPress gives developers greater freedom and more control over the source code and the software meaning they can tweak it to perform how they want, unrestricted by licensing. Another level of freedom was achieved when the new Gutenberg editor was merged into WordPress 5.0, further democratizing the power of the world’s most popular CMS.

Possibilities with the New WordPress Editor

We’ve spent a lot of time thinking through the front-end benefits in a unified way to control markup using blocks. I think one aspect of the new WordPress editor that has largely been overlooked in front-end development is the data structure of the blocks themselves. 

Pulling data via the REST API typically returns the final markup of a post. This makes it hard for non-html based applications to parse or use the data. You can certainly sanitize the final output, but it doesn’t provide confidence going forward and often removes important context.

Before a post renders markup in the front end, there are valuable attributes used to determine that final markup. These options are often just as useful to a non-browser application as they would be for a browser-based experience; it’s just a matter of making sure the content is sanitized for your purposes.

Let’s imagine we have an audio block with the attributes of src, loop, autoplay, etc. Those attributes are just as important to a non-browser application that expects the same decisions to be made at runtime. By querying a Gutenberg post, one can pull the audio file and also the attributes of how it should behave, leading to the application being unified with browser behavior.

In the not too distant future, the physical and digital worlds will continue to blend together. As younger generations increasingly interact in ways other than through screens, keyboards, and mice, we should probably begin to create content with that future in mind. Do we really want all that markup saved? Is it even important? If it is, maybe that attribute should be saved, keyed, and exposed via JSON. Markup is really only useful to the front-end rendering.

Sound-Only AR Blog Reader Concept

Bose is pioneering an interesting approach to augmented reality. They have quickly been updating their product offerings to include 6 Degrees of Freedom (6DoF) sensors inside their headphones and sunglasses to power sound-only AR experiences. This gives us three important mechanics for XR; 6DoF head tracking, private sound experiences, and gesture recognition. I decided to use this technology to illustrate the potential in the data structure of Gutenberg blocks. 

photo of Bose AR sunglasses

Using the Gutenberg Object Plugin open-sourced and built by Roy Sivan and contributors, I was able to expose the attribute data in a REST friendly way. I was then able to shift my focus on building mechanics and an MVP application to read a blog without sight. The application puts buttons in 3D space around the visitor. To the right, a “Next Post” button. Directly in front of them, a post body button that plays back a reading of the post data. The voice-to-text technology was made possible by using the Amazon AI Plugin for WordPress

When double-tapping on the frame of the glasses while facing the post body, a voice prompts the visitor to use a nod gesture to playback the post audio. Within 24 hours of sketching the idea, I had a working proof of concept and I attribute that largely to not having to figure out how to prepare my data. Blocks and JSON did it all for me!

The following image is a sketch of the concept along with the final product. 

sketch of Bose AR blog reader.
final design of Bose AR blog reader prototype.

Blocks in Traditional Augmented Reality

Spatializing blocks was interesting to me, so I built another proof of concept that demonstrates how 3D prefab objects in a game engine can be associated with 2D blocks on a webpage. Below is a screenshot of a Gutenberg post rendered around my hotel room.

Example showing relation of website and AR experience.

While a literal 1:1 representation of a webpage in AR illustrates that we can couple our design decisions in and out of a browser, I think we can go a step further. A block can represent many things; so why not use custom blocks to abstract 3D ideas?

Non-Standard File Types and Abstracting 3D Objects

HTML has a finite list of file types allowed out of the box. That is not to say we are limited to only those options. WordPress is flexible enough to extend to others by simply adding allowed types. 

I’ve been building a music game called Broken Place that allows players to interact with real-time music in AR. The sound engine is running an open-source programming language called Pure Data (PD) that has a very specific file type that only it can read. In WordPress, I am managing post content in a custom post type called “songs” where players can upload their PD patch. Players simply log into the website as a contributor user role and upload their patch. The song post is queried from the native app and the patch is loaded. 

An Augmented reality synthesizer on a beach

The content submission options open the potential of allowing users to design their own layouts for music interfaces. Imagine in the graphic below, that each of the 3D knobs pictured were associated with a Gutenberg block called “Knob” and each of those knobs have an attribute associated with the sound message being sent to the audio engine. Content creators could determine how the sound messages are mapped in a grid using the column block. When you nest blocks within a column block, the REST response also nests the objects as children of the block and logic can be applied using the JSON structure.

A synthesizer interface in VR

Narrative Design Potential

In post data, we are telling stories; some informational, some personal, but they serve as thought capsules. I dream of a future where posts are much more than just text and images on a screen. Spatializing content provides amazing opportunities for narrative design. I’ve seen this potential represented in the AMP Stories and hope that structure could help inspire stories told within 3D physical spaces. 

image of AMP Stories block

Imagine the same post structure of AMP stories, but for 3D spaces that you can drop in your home or office. Mozilla Hubs is leading the charge in collaborative XR spaces open to all devices and I see interesting potential in combining a WordPress narrative design for Mozilla Hubs to allow shared storytelling experiences. 

I’m excited to continue exploring new ways of using headless WordPress to power XR experiences and help usher in an entirely new era in how we interact with and create digital content.

by Anthony Burchell at October 24, 2019 01:00 PM under Development

October 23, 2019

WPTavern: Curated List of Featured Themes Coming to the Theme Directory

Themes are the face of WordPress.

Like it or not, the average user is more interested in what their site looks like when they first begin using the platform than what the thousands upon thousands of plugins can do for them. Perhaps that’s unfair to plugin developers — there are more exciting things happening in the plugin world right now — but it is what it is. Themes are visual, and they are what sell the platform to people who just want a site that looks good.

While WordPress is massive, I can’t help but think that it is losing out on more users because such users are not always presented with solid options for their site’s design out of the gate.

Most of the default Twenty* themes are good introduction themes for first-time users, but they are not to everyone’s tastes.

I’ve worked with numerous users who were setting up their first WordPress site over the years. Today, many similar people use a pre-installed script to launch WordPress from their web host. Much of the initial work is done for them. Often, they are unfamiliar with the WordPress community and what is available out there. They don’t know how to find, buy, and install a theme from a reputable commercial theme business.

What they do is head over to the add-new theme page in their WordPress admin, and they are presented with the “Featured” themes list.

Featured themes list in the WordPress admin.

Sometimes a user gets lucky. Other times it is a crapshoot.

For several years now, the official WordPress theme directory has shown a random list of themes from the 7,000 or so themes available.

While themes in the directory undergo a strict code review, there is no quality control on design. That is a good thing because it allows designers at any level to contribute to the platform. Open source communities should always have an open contribution process, and themes are one area that many developers get started with WordPress.

However, the term “featured” implies that there is something particularly special about those themes. They should be distinctive in some way. They should be a cut above the rest. That’s not what we have today, and it’s not what has been presented to users for the last half decade.

This is a huge missed opportunity.

Today, web hosts have started taking over this role. Whether it is GoDaddy’s onboarding process with their custom Go theme or WP Engine with the Genesis framework, hosts are doing the job that WordPress.org couldn’t manage to get together.

How Featured Themes Became Random

In the 2013-2014 era, the WordPress theme review team (TRT) was trying to find a way to get more people to contribute to the review process. By that time, themes had become big business and more theme authors were submitting themes to the directory. The team implemented a program that allowed the top reviewers each month an opportunity to pick the featured themes.

The program’s original intention was for reviewers to select a theme they liked during reviews. The best-laid plans…

The problem was that nearly all of the top reviewers were theme authors. Their incentive for doing reviews was to get their themes featured. Big theme businesses stood the most to gain. They could put multiple reviewers to work who would knock out review after review.

It wasn’t a level playing field. Even if it had been, the featured themes list was being taken over by business interests via a pay-to-play system. Those with the most resources would always come out on top.

Theme companies featured on WordPress.org were already raking in cash at that point. Zerif Lite, a theme in the popular list just two years later in 2016, reported north of $100 thousand per month from upsells. Even at one-tenth of that number, it is enough incentive for any businesses to play the system to their advantage.

In April 2014, the program was shut down because reviewers were choosing their own themes and repeatedly featuring the same themes. The featured list then began showcasing a new set of random themes every day.

Randomly-chosen featured themes levels the playing field for every theme author. However, it doesn’t showcase the best that WordPress has to offer.

A Curated List of Themes Coming Soon

The TRT decided in their team meeting yesterday on a change in how featured themes are handled. Denis Žoljom wrote in the meeting notes that the team would try a curated list for a few months to see how the WordPress community responds.

The current plan is to hold a meeting every two or three weeks where people can recommend themes to be featured based on their design, code quality, and potentially other merits. The team reps would pick from the recommendations.

The reps are still deciding how to best handle any foreseeable issues before the new program begins. The team was divided over whether there should be a curated list and what the criteria might be for such a list. The biggest concern is over the potential for abuse and conflicts of interest. These and other problems will be something the reps will need to figure out.

The general consensus seems to be that featured themes would not have any upsells or other commercial aspects. That could limit the pool of potential themes considerably because many theme authors have some sort of commercial interest in having their themes hosted in the official directory.

I welcome the change from seeing random themes every day. I want to see the diamonds in the rough that get buried beneath big business and themes that dominate the landscape in the separate popular list. I want to see theme authors who are building unique themes front and center.

The big question is whether this change will help users find that perfect theme for their sites.

by Justin Tadlock at October 23, 2019 06:30 PM under wordpress themes directory

October 22, 2019

WordPress.org blog: WordPress 5.3 RC2

The second release candidate for WordPress 5.3 is now available!

WordPress 5.3 is currently scheduled to be released on November 12 2019, but we need your help to get there—if you haven’t tried 5.3 yet, now is the time!

There are two ways to test the WordPress 5.3 release candidate:

For details about what to expect in WordPress 5.3, please see the first release candidate post.

Release Candidate 2 contains improvements to the new About page, and 10 fixes for the following bugs and regressions:

  • Three bugs contained in RC1 within the block editor have been fixed (see #48381).
  • A bug has been fixed where links within comments did not get the correct rel attribute (see #48022).
  • The scaled- string has been added to file names when images are downsized if determined “BIG” (see #48304).
  • The buttons group layout has been fixed in IE11 (see #48087).
  • A bug with boolean false meta values in the REST API has been fixed (see #48363).
  • The error code encountered when the native PHP JSON extension is missing has been adjusted to be unique (see #47699).
  • When uploading files, HTTP error code support has been expanded to include all 5xx errors (see #48379).

Plugin and Theme Developers

Please test your plugins and themes against WordPress 5.3 and update the Tested up to version in the readme to 5.3. If you find compatibility problems, please be sure to post to the support forums so we can figure those out before the final release.

The WordPress 5.3 Field Guide has also been published, which details the major changes.

How to Help

Do you speak a language other than English? Help us translate WordPress into more than 100 languages!

If you think you’ve found a bug, you can post to the Alpha/Beta area in the support forums. We’d love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac, where you can also find a list of known bugs.

by Francesca Marano at October 22, 2019 08:08 PM under Releases

WPTavern: Gutenberg 6.7 Introduces Storybook and Gradient Backgrounds

The Gutenberg team released version 6.7 of the Gutenberg plugin last week. The announcement post listed a little over three dozen bug fixes and several enhancements to existing features. The most notable features included in the update are Storybook support and gradient backgrounds for the button block.

All of the bug fixes included in Gutenberg 6.7 were ported to the first WordPress 5.3 release candidate. WordPress 5.3 is expected to be released on or around November 12.

This release also includes updates for experimental features, which can be enabled via the “Experiments” screen under the “Gutenberg” admin menu. The experimental nav menu block received alignment fixes and now only shows nested menu items when the parent item is selected.

First Implementation of Gradient Backgrounds

Adding a gradient to a button block.

Version 6.7 introduces a new gradient background feature for the button block. The long-term plan is to make gradient backgrounds available to other blocks. The button block is a good testbed for the feature before moving forward with other blocks.

The problem with introducing gradients is that the team didn’t go far enough with theme support early in the process. This is par for the course with Gutenberg development. New features are implemented without knowing exactly how themes fit into the picture. It is only after the feature is implemented that theme support is patched on. Often, this leads to theme authors scrambling to keep up. It would be better for the feature and the theme support to be developed in tandem with feedback from more theme authors in the process.

At this stage, gradients are useless in most theme designs, which have custom color schemes that are unlikely to match Gutenberg’s gradient colors. At best, the gradients look OK with stock WordPress. At worst, they’re garish and an assault on the eyeballs. Starting with theme support would have at least offered theme authors a chance to make this a better experience for users.

There is an open pull request on GitHub to introduce theme support. Theme authors may be able to add custom gradients by version 6.8.

In the future, this should be a powerful feature that allows users via custom theme gradients to create some unique designs for their posts and pages. For now, it is only in the “fun experiment” stage.

Storybook for Developers

Gutenberg button component stories.

The Gutenberg development team introduced Storybook support for Gutenberg. Developers can test Storybook support via the Gutenberg Storybook page.

Storybook is a development and testing environment for user interfaces. It allows developers to create, test, and showcase components in an isolated environment apart from the primary platform or application. This essentially allows developers to build components without the dependencies of the platform before porting them over. A story within the Storybook system represents the visual state of a component. Storybooks are collections of stories.

The Storybook support uses the Knobs add-on, which allows developers to edit props dynamically via the Storybook UI. The dashicons component is a good place to test this out. Currently, it accepts values for the icon name, color, and size.

Marcus Kazmierczak, a principal engineer working on special projects at Automattic, wrote a tutorial and shared a YouTube video on how to create a story for Gutenberg components.

For developers wanting to be involved, there are many components that still need a story.

by Justin Tadlock at October 22, 2019 05:17 PM under gutenberg

October 21, 2019

WPTavern: Coming in WordPress 5.3: What is the PHP Spread Operator?

On October 9, Juliette Reinders Folmer announced on the core WordPress blog that WordPress 5.3 will use the spread operator. The spread operator was one of the new features made available in PHP 5.6, a version released in 2014.

WordPress abandoned PHP 5.2 – 5.5 with the release of WordPress 5.2. This means the core team can start taking advantage of relatively new features, or at least 5-year-old features. For plugin and theme developers who maintain the same minimum version support as WordPress, they can also start exploring this feature.

PHP 5.6 introduced two new methods of using the spread operator:

  • A Parameter in variadic functions.
  • Function argument unpacking of arrays and traversable objects.

This feature shouldn’t be confused with unpacking inside of arrays, which is only available in PHP 7.4.

The change in WordPress 5.3 is not expected to affect themes and plugins except in the rare case that a developer is overloading the wpdb::prepare() method. Developers should read the announcement post to dive into what code has changed in core WordPress.

Developers should check their plugins and themes with debugging enabled in a test environment to check for any notices. There may be cases where the function signature doesn’t match.

The spread operator is a tool, and like any tool, it should be used when it makes sense. Because it is a language construct, it does offer speed improvements over traditional methods of using a PHP function.

The remainder of this post will dive into the using the spread operator to help teach WordPress developers how it works.

Creating a Variadic Function with the Spread Operator

Variadic functions are PHP functions that accept a variable number of arguments passed in. They have existed for years. However, they can be confusing without solid inline documentation from the developer who wrote the code.

In the past, developers would need to use the func_get_args(), func_get_arg(), or func_num_args() functions to work with variadic functions. In PHP 5.6, developers can use a parameter such as ...$var_name to represent a variable number of parameters.

Take a look at the following multiplication function. It will accept one, two, three, or even more numbers and multiply each.

function tavern_multiply( ...$numbers ) {

    $total = 1;

    foreach ( $numbers as $number ) {
        $total = $total * intval( $number );
    }

    return $total;
}

If we use that function as shown below, it will display 1024:

echo tavern_multiply( 2, 4, 8, 16 );

This is simple to do with the spread operator.

Unpacking Arrays as Function Arguments

PHP 5.6 allows developers to unpack arrays and traversable objects as function arguments. To explain how this works, look at the following multiplication function for multiplying three numbers together.

function tavern_multiply_three( $x, $y, $z ) {
        return $x * $y * $z;
}

Generally, you would need to manually pass the $x, $y, and $z parameters directly. However, there are cases in real-world projects where the data (numbers in this case) would already exist within an array such as:

$numbers = [ 3, 6, 9 ];

Prior to PHP 5.6, you would need to split that array and pass each value to the function as shown in the following snippet.

echo tavern_multiply_three( $numbers[0], $numbers[1], $numbers[2] );

With PHP 5.6, you can simply pass in ...$numbers like so:

echo tavern_multiply_three( ...$numbers );

Both methods work and will output 162. However, the second method is easier to read and is less prone to typos because it uses fewer characters.

Comparing Code Changes in WordPress

For a more practical example, let’s compare a real-world code change in WordPress and how using the spread operator improves the code over other methods. We can do this by looking at the core current_user_can() function.

First, see how the code is written in WordPress 5.2 and earlier.

function current_user_can( $capability ) {
    $current_user = wp_get_current_user();

    if ( empty( $current_user ) ) {
        return false;
    }

    $args = array_slice( func_get_args(), 1 );
    $args = array_merge( array( $capability ), $args );

    return call_user_func_array( array( $current_user, 'has_cap' ), $args );
}

Without looking at the full function, most developers would assume that $capability is the only accepted parameter for this function. However, the function accepts a variable number of parameters. Previously, WordPress had to use func_get_args() to get all the parameters, slice the array, and merge everything back together.

It is inelegant coding, but it got the job done for old versions of PHP.

Now compare what the same function looks like in WordPress 5.3. First, you can see the ...$args parameter clearly in the function statement. You can also see there is no need for the clever coding to pass along a variable number of arguments.

function current_user_can( $capability, ...$args ) {
    $current_user = wp_get_current_user();

    if ( empty( $current_user ) ) {
        return false;
    }

    return $current_user->has_cap( $capability, ...$args );
}

The change in WordPress 5.3 is a massive improvement in readability in comparison to earlier versions. It is nice to see these types of improvements to the core code.

by Justin Tadlock at October 21, 2019 04:43 PM under php

October 18, 2019

WPTavern: Product Reviews in the WordPress Ecosystem: Honesty and Genuine Experiences

I don’t write fluff pieces. I call ’em like I see ’em. If your project is a dumpster fire, I’m going to say it’s a dumpster fire.

Whenever someone comes to me in hopes that I review their product, I give them some form of the preceding paragraph. It doesn’t matter if it is a plugin, theme, web host, or some other product. What matters is that I write my review with honesty and offer my genuine opinion about the thing they built.

I rarely read most product reviews in the WordPress community anymore. Far too often the reviewers are not offering their genuine experience with a product. You get something like “XYZ is a multi-purpose theme that is built for…yadda, yadda, yadda…” Yawn. It reads as if publishers are trying to sell a product. If you dig deep enough, you realize that is what many are doing (hello, affiliate links).

I also have it on good authority (I’ve seen some of the email exchanges) that a lot of money exchanges hands behinds the scenes for reviews. Most of the time, publishers are not writing a review of the product. They are selling you their dreams of a continued working relationship with the product maker.

There’s nothing wrong with affiliate links if a publisher loves a product. There’s no issue with paid reviews if such reviews are honest experiences with the product. There’s also no problem with writing a love letter to your favorite plugin and theme with no financial incentive.

However, what I generally see are shallow reviews at best. Many, dare I say most, reviews are not genuine. They are certainly not real journalism.

The best place to find genuine reviews are from the user ratings on WordPress.org, assuming the plugin or theme is available there. Users tend to not hold back, particularly if their review is negative.

It is tough as an artist (yes, I consider all programmers artists). I’ve been on the receiving end of negative reviews of things I’ve built. You learn to grow thick skin after a decade of putting your art out into the world.

When I was younger, I tended to be a bit hot-headed whenever I got a bad review for something I had built. After pouring my heart and soul into a project, it cut deep to read a negative review. I wasn’t always the most gracious receiver of such reviews. There are responses I wish I could take back. Looking at those times now, I wish I would have been more open to hearing what the reviewer was saying. Even if I disagreed with every word, it did not mean that the person wasn’t providing me something of value with their review.

With age and I hope a little more wisdom, I usually give myself time to think about what someone is saying before I respond. I allow my thoughts time to develop and mature. Often, it turns out, critical reviews are far more helpful in making better art than all the five-star ratings in the world.

When I took the writing position at WP Tavern, I wanted to bring a review format to the website that is missing within our community. I wanted to do reviews based on my experience as both a user and a developer. I admit that I was not prepared for a negative reaction to what was in part a negative review. As always, I gave myself time to read and think over what some commenters were saying. This article is my response.

Reviews Are About Personal Experience

One of the things I learned early on as a writer is to not second guess myself, especially when writing an opinion piece. It is not good for one’s mental health.

An opinion piece is about the moment. It is raw. It is passionate.

Writers’ opinions may change over time. They are human and have the freedom to change their minds later. However, an opinion-based story should reflect that single moment in time and what the author’s feelings are at that moment.

There’s a common (and wholly incorrect) notion that journalism should be nothing more than facts, that subjectivity is not allowed. Throughout the several hundred years that some form of journalism has existed, there has never existed a point where the whole of the field was objective. Even in the early days of U.S. journalism, my country’s founders published articles in newspapers to sway public opinion on ratifying the U.S. Constitution.

Reporting, which is one form of journalism, does not represent the whole. It is the most objective form of journalism in which the reporter simply tells the news to readers. We certainly do plenty of that at the Tavern. However, other forms like editorials, features, and reviews are as important. These forms take a different approach.

Reviews are the unwieldy beasts of journalism. They are hard to tame. They’re not always pretty. However, they should always be true to their nature. They can bring out angry hoards of fanboys down on the critic (ever read the comments of a critical review of an Apple product?).

Honest reviews are about personal experience. If a film critic dislikes the latest movie in the Marvel Cinematic Universe, it is that critic’s duty to write about their experience watching it. The reviewer has an obligation to not huddle in fear of Iron Man fanatics who will inevitably send ad hominem attacks his way. Holding back one’s opinion within a review is the ultimate sin of a critic.

Like with any products or forms of art, WordPress plugins and themes are not immune to this same criticism. Such criticism is even more important when the software costs money and potential buyers may be looking for genuine reviews.

Disagreement with a review is OK. Disagreements are more interesting than everyone nodding their heads in unison. What a boring world it would be if we were all in agreement.

However, I did want to address comments on my previous review about it being unfair, specifically the unfairness of my personal experience. It’s that personal experience that makes a review genuine. Not everyone’s experience will be the same. One person’s one-star rating does not discount another’s five stars. They are equally valid because they represent different experiences.

Developers Are Users Too

There’s a common idea in the WordPress community that developers are not users, that our experiences don’t count because our knowledge and skillsets are more advanced than the average. At first glance, the argument makes some sense. However, after giving it some serious thought, I reject the notion.

Martin Scorsese can’t criticize films because he makes films. There’s no way he can feel what the average person does at the cinema.

Beyoncé can’t judge a music competition because she’s a singer. She’s not listening with the ears of a normal human.

Wait; that’s not right, is it?

Why is it that developers’ opinions are so easily discounted when they are critical of user experience? I use WordPress, different themes, and various plugins every day. I use those that make me happy or serve essential functions. I don’t necessarily pick plugins out because I like their code. I use them because I too am a user in every way that a non-developer is a user. Having the ability to articulate the problems from a different viewpoint doesn’t change that.

In many ways, developers can provide more useful software reviews than “average” users because we have some past experience solving the same problems.

Offering a Genuine Review

One thing you will always get from me is honesty. When I review a WordPress-related product, you will always read about my personal experience.

I was fully prepared to say that the gloves are coming off, but the gloves have always been off. I will never hold back criticism. I’m always ready to pile on the praise too.

But, I won’t lie to you.

Who’s ready to have their theme or plugin reviewed next?

by Justin Tadlock at October 18, 2019 04:42 PM under Opinion

October 17, 2019

WPTavern: Chilean News Publication El Soberano First to Launch on Newspack

El Soberano homepage on the Newspack platform.

Nine months after the announcement of Newspack by WordPress.com, the Chilean news site El Soberano became the first publication to launch on the new platform. On October 16, the small news team relaunched with a fresh design powered by the Newspack theme and its newsroom-focused plugins.

Newspack is a project of Automattic, the parent company of WordPress.com. Its goal is to work with leaders in the news industry to create a platform that brings WordPress to more newsrooms. This year, the team behind Newspack has worked with several publications to address obstacles in journalism on the web.

The Newspack team was primarily advised by 12 publications during their first phase. Most of those publications are based in the U.S., but a few, such as El Soberano, are from other countries. The Daily Maverick from Johannesburg, South Africa, and Reveal from the Center for Investigative Reporting from California came on as advisers from the outset. However, they may also launch on Newspack sometime in the coming months.

“We had 10 sites that we’re going to launch as soon as possible,” said Steve Beatty, head of Newspack Communications. “Of the 10, one dropped out as they changed publishers. So that leaves El Soberano and eight others, and those eight should launch in the coming weeks — certainly by year’s end. We’ve got the next few queued up.”

During the initial phase, Beatty said the team was looking for small to medium-sized newsrooms that were covering local news or niche publications. The development hurdles would likely have been much higher starting with large organizations.

“We wanted newsroom leaders who were willing to experiment and try something bold and different, knowing that there was a very real chance of growing pains,” said Beatty. “The partners in our pilot newsrooms have been incredibly helpful, patient, understanding and cheerful. I’m not sure we screened for all that in the application process, but it’s worked out quite well.”

El Soberano is a Fitting Launch Partner

Content Director Roberto Bruna (left) and Executive Director Ana Arriagada (right).

WordPress.com claims its “mission is to democratize publishing one website at a time.” El Soberano, based in Santiago, is a smaller news publication with three people on the current full-time staff. Their goal is to connect citizens with organizations that will help defend their rights. The publication covers social movements within the country and to be an outlet for independent journalism.

“In our news outlet we believe that only the organized people are sovereign of their destiny,” said Roberto Bruna, Content Director at El Soberano. “Our name ‘El Soberano’ is all about el pueblo soberano, the ‘sovereign people’ in English. For us, individual rights and freedoms are crucial. Then, things like a secular state and civil rights, such as the legalization of cannabis, homoparental adoption or the right to a safe abortion, are things we report about.”

Bruna further defined the publication’s goals.

In El Soberano we defend an environment free of contamination; equal opportunities for women, ending the precariousness of their lives; a real pension system for citizens; sexual dissidence, to guarantee their equal rights and inclusion; a new development model based on innovation and knowledge; a secular state and freedom with critical thinking; urban planning and good housing solutions; consumers and a healthy and sustainable market and, finally, mechanisms that aim to create truly democratic constitutions for our countries.

El Soberano does not give space for other interest groups because such groups have the means to make their opinions publicly available. Instead, its mission is to report on social issues directly from citizens. “In them lies the power of decision regarding the direction that our democracies must take,” said Bruna.

Launching El Soberano with Newspack

As one of the first publications to launch with a new system, it’s tough to be a pioneer when a lot is riding on success. Ana Arriagada, Executive Director of El Soberano, was ready to take the news website to the next level after three years.

“When we decided to take the next step and transform El Soberano into a sustainable environment, it was a great achievement for us to be chosen for the Newspack pilot with other eleven news outlets,” said Arriagada. “We were the only news site in Spanish and from Latin America, so we felt very proud.”

Arriagada has worked with the Newspack development team over the past six months to help guide them on what tools are needed to run a newsroom.

The decision to apply for the Newspack pilot program was in part due to avoiding pitfalls they had seen with other digital media websites. “Friends with their websites hijacked by a former ‘friend’ developer when they try to move to a new platform, custom developments that only the author understood, huge invoices for maintenance hours, or even spending months working on a design that was not possible at the end,” said Arriagada. They wanted to avoid other problems such as taking too long to apply changes to the homepage in the fast-paced world of journalism where new stories should be front and center.

Arriagada said such problems were resolved with Newspack and their team can concentrate on editorial and revenue generation.

El Soberano originally launched on WordPress.com in January 2016. Arriagada said it was nearly impossible to find a good selection of templates that were built specifically to solve the problems of the news industry. “In Newspack we have the chance to combine different content blocks adapted to our needs, showing content in flexible ways,” said Arriagada. “Now we have tools designed to generate revenue with the experience and best practices from world-class digital media.”

Arriagada called working with the Newspack team a “journey of discovery.” In the beginning, it wasn’t clear how the team would use the information they were collecting from El Soberano and other publications or how the team would resolve issues based on the information provided. Eventually, they received design proposals, which allowed them to get a feel for what they wanted and to further provide feedback to the Newspack team.

“Later, we received the access to the platform where we were able to play around, putting things in order, creating and implementing what we were looking for,” said Arriagada. “More feedback, corrections, hopes, and dreams.”

She said that working with the Content Blocks system allowed her team to better create and assemble their homepage and articles. “But maybe the most interesting thing for us,” said Arriagada, “was that Newspack team and other news sites from the pilot program proposed things that we don’t consider for our site, such as an ultra-flexible donation system or workflow systems. We see a lot of power in that collaborative way to develop a product.”

The Future of Newspack

Newspack launched phase two of its program in July, which sought to bring 50 more newsrooms to the platform. The new publications should be announced shortly.

“Both the initial pilot group and this group of 50 (or so) are part of the one-year development period, which ends on February 29,” said Beatty. “We’re still determining what will happen on March 1. We’ll have a better sense of that when we start working with the 50 and see how quickly we can turn them around.”

Like much of Automattic’s work, it is open source and freely available to the public. Newspack is a collection of packages to create a platform for newsrooms. Of note are the following repositories.

Developers can find all eight plugins from the Automattic GitHub page if they want to give them a spin.

by Justin Tadlock at October 17, 2019 05:56 PM under Newspack

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:

November 12, 2019 09:00 AM
All times are UTC.