Wordpress News

Post Status: Scott Bolinger on WordPress, JAMstack, and the future of the independent developer

Wordpress Planet - Sat, 11/16/2019 - 16:36

In this episode, Scott and I dig into his experience as an indie developer within the WordPress landscape.

Scott has long used JavaScript as a core technology with AppPresser. I think he's on the forefront of thinking about and using technologies that are new to WordPress but out in full force in other ecosystems.

Scott is really into JAMstack (JavaScript, APIs, Markup). He's working on Static Fuse now, which helps connect WordPress to Gatsby. Gatsby has a lot of attention in web tech right now.

We also dig pretty deeply into the challenges and opportunities facing independent developers, and the interest levels in WordPress from the indie dev crowd. It's an interesting episode, and I learned a lot from Scott. I hope you do too. Enjoy our conversation!

Other links from the show Sponsor: Sandhills Development

Sandhills Development makes a suite of excellent plugins to power your WordPress website. Whether you need to sell digital downloads, restrict content, create an affiliate program, or manage an events calendar, they’ve got you covered. Thanks to Sandhills for being a Post Status partner.

WPTavern: 24 WordPress Snippets ’til Christmas, Submissions Open for 2019

Wordpress Planet - Fri, 11/15/2019 - 21:10

After a multi-year hiatus, Elliott Richmond has relaunched his WordPress advent calendar and is looking for volunteers. The WP Snippets ’til Christmas site will host 24 days of WordPress code snippets starting on December 1 and lasting until December 24. With each passing day, a new code snippet will be revealed.

Advent calendars are special types of calendars used to count down the days until Christmas. They are often a part of religious celebrations but can be used for other purposes such as family traditions and games. For Richmond’s advent calendar, it is a way to contribute something back to the WordPress community.

Richmond opened the site for developers to make contributions to the 24-day event. “I’ve been in touch with the original contributors in the hope that they’ll submit again and registration is also open to anyone else who wishes to contribute,” he said. “Otherwise, it will just be the Elliott Richmond show.”

He would rather have community submissions than attempting to write all 24 code snippets alone. Jeff Starr, Zac Gordon, and Tom McFarlin, all prominent developers in the WordPress community, have already signed on to submit code. Author’s note: I am also considering joining because it sounds like fun.

Anyone who wants to receive updates each day of the event can register for free on the WP Snippets ’til Christmas website. The same signup form is available for contributors.

There are no limitations on the types of code snippets that contributors can submit, only that they should be related to WordPress. Richmond says he has some ideas such as a WP-CLI script and a deployment tool for use on the command line. However, code snippets can be something as simple as sticking a basic function into a theme to more complex scripts.

“I come from a frontend world and I’m a self-taught PHP developer,” said Richmond. “I’m evolving constantly and always eager to learn new things. I think WordPress is similar, it’s always evolving and inspiring innovation. If you put any limitations on things they rapidly become stagnated.”

The code snippets are not aimed at any type of WordPress user in particular. “I think it’s really useful to see bite-size code snippets to help those in the community who are taking that next step into development,” said Richmond. “To those more seasoned developers, I think it’s always useful to see how other developers approach things.”

Each code snippet will have an open comments section similar to a traditional blog. This will allow others to say thanks for sharing or to jump-start a conversation.

The Road Back to the Advent Calendar

Richmond has been a WordPress user and developer since the launch of the platform. He is the director of Square One Software, a software development company that specializes in WordPress development.

He last ran the advent calendar in 2013. After the success of the first year in 2012, he decided to put it together for a second round. He wanted to keep it going beyond the first two years, but work and other commitments took priority.

In the years since, Richmond met other local WordPress enthusiasts at WordCamp London. He now helps host the local meetup in Cheltenham, UK. With the help of the community, he organized four teams of local project managers, designers, developers, and content writers for a local do_action event. “I’m still an enthusiastic proponent of giving back to the community and actively encourage others in our local community to share their experience and knowledge,” said Richmond.

