The WordPress Pattern Directory is live

WordPress 5.8 has now launched with built-in support for the Pattern Directory. The directory has been seeded with a selection of beautiful and useful patterns contributed by designers from the community.

Try it out by finding a pattern. FilterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. by category to see patterns using images, headers, or buttons. Favorite a few with the ❤️ button. Click “Copy” or “Copy pattern” to get the pattern, and paste the blocks into a post on your WordPress site.

We’ve reached our first milestone of the Pattern Directory, launching it with a fixed set of curated patterns. Work is now beginning on the next milestone, which will enable patterns to be submitted by anyone, similar to the Theme and PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Directories. You can follow and contribute to that work on GitHub.

Other ways you can contribute to the Pattern Directory right now: translation, posting and testing issues, and discussing in the Biweekly Meta Team chat.

Thanks to everyone who contributed to the project’s progress this far: @aaroncampbell, @akirk, @andrewserong, @annezazu, @audrasjb, @bph, @coreymckrill, @dd32, @dingo_d, @dryanpress, @dufresnesteven, @enej, @iandunn, @ipstenu, @javiarce, @joen, @julesaus, @louislaugesen, @mamaduka, @matveb, @michael-arestad, @nao, @nextdoorpanda, @ntsekouras, @ocean90, @poena, @psmits1567, @ramonopoly, @ryelle, @shaunandrews, @swissspidy, @tellyworth, @timothyblynjacobs, @tobifjellner, @vladytimy, @yuliyan, and everyone who worked to get these patterns translated so quickly 🌏 🌎 🌍.

Special thanks to the designers who collaborated on a set of high-quality blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. patterns for the release of the directory: @anariel-design, @beafialho, @bgardner, @cavalierlife, @chrislema, @circlecube, @critterverse, @greenshady, @jameskoster, @jcasabona, @karmatosed, @kellychoffman, @kjellr, @laxmariappan, @mahvash-fatima, @melchoyce, @richtabor, @schutzsmith, @tajim, @webmandesign, @wetah

#pattern-directory

New WordPress Make Site

I’d like to create a new site on the Make network of sites for coordinating all-project, cross-team work. I’ll have a post going up in the next day or so on make.wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org//updates, but thought it made sense to request the site first. 🙂

New site URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org: make.wordpress.org/project

There’s no team associated with it per se, so I am the only necessary user on the site for the time being.

X-post: Experiment: A Public Channel for All Team Reps

X-comment from +make.wordpress.org/updates: Comment on Experiment: A Public Channel for All Team Reps

Block Pattern Directory Update

BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Patterns are a way to set up layouts of blocks, through themes and plugins.  We’ve started work to create a Block Pattern Directory, similar to the PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and Theme directories. This will let anyone create and share a Block Pattern with any WordPress user.

Current state

The Block Pattern directory is in progress at wordpress.org/patterns. Following @shaunandrews’s design post, we’ve been working on the pattern browsing flow. The grid view is in progress:

The landing page of the Pattern Directory.

When viewing a single pattern, you can see a live preview which can be resized to preview at different screen sizes. Copying and favoriting are not working yet.

Single pattern view

The editor for creating block patterns is still in progress, but the idea will be that you can create a pattern right on the Pattern Directory site, and submit it. Shaun’s initial design post has more details on the flow, including moderation steps.

Targets

We’re aiming to have an initial version of the pattern directory launched in conjunction with WordPress 5.8. For the initial launch,

  • Anyone will be able to browse through patterns on the directory web site, based on pattern categories, or by searching
  • Anyone can see a live preview of a pattern, and use it on their site by copying the block code
  • WP.org users will be able to create and share Block Patterns, view and manage their submitted patterns
  • Patterns will be able to pick from a set of curated images and media to use, but no uploading your own media
  • Submitted Block Patterns will go through some basic validation/automated moderation
  • The block editor will search and fetch coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. patterns from the directory

Once we have a working directory, these are some of the next ideas:

  • The directory will be in English at launch, but we are thinking about how to internationalize the directory and available patterns
  • Forking an existing pattern to iterate on it, or to translate it
  • Improve the media collection for use
  • Add UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. for searching and browsing third party patterns from the block editor

Where to contribute

The development work is all happening on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/, WordPress/pattern-directory. If you want to help, or share feedback, comment on any of the GitHub issues (or create one). You can also find most of us in #meta on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/., or share your thoughts and suggestions in the comments below.