do_action events are charity hackathons that use WordPress to help provide local charity organizations an online presence.

“Every single team and team member did an amazing job on the day for four local non-profit charities, putting together a functional WordPress website for each charity while I personally gave a charity representative some hands-on training,” said Richmond. “Taking away some of the overhead of creating a website for the charities allows them to concentrate on what they do best, which is raising money for their own community.”

Richmond described needing to find something to do next while still riding the buzz from the event. That is when he decided to relaunch the WP Snippets ’til Christmas event.

Because it is the season, Richmond crowned “It’s a Wonderful Life” as the greatest Christmas movie.

“I love classics and this one is a true classic, pretty apt in the current move to make people aware of mental health,” said Richmond. “The movie starts with depression and pending suicide when a guardian angel is bestowed to the main character George Bailey. George is shown how many lives he’s impacted on in his own local community and how things would have been if he didn’t exist, a real heartwarming feel-good reflection on the things that we take for granted in our own existence.”

With this upcoming holiday season, considering taking the time to give back to both your local community and the WordPress community. One great way to do that is to contribute a code snippet to WP Snippets ’til Christmas.

WPTavern: bbPress 2.6 Released After 6 Years, Includes Per-Forum Moderation and Engagements API

Wordpress Planet - Thu, 11/14/2019 - 20:17

On Tuesday, John James Jacoby announced that bbPress 2.6 was available to the public after a six-year wait in a post titled bbPress 2.6 — Better Great Than Never. The announcement landed with a whimper as it was overshadowed by the release of WordPress 5.3 on the same day.

bbPress is an official WordPress project for powering forums. It was initially launched on December 28, 2004, by Matt Mullenweg as a standalone project. During the first iteration’s heyday, it was popular within the WordPress community as a simple forum solution. In 2011, bbPress 2.0 relaunched as a WordPress plugin with Jacoby as the lead developer.

The bbPress team is primarily comprised of four part-time contributors with nearly no volunteers available for user testing. Stephen Edgar, Brandon Allen, and Sergey Biryukov were the primary developers other than Jacoby behind version 2.6.

“Jennifer M. Dodd deserves a mention for her contributions to 2.6 early on; she’s largely moved on but is wonderful,” said Jacoby. “Behind the scenes in the meta and forums teams are Samuel ‘Otto’ Wood, Dion Hulse, Mika Epstein, Marius Jensen, and countless others who provide feedback and feature requests upstream based on how WordPress.org uses bbPress.”

Contributors resolved 420 open tickets with 1,737 code commits over the multi-year span it took for version 2.6 to drop. The new version ships with hundreds of bug fixes and improvements. Its features include per-forum moderation, new platforms to import forum content from, and an Engagements API.

The new Engagements API connects user IDs to the various types of content in bbPress, such as forums, topics, replies, and topic tags. This works as a sort of relationship system between users and any content they interact with on the forums. In previous versions of bbPress, all of this data was saved in the user metadata table.

Per-forum moderation is a key feature for forums, but it has been one of the missing elements in bbPress. The new feature takes advantage of the Engagements API to connect user IDs to forum IDs. In turn, this allows site owners to create moderators for individual forums. This feature works in contrast to the existing “moderator” role in bbPress, which provides users global moderation powers.

Why the 6-Year Wait?

You could be forgiven for wondering if bbPress was all but dead. The last minor release happened in 2017 when the team dropped version 2.5.14. The same year, bbPress 2.6 was headed toward a third beta and even had a few release candidates.

“There was not very much feedback on the 2.6 beta or RC, and I had just transitioned into my role at Sandhills Development,” said Jacoby. “I decided it was better to concentrate on doing a good job where I could make a direct impact on people’s lives, rather than have no idea if I was doing a good job at all with bbPress.”

Jacoby did not want to release a potentially buggy version 2.6 and take on the support burden at the time. Doing so would have interfered with his responsibilities at his new job. “Younger me would have tried to do both, and failed at both,” said Jacoby.

Why such a long wait between releases? Most likely, it was for the same reason the Twitter announcement got fewer than a couple of dozen likes and even fewer retweets. There is not much community engagement with the project. On the flip side, the bbPress team has not been active on social media or the project’s official blog in the past two years.

Despite the lack of community engagement, bbPress is currently installed on over 300,000 sites. It runs the forums at WordPress.org, WordPress.com, CSS-Tricks, and other large communities. However, there is not much help sent back to the bbPress project from most places.

“On WordPress.org, bbPress is just one piece of a very complex puzzle, and everything is mostly in maintenance mode all the time,” said Jacoby. “The forums team focuses on the needs of the forums and the meta team helps maintain the code itself, but WordPress has made it easier and more rewarding to contribute to; so contributors graduate up to WordPress core and rarely look back.”

The idea behind switching bbPress 2.x to a WordPress plugin from its standalone roots was that it would be simpler for the larger WordPress community to pitch in. Jacoby said that contributions have improved since the pre-plugin era, but it has not helped enough. “There’s more attention and accolades with WordPress and Gutenberg than there are with the bb’s or GlotPress,” he said.

One of bbPress’ biggest problems is the lack of resources. There is no commercial element to the plugin and no major companies are funding anyone to work on the project full time.

“For an open-source project to be sustainable long-term, it needs to have an economy behind it,” said Jacoby. “Without an economy, what’s the real goal? Market share? Building better forum software? Those are not enough by itself when people need to make a living, and when less work with WooCommerce can help you earn a better living.”

The Future of Forums

Six years between major releases is a lifetime in technological years, plenty enough time for another company to claim the WordPress forum market share. However, bbPress managed to keep its crown as the most-used WordPress forum plugin during the wait. It does beg the question of whether companies or developers see a future for forums.

With so many alternative options for user engagement, are forums a dying breed of software?

“If forums are dying, it’s a slow death, according to the numbers anyway,” said Jacoby. “Chat apps like Slack and Discord (or Twitch and YouTube) are where people do forum-type stuff these days. Moderating your own community takes dedication and work, and if you’re going to do work, why not build an audience someplace else instead?”

Jacoby has hope for the future, however. “I can imagine a bunch of reasons why forums seem unattractive,” he said, “but to me they are still what everyone circles back around to, just like having their own blogs!”

WPTavern: WordCamp US 2020 Date and Location Announced, New Weekday Schedule

Wordpress Planet - Wed, 11/13/2019 - 21:27

Mark your calendars, folks. WordCamp US 2020 will start on a…Tuesday.

On November 11, the WordCamp US team announced that next year’s event will happen during the middle of the week, from October 27 through October 29. This is a change from the usual three-day weekend event. The time frame puts the event’s days on Tuesday, Wednesday, and Thursday. The yearly conference will remain in St. Louis, Missouri, in 2020.

Those planning ahead can sign up for updates via the new WordCamp US 2020 site.

Thus far, the switch away from a weekend has been met with generally positive responses via Twitter and Slack. However, some people fear the schedule will not allow them to attend.

The WordCamp US Twitter account cited date availability, Halloween, and giving the weekend back to attendees as the reason behind the change.

Number of reasons from date availability, letting folks get home for Halloween, and letting folks have a their weekend back on an out-of-town event

— WordCamp US (@WordCampUS) November 11, 2019

For professionals in the WordPress space, this move will likely be a welcome change. They are often able to get extra time off from work, sometimes paid leave, to attend the event. The company they work for may even be funding their travel. For them, attending a WordCamp is a part of their work.

The unfortunate side effect of attending a WordCamp over the weekend is that some attendees usually have to wake up for work on Monday morning after traveling back home on Sunday. Many are essentially working two weeks straight without any downtime. This helps pile on the problem of developer burnout. Rest days, time with friends and family, and getting away from code-related things is a part of a healthy work-life balance.

Moving the event to the middle of the week should allow professionals to better maintain that balance.