+make.wordpress.org/themes/ +make.wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org//design/

Thanks to @tellyworth for reviewing this post.

New WordPress Make Team

As Matt announced today, (April 27, 2021) we are thrilled to bring the Creative Commons Search product into the WordPress Community. The new name for the product will be Openverse and will eventually live at https://wordpress.org/openverse

There are many logistics and steps to work through as we grow and build out a new WordPress team and focus. I think the first few immediate requests are:

  1. Create a new SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel, titled #openverse, where we can start coordinating in the open
  2. Setup the following GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ repositories to bring the ccsearch code under the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ umbrella with myself (mkaz) and Zack Krida (zackkrida) as administrators. We can add additional developers to the repositories as needed.
    • openverse-catalog
    • openverse-scripts
    • openverse-frontend
    • openverse-api
  3. A new site on the Make network, make.wordpress.org/openverse

We are excited to get the new project started and looking forward to welcoming the CC Search maintainers and contributors into the WordPress community. Please join us in the new Slack channel once available.

+updates

Thanks @cbringmann, @chanthaboune, and @zackkrida for reviewing this post.

Automatically Catching Bugs in Plugins

A Problem

There are times when it’s difficult for a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party developer to know the most secure way to implement something (e.g., preparing a SQL query with conditional clauses), and it can be easy to overlook bugs and bad practices when there are thousands of lines of codeLines of Code Lines of code. This is sometimes used as a poor metric for developer productivity, but can also have other uses..

That creates bad experiences for users when something breaks or their site is hacked.

A Potential Solution

Static code analysisStatic code analysis "...the analysis of computer software that is performed without actually executing programs, in contrast with dynamic analysis, which is analysis performed on programs while they are executing." - Wikipedia could help to catch bugs, and inform developers how to fix them. It could also reduce the amount of time the Plugin team spends doing manual reviews.

The Coding Standards project has already built an extensive set of PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. sniffssniff A module for PHP Code Sniffer that analyzes code for a specific problem. Multiple stiffs are combined to create a PHPCS standard. The term is named because it detects code smells, similar to how a dog would "sniff" out food., and the MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. team has prototyped a custom PHPCS standard for the Plugin Repository.

Would something like that be useful? If so, what exactly should it check for?

Feedback

  1. At a high level, what concerns need to be addressed? e.g., security, backwards/forwards-compatibility, best practices?
  2. At a lower level, what specific things should be reported? e.g., escaped database queries & HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. output, using CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. APIs where available, avoiding deprecated functions?
  3. What are the current gaps in documentation? e.g., piecing together complex MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. queries with multiple variables. We’ll need good documentation to help devs understand a problem in their code, and fix it the right way.
  4. What are the current gaps in functionality that Core provides to plugins? e.g., escaping table and column names, native MySQL prepared statements, an HTML templating language. It’ll be easier for plugins to meet the standard if they don’t have to create their own implementations of common functionality.
  5. What metrics should we track to determine if code quality is improving enough?
  6. What metrics should we track to determine if we’re saving the Plugin Team enough time?

If you’re interested in similar conversations, check out the #core-coding-standards channel in our Slack workspace.

+make.wordpress.org/plugins/ +make.wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org//docs/ +make.wordpress.org/core/

cc @dingo_d, @westonruter, @jdgrimes, @jeffpaul

#coding-standards, #phpcs, #security

Theme test results added to Trac tickets

Starting today, a subset of Themes Trac tickets may include an automated reply showing the results of end-to-end theme tests. TracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. tickets already include Theme Check results; the new automated e2e testing covers extra tests intended to find JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. errors, invalid output, potential a11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) problems, and other items from the Guidelines.

The Theme Test results are intended to help both theme reviewers and theme authors discover theme bugs and potential problems easier and earlier. It is a work in progress that we hope will assist and augment the manual review process for themes. The tests are advisory only, there is no requirement or expectation that themes must pass the tests in order to be approved. Here’s an example:

We’d like to hear your feedback on the tests, and suggestions for additions and improvements. You can discuss those in comments here or post issues to the Theme Review Action repository in GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/.

#theme-review

cc +themes

Scheduled Updates: Help test on WordPress.org sites