On the other hand, some attendees may find it harder to attend during the week. This is particularly true for WordCamp-goers who do not work with WordPress professionally. They may not be able to get the time off work.

As a general rule, Americans tend to have little paid leave they can take advantage of throughout the year. The average worker in the private sector only gets 10 paid vacation days per year after one year of employment. Those numbers rise the longer an employee sticks with a single company. The US does not guarantee paid leave for workers.

Without support from their employer, some people may have to choose between using their paid time off to attend and keeping those days in reserve for family vacation or holidays.

Unlike local WordCamps, the US conference is more of an industry event that sees professionals from across the US and the world. The move to a weekday schedule should be a nice change for many.

WPTavern: WordPress 5.3 “Kirk” Released, Brings New Default Theme, Editor Improvements, and UI Tweaks

Wordpress Planet - Tue, 11/12/2019 - 22:12
Rahsaan Roland Kirk
Credit: Heinrich Klaffs CC BY-SA 2.0

WordPress 5.3 “Kirk,” named in honor American jazz musician Rahsaan Roland Kirk, is now available for download. The update includes a new default theme named Twenty Twenty, user interface improvements aimed at accessibility, and new block editor features.

This release saw contributions from 645 volunteers, which is the largest contributor group ever for a WordPress release.

The release was led by Matt Mullenweg, Francesca Marano, and David Baumwald. They were joined by the following contributors in supporting roles in getting version 5.3 released.

WordPress 5.2 had 84 million downloads before WordPress 5.3’s release.

The PHP native JSON extension is now required for any site running WordPress 5.3 or later. This should not be an issue for the majority of users because the extension has been bundled with PHP by default since 2006. WordPress will output an error and cancel the update procedure if it detects the extension is missing. Users who are unable to update will need to contact their web hosts to have the extension enabled.

Twenty Twenty: New Default Theme Screenshot of the Twenty Twenty WordPress theme.

WordPress is getting a fresh coat of paint. Anders Norén led the design team for the new Twenty Twenty theme, which was a fork of his original Chaplin theme.

The Twenty Twenty theme is completely geared toward creating content with the block editor with its bold and opinionated styling. It comes with a cover page template and has a custom color system designed to keep the site’s color contrast accessible.

Block Editor Features and Improvements Nesting any block inside the Cover block.

WordPress 5.3 includes features from the versions 5.4 – 6.5 of the Gutenberg plugin along with bug fixes and performance improvements from versions 6.6 and 6.7. For users who have not been running the plugin, they should see faster loading times and quicker responses from keystrokes.

WP Tavern has covered every major release of the Gutenberg plugin that will be bundled in WordPress 5.3, except Gutenberg 5.6. Catch up on any features you missed with the following articles.

Other Core Features

Work toward large image handling went into the update. Instead of checking file sizes, images larger than 2,560 pixels are scaled down and used as the “full” image size. This change makes large images web ready and will significantly decrease file sizes for many users who upload images without optimizing them beforehand. This is common with mobile phone uploads.

For those who prefer to maintain the original sizes of image uploads, which is sometimes the case with photography sites, grab the Disable “BIG Image” Threshold plugin.

The site health screen introduced in WordPress 5.2 has some user experience improvements, such as tweaking how the grading indicator works for clarity. WordPress site owners will also need to verify their admin email every six months. This feature is to help make sure site recovery emails are being sent to the right place when an error occurs. It also lays the groundwork for future features that may build upon it.

Developer Changes

Developers should read the full WordPress 5.3 field guide to make sure none of the changes affect their plugins or themes. Some of the changes include the following.

  • Full support for PHP 7.4.
  • Improved date/time handling.
  • Robots meta tag now used for discouraging search engines from listing a site.
  • New meta key comparison operators added.
  • Integers are no longer allowed for nav menu slugs.
  • wp_die() now allows custom HTML.

WPTavern: Recurring Payments Feature Launches for WordPress.com and Jetpack Users

Wordpress Planet - Tue, 11/12/2019 - 19:45

WordPress.com launched a new recurring payments feature its users today. The payments system will allow bloggers to earn money for their content directly from any page on their site. The feature is also available for self-hosted WordPress users who have the Jetpack plugin installed.

The recurring payments system works alongside Stripe, so users must have a connected account to receive payments. Stripe currently serves over 30 countries around the world. WordPress.com’s documentation maintains an up-to-date list of countries currently allowed to use the payment gateway.

The new feature doesn’t come for free. Recurring payments access is only available to users on a premium WordPress.com plan. Plus, on top of the 2.9% + $0.30 for each payment that Stripe collects, WordPress.com has a tiered fee table based on the user’s plan.

  • WordPress.com eCommerce – No fee
  • WordPress.com Business – 2% per sale
  • WordPress.com Premium – 4% per sale
  • WordPress.com Personal – 8% per sale

At the lowest tier, users will see nearly 11% of sales go toward WordPress.com and Stripe fees. If accepting large volumes of payments, it will make sense for most users to upgrade to a higher plan to offset the fees. The tiers seem reasonably priced because the infrastructure is completely handled by WordPress.com.

Self-hosted users can bypass the WordPress.com fees with a multitude of existing payment plugins. They will have to decide whether the tools and support provided by WordPress.com is enough of a value-add to go for their service.

The Jetpack team first opened a limited beta test for this new feature on May 18, 2019. At the time, the feature was referred to as a “membership block.” The announcement post says that users can “offer ongoing subscriptions, site memberships, monthly donations, and more.”

However, members-based content seems to be limited in comparison to other fully-featured membership plugins and would require extra manual work to limit access to a site’s premium content. The WordPress.com recommendation is to password-protect posts and email out the password to subscribers or set up a newsletter.

This is far from a true membership system, but it could be enough for the average blogger who wants to make a few dollars on the side. The groundwork is there for a more powerful membership system in the future if the WordPress.com and Jetpack teams want to pursue it. The market is still ripe for innovation in the membership space.

Recurring Payments Block Jetpack recurring payments editor block

The new recurring payments feature requires at least Jetpack version 7.4. The feature comes in the form of a block for the block editor (Gutenberg) and is located under the “Jetpack” tab when inserting a new block.

The block has four fields that can be customized:

  • Currency
  • Price
  • Description
  • Renewal Interval – limited to monthly and yearly renewals

There is no limit on the number of different payment blocks users can add. Users can create a new payment plan by adding a new block. Previous options are backed up and will appear when inserting the block for users who need to output an existing plan on a new post or page.

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

Wordpress Planet - Mon, 11/11/2019 - 18:43

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.

BuddyPress: The road to BuddyPress blocks

Wordpress Planet - Sun, 11/10/2019 - 18:30

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.

WordPress.org blog: People of WordPress: Kim Parsell

Wordpress Planet - Fri, 11/08/2019 - 23:58

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

Alison Rothwell (@wpfiddlybits), Yvette Sonneveld (@yvettesonneveld), Josepha Haden (@chanthaboune), Topher DeRosia (@topher1kenobe), Jeff Chandler, Carrie Dils, Jayvee Arrellano, Jan Dembowski, Drew Jaynes

This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. HeroPress highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.

Meet more WordPress community members over at HeroPress.com!

People of WordPress: Kim Parsell

Wordpress News - Fri, 11/08/2019 - 23:58

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

Alison Rothwell (@wpfiddlybits), Yvette Sonneveld (@yvettesonneveld), Josepha Haden (@chanthaboune), Topher DeRosia (@topher1kenobe), Jeff Chandler, Carrie Dils, Jayvee Arrellano, Jan Dembowski, Drew Jaynes

This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. HeroPress highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.

Meet more WordPress community members over at HeroPress.com!

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

Wordpress Planet - Fri, 11/08/2019 - 23:00

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.

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

Wordpress Planet - Fri, 11/08/2019 - 21:13

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?

Pages