The project to enable scheduled changes to published posts has now entered the testing phase. The alpha was reviewed by a limited set of testers on one testing site, and after some iterations based on feedback, it’s now ready for use on all sites on the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ network. If your contributor team has a site that you’d like to try it on, comment below and a member of the MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. team will enable it for you.

A quick demo showing how an update gets scheduled

Some things you can try to orient yourself with the new functionality:

  • Create a scheduled update of a post or page
  • Make changes to a scheduled update after it has been created
  • Publish a scheduled update immediately
  • Delete a scheduled update
  • TrashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days. or unpublish a post that has a scheduled update
  • View the comparison between the update to the original post

Please keep in mind that this is still betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. software that will continue to change and iterate. Feedback is welcome! If you find an issue, you can see if it has already been reported, and if not, please report it!

#revisions-extended

+make.wordpress.org/updates/

Reducing the Plugin Review team’s workload through automation

To help the PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Review team make the most of their contribution time and improve the security of all plugins distributed on WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/, MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. team contributors have built a code scanner that detects potential security risks such as unescaped SQL queries in plugin code. This is installed as a plugin on WordPress.org, and displays results in a metaboxMetabox A post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. on the plugin edit screen accessible to reviewers.

The Plugin Review team has been sharing feedback on the quality of the results, which has let Meta contributors to refine the tool to improve the noise-to-signal ratio that makes any automated checker a challenge.

Looking forward, our teams are discussing how often to run this scan (probably every time a new version of a plugin is detected), and how to semi-automate informing plugin authors about the results of the scans.

We’re excited that the Plugin Review team finds this tool useful, and that we’re making progress toward one of our Big Picture Goals for 2021 by decreasing manual work for contributor teams through better tooling.

If you’re a plugin developer and would like to help test the scanner on your own code, it’s available on GitHub.

Many thanks to the Plugin Review team for making the time to test and share the feedback that made this tooling improvement possible!

#plugins

In Progress: Scheduling updates to published posts on WordPress.org

The Learn WordPress site has a lot of content (especially in lesson plans) that is specific to a particular version of WordPress. When a new version of WordPress is released, that content has to be reviewed and updated, which requires a lot of effort from members of the Training Team. Right now, these updates can only be made after the new version is released, because updates to post content happen immediately (only unpublished posts can be scheduled to publish on a future date). The Docs team that maintains HelpHub and DevHub faces similar challenges.

The MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. team is attempting to improve this situation by making it possible for contributors to save a change to an already-published post that will go live at a later date. This will be a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party installed on the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ network that can be enabled on any network site.

The basic scope of the plugin:

  • From the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor, make changes to an already-published post and schedule those changes to go live at a later date.
  • In the block editor UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. as well as other admin screens, indicate when a post has a scheduled update.
  • View a list of all scheduled updates.
  • Edit scheduled updates, including the content and the future publish date.
  • Compare scheduled update content to the current published content.
  • This functionality should be available for all post types that support revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision..

Under the hood, the plugin will use CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.’s built-in revision system. A scheduled update will be saved as a revision post type with a future post status. When the update is due to be “published”, it gets converted to a normal post revision with an inherit post status and then that revision is “restored”.

Here’s a (very rough) screencast of the basic workflow:

The code for the plugin is currently in this GitHub repo.

FAQ

Aren’t there plugins out there already that do this?

There are a couple, but they are either inadequate for our needs or they add a bunch of extra stuff that we don’t need.

What about suggested updates, that don’t necessarily have a future publish date, but should be reviewed by a content editor before being approved and incorporated into an already-published post?

This is another feature that is often requested. While the same underlying revision system could be used for suggested updates as well, the UI flows are more complicated, so the current focus is just on scheduled updates.

Also, there is a fundamental limitation of how revisions are created and stored, in that each revision contains the entire content of a post. So if two people suggest revisions for a particular post at the same time, whichever suggestion gets approved first would be overwritten by the second suggestion. This would probably be a good topic for a separate post.

Is this something that belongs in WordPress Core?

If Core leadership thinks that this feature would benefit 80% of WordPress users, then sure! The plugin will definitely be built to work gracefully with Core and the block editor.  If this were prioritized for merge, Core’s revisions system would need to be updated to be a bit more flexible, and the block editor UI would need some changes to become more customizable.

Got other questions? Please share them in the comments!

#revisions-extended