diff --git a/.gitignore b/.gitignore index 5ce5797e..6c634480 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,6 @@ debug.log .DS_Store .idea .vscode + +## Examples +examples/**/package-lock.json \ No newline at end of file diff --git a/README.md b/README.md index 9c5670e1..411832a9 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,30 @@ -# hwptoolkit +# HWP Toolkit Headless WordPress Toolkit > A modern toolkit for building headless WordPress applications. Provides CLI tools, plugins, and best practices for decoupling WordPress into a powerful headless CMS. + ## Project Organization -- `packages`: Dependency packages to be published on NPM -- `plugins`: PHP based WordPress Plugins -- `docs`: Documentation for the Toolkit? -- `examples`: Example code for HWP \ No newline at end of file +- [`packages`](./packages): Dependency packages to be published on NPM +- [`plugins`](./plugins): PHP based WordPress Plugins +- [`docs`](./docs): Documentation for the Toolkit +- [`examples`](./examples): Example code for HWP + + +## Community + +To chat with other headless WordPress users and the headless community as a whole, you can join the [WP Engine Developers Discord](https://discord.gg/J2khkF9XYK). + +> **Note**: We also have a fortnightly Headless WordPress Community Meeting [here](https://discord.gg/fdWjcTt8?event=1351712352155992075). + +Additionally, if you have questions or ideas, please share them on [GitHub Discussions](https://github.com/wpengine/hwptoolkit/discussions). + +## Contributing + +There are many ways to [contribute](/CONTRIBUTING.md) to this project. + +- [Discuss open issues](https://github.com/wpengine/hwptoolkit/issues) to help define the future of the project. +- [Submit bugs](https://github.com/wpengine/hwptoolkit/issues) and help us verify fixes as they are checked in. +- Review and discuss the [source code changes](https://github.com/wpengine/hwptoolkit/pulls). +- [Contribute bug fixes](/CONTRIBUTING.md) diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..f3d74282 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,23 @@ +# Security Policy + +WP Engine takes the security of our software and services seriously, including all +of the open-source code repositories managed through our +[WP Engine organization](https://github.com/wpengine). + +## Reporting Security Issues +If you believe you have found a security vulnerability in any WP Engine-owned repository, please report it to us via email at [opensource@wpengine.com](mailto:opensource@wpengine.com?subject=HWPToolkit%20Security%20Vulnerability) + +**Please do not report security vulnerabilities through public GitHub issues, +discussions, or pull requests.** + +Please include as much of the information listed below as you can to help us better understand and resolve the issue: + +- The type of issue (e.g., buffer overflow, SQL injection, or cross-site scripting). +- Full paths of the source file(s) related to the manifestation of the issue. +- The location of the affected source code (tag/branch/commit or direct URL). +- Any special configuration required to reproduce the issue. +- Step-by-step instructions to reproduce the issue. +- Proof-of-concept or exploit code (if possible). +- Impact of the issue, including how an attacker might exploit the issue. + +This information will help us triage your report more quickly. Thank you for helping us keep WP Engine and our users safe! diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..8b6491f0 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,25 @@ +# HWP Toolkit Documentation + + +## Explanation Documentation + +| Title | Description | +|------------------------------------|------------------------------| +| [GET vs POST](explanation/get-vs-post.md) | Explanation on choosing between GET and POST methods for WPGraphQL requests. | +| [GraphQL Endpoints](explanation/graphql-endpoints.md) | Documentation on differences between using /graphql or ?graphql for WPGraphQL endpoint. | +| [Headless Authentication](explanation/headless-authentication.md) | Overview of user authentication and access control in a decoupled WordPress architecture. | +| [Rendering Options](explanation/rendering-options.md) | A document that explores the various approaches to rendering content from a headless WordPress installation. | +| [Routing](explanation/routing.md) | A comprehensive explanation on routing in a headless WordPress application. | +| [Sitemaps](explanation/sitemaps.md) | A comprehensive explanation on sitemaps in a headless WordPress application. | + + +## How To Documentation + +| Title | Description | +|------------------------------------|------------------------------| +| [Automatic Persisted Queries in Next.js Pages Router](how-to/nextjs-pages-router/enable-apq/index.md) | Learn how to reduce latency and network strain in GraphQL queries using Automatic Persisted Queries (APQ) by hashing and reusing query hashes. | + + +## Contributing + +If you feel like something is missing or you want to add documentation, we encourage you to contribute! Please check out our [Contributing Guide](https://github.com/wpengine/hwptoolkit/blob/main/CONTRIBUTING.md) for more details. diff --git a/docs/explanation/rendering-options.md b/docs/explanation/rendering-options.md new file mode 100644 index 00000000..74d6d939 --- /dev/null +++ b/docs/explanation/rendering-options.md @@ -0,0 +1,139 @@ +# Headless WordPress Rendering Options +## Introduction + +This document explores the various approaches to rendering content from a headless WordPress installation. As a front-end developer working with headless WordPress, you'll need to make important decisions about how to handle and display WordPress content in your frontend application. This guide aims to help you understand the available options, their trade-offs, and best practices. + +### 1. Rendering Raw HTML Content from WordPress Classic Editor +When working with content created in the WordPress Classic Editor, you typically receive raw HTML content that needs to be rendered in your front-end application. Here's an overview of how to handle this content, focusing on React as an example framework. + +#### Overview +* **Raw HTML Content**: Content from the WordPress Classic Editor is often in raw HTML format, which includes tags, classes, and inline styles. + +* **Front-end Rendering**: To display this content in a React application, you need to render the raw HTML safely and efficiently. + +#### Implementation +To render raw HTML in React, you can use the `dangerouslySetInnerHTML` property. Here's a basic example for a single post: + +```javascript +const query = gql`query GetPost { + post(id: "hello-world", idType: SLUG) { + content + } +}`; + +function PostContent({ content }) { + return
; +} +``` +**Note**: Using `dangerouslySetInnerHTML` poses security risks if the content isn't sanitized. + +#### Considerations: +* Simplicity: Easy to implement initially with dangerouslySetInnerHTML (React) or v-html (Vue). +* Styling Challenges: Global CSS styles needed to match WordPress styling which is usually not available +* Limited Control: Limited ability to manipulate or enhance specific content elements. + +Considering those limitations, it's clear that rendering raw HTML Content is not suitable for most use cases. Hopefully there are better alternatives. + +### 2. Rendering Block Editor (Gutenberg) Content +#### Overview +WordPress Block Editor (Gutenberg) stores content as HTML with special comments and structured JSON properties in the comments representing blocks, offering more flexibility for headless implementations. However exposing them in a Headless enviroment is tricky. That's why with the help of the [wp-graphql-content-blocks](https://github.com/wpengine/wp-graphql-content-blocks) plugin, you can query (Gutenberg) Blocks as data using graphql. + +This gives you more controls and ability to manipulate or enhance specific content elements or blocks compared to the previous approach. Here is how to do it: + +1. Querying the block data + +```javascript +const query = gql`query GetPostBlocks { + posts { + nodes { + editorBlocks { + __typename + name + ... on CoreParagraph { + attributes { + content + } + } + } + } + } +}`; +``` +The response would include the block's `__typename`, `name`, and the `content` attribute: + +```json +{ + "__typename": "CoreParagraph", + "name": "core/paragraph", + "attributes": { + "content": "Hello World" + } +} +``` +This query fetches the content of a `CoreParagraph` block, allowing you to access and manipulate its text content in your application. + +To render this content in a React application, you can use the `dangerouslySetInnerHTML` property, but ensure you sanitize the content first to prevent XSS attacks: + +```javascript +import DOMPurify from 'dompurify'; + +function PostContent({ attributes }) { + const { content } = attributes; + const sanitizedContent = DOMPurify.sanitize(content); + return ; +} +``` +Similar to the Classic Editor approach, you can render the final HTML output of Gutenberg blocks. + +#### Considerations: +* Querying: The ability to query block data using GraphQL provides a structured approach to accessing and manipulating content. +* Complexity: Handling nested blocks and reconstructing their hierarchy can be complex. +* Styling: While able to query classNames or block attributes, developers still have to provide the actual styles for the components to display correctly. + +### 3. Rendering Blocks with WordPress Styles + +Rendering Gutenberg blocks with WordPress styles in a headless environment involves fetching and applying the styles defined in WordPress to your frontend application. This approach ensures that the content looks consistent with how it appears in the WordPress editor. + +#### Challenges +* CSS Sources: Gutenberg block styles come from multiple sources, including core blocks, themes, and user-defined styles. This complexity makes it challenging to replicate the exact styling in a headless setup. + +* Inline Styles and CSS Variables: Gutenberg blocks often include inline styles and CSS variables (e.g., `var(--wp--preset--color--cyan-bluish-gray))`. These styles are not automatically applied when rendering blocks in a headless environment. + +* Theme Styles: Themes provide additional styles that are crucial for maintaining consistency. However, fetching these styles dynamically can be difficult, especially if they are generated inline or through WordPress's Global Styles feature. + +#### Solutions +* Import Global Stylesheet: Use tools like faust-cli to generate and import a global stylesheet from your WordPress site. This stylesheet includes CSS variables and other theme-specific styles. + +```bash +"scripts": { + "generate": "faust generatePossibleTypes && faust generateGlobalStylesheet", +} +``` +Then import the generated stylesheet in your application: + +```javascript +import "../globalStylesheet.css"; +``` + +* Include Block Library Styles: Import CSS styles from `@wordpress/block-library` to apply basic block styling: + +```javascript +import "@wordpress/block-library/build-style/common.css"; +import "@wordpress/block-library/build-style/style.css"; +import "@wordpress/block-library/build-style/theme.css"; +``` + +**Note**: Changes to the `@wordpress/block-library` package may introduce new styles or css classnames potentially changing the look and feel of the application. + +* Define Custom CSS Variables: If using CSS variables, define them manually in your application's CSS to match WordPress's presets: + +```css +:root { + --wp--preset--color--black: #000000; + --wp--preset--color--cyan-bluish-gray: #abb8c3; +} +``` +Considerations +* Styling Parity: Achieving perfect styling parity can be challenging due to the dynamic nature of WordPress styles. + +* Maintenance: Styles may change with theme updates, customizations or major WordPress updates, requiring periodic updates in your headless application. diff --git a/docs/explanation/sitemaps-1.png b/docs/explanation/sitemaps-1.png new file mode 100644 index 00000000..e4967d41 Binary files /dev/null and b/docs/explanation/sitemaps-1.png differ diff --git a/docs/explanation/sitemaps.md b/docs/explanation/sitemaps.md new file mode 100644 index 00000000..c87ce994 --- /dev/null +++ b/docs/explanation/sitemaps.md @@ -0,0 +1,258 @@ +# Sitemaps in WordPress: A Comprehensive Overview + +## What is a Sitemap? +A sitemap is an XML file that provides a structured list of pages on a website by helping search engines discover and crawl content more efficiently. It acts as a roadmap of your website's structure, containing important metadata about each page. +Since WordPress 5.5, there's a built-in XML sitemap generator that: + +* Automatically creates sitemaps for posts, pages, and custom post types +* Dynamically updates as content is added, modified, or deleted +* Provides basic SEO and indexing support out of the box + +However, this default sitemap lacks customization options, which is why many users opt for plugins like Yoast SEO or Jetpack to generate more comprehensive sitemaps. + +You can view the current sitemap generated by WordPress by visiting yourdomain.com/sitemap.xml in your browser. + + +## Sitemaps in Headless WordPress +Headless WordPress environments introduce unique challenges for sitemap generation: + +* **Separation of content management and frontend rendering**: In traditional WordPress setups, content management and frontend rendering are integrated. However, in headless environments, WordPress acts as a backend CMS, while the frontend is handled by frameworks like Next.js. This separation requires custom solutions for sitemap generation. + +* **Dynamic routes**: Dynamic routes in frameworks like Next.js may not be directly accessible or easily discoverable by search engines. + +* **Need for custom sitemap generation and management**: Due to the decoupling of backend and frontend, traditional WordPress sitemap plugins might not work seamlessly. Therefore, custom approaches are needed to generate and manage sitemaps effectively. + +To address those, there are some proposed solutions for headless sitemap implementation: + +1. **Proxying Sitemaps from Backend to Frontend** + +Approach: This approach maintains WordPress's native sitemap generation capabilities while ensuring proper frontend URLs are used. It involves creating API routes in your Next.js application that proxy requests to the WordPress backend sitemap. + +Example Code: + +```javascript +// /pages/api/proxy-sitemap/[...slug].js +const wordpressUrl = ( + process.env.NEXT_PUBLIC_WORDPRESS_URL || "http://localhost:8888" +).trim(); + +export default async function handler(req, res) { + const slug = req.query.slug || []; + + // Reconstruct the original WordPress sitemap path + let wpUrl; + if (slug.length === 0 || slug[0] === "sitemap.xml") { + wpUrl = `${wordpressUrl}/sitemap.xml`; + } else { + const wpPath = slug.join("/"); + wpUrl = `${wordpressUrl}/${wpPath}.xml`; + } + + console.debug("Fetching sitemap", wpUrl); + try { + const wpRes = await fetch(wpUrl); + console.debug("Fetching sitemap", wpRes); + if (!wpRes.ok) { + return res.status(wpRes.status).send("Error fetching original sitemap"); + } + + const contentType = wpRes.headers.get("content-type") || "application/xml"; + let body = await wpRes.text(); + // Remove XML stylesheets if present + body = body.replace(/<\?xml-stylesheet[^>]*\?>\s*/g, ""); + + res.setHeader("Content-Type", contentType); + res.status(200).send(body); + } catch (err) { + res.status(500).send("Internal Proxy Error"); + } +} +``` +Then add the necessary rewrites in your `next.config.js`: +```javascript +module.exports = { + async rewrites() { + return [ + { + source: "/:path(wp-sitemap-.*).xml", + destination: "/api/proxy-sitemap/:path", + }, + { + source: "/sitemap.xml", + destination: "/api/proxy-sitemap/sitemap.xml", + }, + ]; + }, + // other Next.js configuration +}; +``` +To ensure that the sitemap URLs in your headless WordPress setup correctly point to your frontend application, it's essential to configure the WordPress Site Address (URL) setting to match your frontend's URL. This is done in the WordPress settings page. + +**Note**: The WordPress Address (URL) should remain set to the URL where your WordPress backend is hosted. Only the Site Address (URL) needs to be updated to reflect your frontend's URL. + +This implementation ensures that when visitors access `/sitemap.xml` on your headless frontend, they'll see the WordPress sitemap content. + +This route will serve the WordPress `sitemap.xml` in your Next.js application dynamically. + +- **Pros** + * Leverages WordPress's built-in sitemap generation capabilities + * Works seamlessly with SEO plugins like Yoast SEO or All in One SEO + * Simple implementation that requires minimal code + * Automatically updates when content changes in WordPress + +- **Cons** + * Limited flexibility for custom frontend routes not defined in WordPress + * Requires proper URL transformation to replace backend URLs with frontend URLs + * May require additional handling for caching and performance + * May propagate any errors experienced in WordPress when proxying the `sitemap.xml` + +2. **Generating a Sitemap from GraphQL Content** + +Approach: This approach involves fetching all available post and page info via GraphQL and generating a custom sitemap. This can be implemented using either server-side rendering (SSR) or static generation strategies. However since, WPGraphQL returns maximum 100 node per page trying to fetch all available post or pages on a large site might be problematic and slow. See [pagination limits in wp-graphql](https://www.wpgraphql.com/docs/known-limitations#pagination-limits). + +Example implementation using Next.js and WPGraphQL: + +```javascript +import { gql } from '@apollo/client'; +import { client } from '../lib/apolloClient'; + +// Function to fetch all posts from WordPress +async function fetchAllPosts() {} + +// Similar function for pages +async function fetchAllPages() {} + +export async function generateSitemap() { + const [posts, pages] = await Promise.all([ + fetchAllPosts(), + fetchAllPages(), + ]); + const allContent = [ + ...data.posts.nodes.map(post => ({ + slug: `posts/${post.slug}`, + modified: post.modified + })), + ...data.pages.nodes.map(page => ({ + slug: page.slug, + modified: page.modified + })), + // Add custom frontend routes here + { slug: '', modified: new Date().toISOString() }, // Homepage + { slug: 'about-us', modified: new Date().toISOString() }, + ]; + const sitemap = ` ++ I can't find the page you are looking for. Please check the info above for + some insights. +
+Ooops! Please check the info above or server logs for insights.
+
+
+ {JSON.stringify(
+ results,
+ null,
+ 2
+ )}
+
+
+I like sharing my life!
+ ++ This is the index template for the WordPress template hierarchy. + It will be used to render the WordPress content if no more appropriate template + is provided (e.g. front-page, single, singular, archive, etc). It should never + be used directly. +
+ + {data.nodeByUri.title && } + {data.nodeByUri.content && } + { + !data.nodeByUri.content && !data.nodeByUri.title && ( +
+ {JSON.stringify(data ?? {}, null, 2)}
+
+ )
+ }
+The third release candidate (“RC3”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC3 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC3 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-RC3 |
WordPress Playground | Use the 6.8 RC3 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts leading up to next week’s release for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC2, you can browse the following links:
\n\n\n\nWordPress is open source software made possible by a passionate community that collaborates and contributes to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users. For more details on developer-related changes in 6.8, please review the WordPress 6.8 Field Guide.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC3, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本? हिन्दी? मराठी? বাংলা? You can help translate WordPress into more than 100 languages.
\n\n\n\nThe launch draws closer,
Six-eight sings through RC3,
Almost time to shine.
Thank you to the following contributors for collaborating on this post: @audrasjb, @mamaduka, @krupajnanda, @benjamin_zekavica, @narenin, @joedolson, @courane01, @joemcgill, @marybaum, @kmgalanakis, @umeshsinghin, @wildworks, @mkrndmane.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18673\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"WordPress 6.8 Release Candidate 2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/04/wordpress-6-8-release-candidate-2/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Apr 2025 15:53:20 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18662\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:367:\"The second Release Candidate (“RC2”) for WordPress 6.8 is ready for download and testing! This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site. Reaching this phase […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8739:\"\nThe second Release Candidate (“RC2”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC2 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC2 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update –version=6.8-RC2 |
WordPress Playground | Use the 6.8 RC2 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC1, you can browse the following links:
\n\n\n\nWant to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:
\n\n\n\nWordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC2, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ? You can help translate WordPress into more than 100 languages. This release milestone (RC2) also marks the hard string freeze point of the 6.8 release cycle.
\n\n\n\nTesting, 1, 2, 3
It’s almost April fifteenth
Squashing all the bugs
Thank you to the following contributors for collaborating on this post: @michelleames, @tacoverdo, @jopdop30, @vgnavada, @jeffpaul.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18662\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"WordPress 6.8 Release Candidate 1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/03/wordpress-6-8-release-candidate-1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 25 Mar 2025 16:19:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18639\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:267:\"WordPress 6.8 RC 1 is ready for download and testing! The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing over the next three weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:9280:\"\nThe first Release Candidate (“RC1”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC1 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC1 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC1 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-RC1 |
WordPress Playground | Use the 6.8 RC1 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since Beta 3, you can browse the following links:
\n\n\n\nWant to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:
\n\n\n\nWordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC1, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? You can help translate WordPress into more than 100 languages. This release milestone (RC1) also marks the hard string freeze point of the 6.8 release cycle.
\n\n\n\nMarch fades, nearly there,
Six-eight hums—a steady beat,
RC greets the world.
Thank you to the following contributors for collaborating on this post: @joemcgill @benjamin_zekavica @courane01 @mkrndmane @audrasjb @areziaal @ankit-k-gupta @krupajnanda @bph.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18639\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 6.8 Beta 3\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2025/03/wordpress-6-8-beta-3/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 Mar 2025 15:35:14 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18634\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:289:\"WordPress 6.8 Beta 3 is ready for download and testing! The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing Beta and RC versions over the next four weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5627:\"\nWordPress 6.8 Beta 3 is now ready for testing!
\n\n\n\nThis beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it is recommended you evaluate Beta 3 on a test server and site.
\n\n\n\nYou can test WordPress 6.8 Beta 3 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the Beta 3 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-beta3 |
WordPress Playground | Use the 6.8 Beta 3 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup. |
The current target date for the final release of WordPress 6.8 is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for more information.
\n\n\n\nCatch up on what’s new in WordPress 6.8: Read the Beta 1 and Beta 2 announcements for details and highlights.
\n\n\n\nYour help testing the WordPress 6.8 Beta 3 version is key to ensuring everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.8.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nBetween Beta 1, released on March 4, 2025, and the final Release Candidate (RC) scheduled for April 8, 2025, the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nWordPress 6.8 Beta 3 contains more than 3 Editor updates and fixes since the Beta 2 release, including 16 tickets for WordPress core.
\n\n\n\nEach beta cycle focuses on bug fixes; more are on the way with your help through testing. You can browse the technical details for all issues addressed since Beta 3 using these links:
\n\n\n\nBeta three refines,
WordPress shapes with steady hands,
Code grows into form.
Props to @benjamin_zekavica @krupajnanda @ankit-k-gupta @joemcgill for proofreading and review.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18634\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 6.8 Beta 2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2025/03/wordpress-6-8-beta-2/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 11 Mar 2025 15:46:13 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18619\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:289:\"WordPress 6.8 Beta 2 is ready for download and testing! The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing Beta and RC versions over the next five weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5940:\"\nWordPress 6.8 Beta 2 is now ready for testing!
\n\n\n\nThis beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, you should evaluate Beta 2 on a test server and site.
\n\n\n\nYou can test WordPress 6.8 Beta 2 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.) |
Direct Download | Download the Beta 2 version (zip) and install it on a WordPress website. |
Command Line | Use this WP-CLI command: wp core update --version=6.8-beta2 |
WordPress Playground | Use the 6.8 Beta 2 WordPress Playground instance to test the software directly in your browser. No setup is required–just click and go! |
The current target date for the final release of WordPress 6.8 is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for more information.
\n\n\n\nCatch up on what’s new in WordPress 6.8: Read the Beta 1 announcement for details and highlights.
\n\n\n\nYour help testing the WordPress 6.8 Beta 2 version is key to ensuring everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.8.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nBetween Beta 1, released on March 4, 2025, and the final Release Candidate (RC) scheduled for April 8, 2025, the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nWordPress 6.8 Beta 2 contains more than 14 Editor updates and fixes since the Beta 1 release, including 21 tickets for WordPress core.
\n\n\n\nEach beta cycle focuses on bug fixes; more are on the way with your help through testing. You can browse the technical details for all issues addressed since Beta 1 using these links:
\n\n\n\nSecond wave refines,
Lines of code like rivers flow,
WordPress finds its form.
Props to @ankitkumarshah @vgnavada @krupajnanda @michelleames @audrasjb @marybaum @ecgan for proofreading and review.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18619\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 6.8 Beta 1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2025/03/wordpress-6-8-beta-1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 04 Mar 2025 17:09:45 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18582\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:288:\"WordPress 6.8 Beta 1 is ready for download and testing! The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing Beta and RC versions over the next six weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:10596:\"\nWordPress 6.8 Beta 1 is ready for download and testing!
\n\n\n\nThis beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, set up a test environment or a local site to explore the new features.
\n\n\n\nYou can test this beta release in any of the following ways:
\n\n\n\nWordPress Beta Tester Plugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. Select the “Bleeding edge” channel and “Beta/RC Only” stream. |
Direct Download | Download the Beta 1 version (zip) and install it on a WordPress website. |
Command Line (WP-CLI) | Use this WP-CLI command: wp core update --version=6.8-beta1 |
WordPress Playground | Use a 6.8 Beta 1 WordPress Playground instance to test the software directly in your browser. No setup required–-just click and go! |
The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing Beta and RC versions over the next six weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.
\n\n\n\nTesting for issues is a critical part of developing any software, and it’s a meaningful way for anyone to contribute—whether or not you have experience. Details on what to test in WordPress 6.8 are here.
\n\n\n\nIf you encounter an issue, please share it in the Alpha/Beta area of the support forums. If you are comfortable submitting a reproducible bug report, you can do so via WordPress Trac. You can also check your issue against this list of known bugs.
\n\n\n\nCurious about testing releases in general and how to get started? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nWordPress 6.8 will include many new features that were previously only available in the Gutenberg plugin. Learn more about Gutenberg updates since WordPress 6.7 in the What’s New in Gutenberg posts for versions 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20.0, 20.1, 20.2, 20.3, and 20.4.
\n\n\n\nThis is a polish release, with user enhancements throughout incorporated into the latest Gutenberg updates. WordPress 6.8 brings a luster and gloss that only a polish release can.
\n\n\n\nWordPress 6.8 Beta 1 contains over 370 enhancements and 520 bug fixes for the editor, including design improvements, polishing the query loop, and more than 230 tickets for WordPress 6.8 Core. Here’s a glimpse of what’s coming:
\n\n\n\nEasier ways to see your options in Data Views, and you can opt to ignore sticky posts in the Query Loop. Plus you’ll find lots of little improvements in the editor!
\n\n\n\nThe Style Book now features a structured layout so you can preview site colors, typography, and block styles more easily. You can use the Style Book in classic themes with editor-styles or a theme.json file and includes clearer labels, and you can find them under Appearance > Design
.
WordPress 6.8 introduces native support for speculative loading, leveraging the Speculation Rules API to improve site performance with near-instant page loads. This feature prefetches or prerenders URLs based on user interactions, such as hovering over links, reducing load times for subsequent pages.
\n\n\n\nBy default, WordPress 6.8 applies a conservative prefetching strategy, balancing performance gains with resource efficiency. Developers can customize speculative loading behavior using new filters, since the API does not include UI-based controls. The existing Speculative Loading feature plugin will adapt to the core implementation, allowing deeper customization. Please test this feature in supported browsers (currently Chrome 108+ and Edge 108+, with more browsers evaluating) and provide feedback on #62503 to help refine its implementation.
\n\n\n\nWordPress 6.8 will use bcrypt for password hashing, which significantly hardens WordPress. Other hashing is getting hardened, too, throughout the security apparatus. You won’t have to change anything in your daily workflow.
\n\n\n\nThe features included in this first beta may change before the final release of WordPress 6.8, based on what testers like you find.
\n\n\n\nGet an overview of the 6.8 release cycle and check the Make WordPress Core blog for 6.8-related posts in the next few weeks for further details.
\n\n\n\nDue to an update made to the upgrade routine during this release, (see r59803), any upgrade from versions older than 5.1 will fail. Folks are working to resolve this specific issue, so please hold off on reporting on this while testing the Beta 1 release.
\n\n\n\nThe WordPress community sponsors a monetary reward for reporting new, unreleased security vulnerabilities. This reward doubles during the period between Beta 1 on March 4, 2025 and the final Release Candidate (RC) scheduled for April 15, 2025. Please follow responsible disclosure practices as detailed in the project’s security practices and policies. You can find those on the HackerOne page and in the security white paper.
\n\n\n\nMarch winds shift the tide.
Hands unite in open source;
WordPress moves ahead.
Props to @audrasjb @marybaum @mamaduka @michelleames @bph @jorbin @joemcgill @krupajnanda @desrosj @benjamin_zekavica @lysyjan87 for reviewing and collaborating on this post!
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18582\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:38:\"Shaping Tomorrow at WordCamp Asia 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://wordpress.org/news/2025/02/shaping-tomorrow-at-wordcamp-asia-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 22 Feb 2025 15:04:04 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:6:\"Events\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"WordCamp\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18515\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:394:\"Over 1,400 attendees from 71 countries gathered at the Philippine International Convention Center in Manila, and nearly 15,000 more joined online, for WordCamp Asia 2025. It’s the people. It’s the friendships and the stories. Matt Mullenweg, WordPress Cofounder The flagship WordPress event started with a dedicated Contributor Day, followed by two days of engaging talks, […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:17:\"Nicholas Garofalo\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:56717:\"\nOver 1,400 attendees from 71 countries gathered at the Philippine International Convention Center in Manila, and nearly 15,000 more joined online, for WordCamp Asia 2025.
\n\n\n\nIt’s the people. It’s the friendships and the stories.
Matt Mullenweg, WordPress Cofounder
The flagship WordPress event started with a dedicated Contributor Day, followed by two days of engaging talks, panels, hands-on workshops, and networking. Notable guests included WordPress Cofounder Matt Mullenweg and Gutenberg Lead Architect Matías Ventura, who were joined by a diverse lineup of speakers and panelists.
\n\n\n\nThroughout the event, the sponsor hall buzzed with activity as companies from across the WordPress ecosystem showcased their latest products, engaged with attendees, and offered live demos and giveaways. Each day, attendees refueled with diverse food offerings featuring Filipino favorites, turning meals into a prime networking opportunity where new connections were made and ideas were exchanged.
\n\n\n\nThis year’s event introduced several new programs to the schedule:
\n\n\n\nWordCamp Asia kicked off with an incredible Contributor Day, bringing together almost 800 contributors, many of them new, to collaborate, share knowledge, and give back to WordPress. With 37 dedicated table leads and 16 experts from the Human Library guiding the way, participants of all experience levels engaged in meaningful discussions, tackled important tasks, and made a lasting impact on the WordPress project.
\n\n\n\nKey contributions included resolving a critical media bug, advancing vertical text editing in Gutenberg, and refining the editing experience with dozens of issue closures. Performance optimizations and accessibility improvements abounded, joined by seven fresh patterns, and over 44,000 newly translated strings.
\n\n\n\nNew tools and workflows were explored to enhance testing and development. The day also saw meaningful conversations between hosting providers and users, improvements to event organizing processes, and hands-on training.
\n\n\n\nWith innovative ideas, new faces, and significant progress across multiple areas, Contributor Day reinforced the spirit of open source collaboration that drives WordPress forward.
\n\n\n\nOn the first full conference day, attendees gathered to celebrate the power of open source collaboration and innovation. Opening remarks from global and local event leads reflected on the incredible journey of WordCamp Asia, tracing its roots back to the first Southeast Asian WordCamp in Manila in 2008. This full-circle moment underscored how the WordPress community has flourished over the years, driven by shared knowledge and a commitment to an open web. The excitement continued with a highly anticipated opening keynote from Matías Ventura, who shared insights into the future of Gutenberg and WordPress, inspiring attendees to embrace the next wave of innovation and creativity in content publishing.
\n\n\n\nThe day then began in earnest. Talks highlighted new ways to integrate WordPress with external applications, opening possibilities for more interactive and scalable digital experiences. Simultaneously, content strategists and marketers explored evolving best practices in SEO, learning how to optimize their sites for visibility, engagement, and long-term growth. These sessions emphasized the importance of adaptability in a constantly evolving digital landscape, ensuring that WordPress users stay ahead of industry trends.
\n\n\n\nWorkshops throughout the day provided hands-on learning experiences tailored to a wide range of skill levels. Developers refined their expertise, gaining practical knowledge they could apply to their own projects. Accessibility advocates led discussions on designing for inclusivity, showcasing strategies to make WordPress-powered websites more navigable and user-friendly for people of all abilities.
\n\n\n\nAs the conference continued into the afternoon, conversations expanded to performance optimization and emerging technologies shaping the future of WordPress. A dedicated session explored AI-driven workflows, demonstrating how artificial intelligence can enhance site performance, automate repetitive tasks, and create more personalized user experiences. These discussions showcased the evolving role of WordPress as a versatile platform that extends beyond traditional publishing.
\n\n\n\nThe first day culminated in a thought-provoking keynote panel, WordPress in 2030, where industry leaders explored the future of the platform. The discussion covered the expanding open source community, emerging technologies, and the role of education and mentorship. Panelists shared their perspectives on the opportunities and challenges ahead, encouraging attendees to actively shape the future of WordPress by contributing, innovating, and advocating for an open web.
\n\n\n\nReturning for the final day of WordCamp Asia 2025, attendees explored a new set of sessions designed to push the boundaries of web development and strategy. Technical discussions on advanced Gutenberg block development highlighted innovative ways to build more dynamic and interactive content experiences, while another session examined performance optimization strategies to enhance site speed, accessibility, and overall user engagement. Content creators and marketers gained valuable insights into audience growth, effective storytelling, and data-driven content strategies to maximize impact.
\n\n\n\nThe final sessions of the conference reinforced WordPress’s adaptability and innovation, equipping attendees with new skills and strategies.
\n\n\n\nAs the final day drew to a close, Matt shared historic photos from WordCamp Davao 2008 in the Philippines, and then answered questions from the audience.
\n\n\n\nQuestions covered a variety of topics, incluiding: publishing on the open web, AI, headless WordPress, education, and Matt’s personal motivations. It was clear throughout the Q&A that the future of WordPress is as bright as the island-themed attire at the event’s after-party.
\n\n\n\nThank you to all the hard-working organizers who made this event possible, the speakers who took the stage, the visitors who ventured to Manila, and everyone who tuned in from around the world. Our hope is that every WordCamp attendee leaves with new knowledge, new friends, and new inspiration to build a better web.
\n\n\n\nBe sure to mark your calendars for other major WordPress events in 2025: WordCamp Europe (Basel, Switzerland) and WordCamp US (Portland, Oregon, USA). Then join us in Mumbai, India for WordCamp Asia 2026!
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18515\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:25:\"Report: WordPress in 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"https://wordpress.org/news/2025/02/wordpress-in-2025-report/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 15 Feb 2025 03:19:09 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"General\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18475\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:379:\"This year is set to be transformative for WordPress, yet many decision-makers risk overlooking the immense opportunities ahead. Our new “WordPress in 2025” report highlights why WordPress should be a cornerstone of your long-term strategy. Stay ahead of the curve—read the report now to see how WordPress can drive growth and innovation for your business in the […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"Noel Tock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:3721:\"\nThis year is set to be transformative for WordPress, yet many decision-makers risk overlooking the immense opportunities ahead. Our new “WordPress in 2025” report highlights why WordPress should be a cornerstone of your long-term strategy. Stay ahead of the curve—read the report now to see how WordPress can drive growth and innovation for your business in the years to come.
\n\n\n\nSome of the key points we explore:
\n\n\n\nDownload the full WordPress in 2025 (PDF) report directly to learn more.
\n\n\n\nSave your spot at our free event, WP:25, exploring the future of WordPress and featuring key people working with many of the ideas discussed in the report.
\n\n\n\nAbout the report’s author, Noel Tock — Having built his first website back in 1995, Noel has long been watching the evolution of the CMS space. As a co-owner at one of the leading enterprise WordPress agencies, Human Made, his belief in the power of open source is as great as ever. Human Made is a WordPress VIP Gold Partner specializing in DXP, headless, AI and more.
\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18475\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"WordCamp Asia 2025: Manila Magic\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2025/02/wordcamp-asia-2025-manila-magic/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 14 Feb 2025 16:04:45 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:6:\"Events\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"WordCamp\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18482\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:409:\"The first major WordCamp of the year is here! WordCamp Asia 2025 lands in Manila, Philippines, from February 20-22, bringing together open source enthusiasts, developers, and WordPress professionals from across the region—and the world. With three packed days of learning, networking, and collaboration, this year’s event promises fresh insights, dynamic discussions, and plenty of opportunities […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Bernard Meyer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:4844:\"\nThe first major WordCamp of the year is here! WordCamp Asia 2025 lands in Manila, Philippines, from February 20-22, bringing together open source enthusiasts, developers, and WordPress professionals from across the region—and the world.
\n\n\n\nWith three packed days of learning, networking, and collaboration, this year’s event promises fresh insights, dynamic discussions, and plenty of opportunities to connect.
\n\n\n\nThroughout the conference days, multiple presentations will focus on the solutions provided by our amazing sponsors. This is a great opportunity to learn more about their initiatives and solutions.
\n\n\n\n \n\n\n\nThe main conference, which will be held on February 21-22, will feature a lineup of notable keynote speakers, including digital innovation leaders and open-source advocates. Attendees can expect diverse sessions on business strategy, development of best practices, and technical advancements.
\n\n\n\nFor those looking to sharpen their skills, presentations will dive deep into topics like SEO for WordPress, performance optimization, and AI-powered content creation. Plus, don’t miss the electrifying WordPress Speed Build Battle, where developers race to create stunning sites in record time.
\n\n\n\nOn February 22, WordCamp Asia 2025 will host YouthCamp, a pre-registered event designed to introduce young minds to WordPress and its endless possibilities. This initiative aims to engage the next generation of WordPress users, developers, and contributors through hands-on activities and interactive sessions
\n\n\n\nWordPress Cofounder Matt Mullenweg will wrap up the event with a live Q&A session on February 22. Whether attending in person or tuning in online, you can catch his insights live on the WordPress YouTube channel at 4:00 p.m. Philippine Time (08:00 UTC).
\n\n\n\nAs the sun sets on WordCamp Asia 2025, the excitement continues with the After Party (theme: Island Vibe)! Get ready to experience the vibrant spirit of the Philippines with a lively gathering at The Forum at PICC. Expect a night filled with great conversations, music, and a celebration of the WordPress community.
\n\n\n\nAs always, be part of the conversation! Whether you’re attending in Manila or following along online, share your experiences using #WCAsia and #WordPress.
\n\n\n\nManila is calling—see you at WordCamp Asia 2025!
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18482\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WordPress 6.7.2 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2025/02/wordpress-6-7-2-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 11 Feb 2025 16:52:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18445\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:371:\"WordPress 6.7.2 is now available! This minor release includes 35 bug fixes, addressing issues affecting multiple components including the block editor, HTML API, and Customize. WordPress 6.7.2 is a short-cycle release. The next major release will be version 6.8 planned for April 15, 2025. If you have sites that support automatic background updates, the update […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Aaron Jorbin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8487:\"\nThis minor release includes 35 bug fixes, addressing issues affecting multiple components including the block editor, HTML API, and Customize.
\n\n\n\nWordPress 6.7.2 is a short-cycle release. The next major release will be version 6.8 planned for April 15, 2025.
\n\n\n\nIf you have sites that support automatic background updates, the update process will begin automatically.
\n\n\n\nYou can download WordPress 6.7.2 from WordPress.org, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”. For more information on this release, please visit the HelpHub site.
\n\n\n\nThis release was led by Aaron Jorbin.
\n\n\n\nWordPress 6.7.2 would not have been possible without the contributions of the following people. Their asynchronous coordination to deliver maintenance fixes into a stable release is a testament to the power and capability of the WordPress community.
\n\n\n\nAaron Jorbin, Alex Lende, Alexandre Buffet, Andreas Pedersen, Andrew Ozz, Ankit Kumar Shah, apermo, Benedikt Ledl, bernhard-reiter, Brian Alexander, Carlos Bravo, Carolina Nymark, Cyrille, Daniel Post, darerodz, David Calhoun, David Smith, Dennis Snell, dhewercorus, Dion Hulse, Doug Wollison, Ella, Eshaan Dabasiya, Fabian Kägy, Fabian Todt, Felix Arntz, Felix Renicks, Francis Cabusas, Frank B., George Mamadashvili, ghinamt, Glynn Quelch, Greg Ziółkowski, James Koster, Jarda Snajdr, Jb Audras, jdnd, jeryj, Joe Dolson, Joe McGill, Jon Surrell, Jonathan Desrosiers, juanwp22, Juliette Reinders Folmer, Karthick, Kazuto Takeshita, Kelly Choyce-Dwan, Ketan Niruke, Lena Morita, levskipg, Maciej Ma?kowiak, Mario Santos, Matthew Boynes, Mayank Tripathi, Michal Czaplinski, Miguel Fonseca, Mitchell Austin, mreishus, Mukesh Panchal, Nadir Seghir a11n, Narendra Sishodiya, Naresh Bheda, neotrope, Nick Diego, Olga Gleckler, Parth vataliya, Pascal Birchler, paullb, Peter Wilson, Pitam Dey, redkite, Rishav Dutta, robertstaddon, rvoigt, Sagar Tamang, Sainath Poojary, seanlanglands, Sergey Biryukov, Scott Reilly, Shyam Kariya, smerriman, Stephen Bernhardt, Sukhendu Sekhar Guria, TobiasBg, Tonya Mork, Vishy Moghan, Weston Ruter, wongjn, Yogesh Bhutkar, zaoyao
\n\n\n\nTo get involved in WordPress core development, head over to Trac, pick a ticket, and join the conversation in the #core and #6-8-release-leads channels. Need help? Check out the Core Contributor Handbook.
\n\n\n\nProps to @joedolson, @joemcgill and @audrasjb for proofreading.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18445\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}s:27:\"http://www.w3.org/2005/Atom\";a:1:{s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:4:\"href\";s:32:\"https://wordpress.org/news/feed/\";s:3:\"rel\";s:4:\"self\";s:4:\"type\";s:19:\"application/rss+xml\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:44:\"http://purl.org/rss/1.0/modules/syndication/\";a:2:{s:12:\"updatePeriod\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"\n hourly \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:15:\"updateFrequency\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"\n 1 \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:4:\"site\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"14607090\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:48:\"WpOrg\\Requests\\Utility\\CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:12:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Wed, 09 Apr 2025 23:13:37 GMT\";s:12:\"content-type\";s:34:\"application/rss+xml; charset=UTF-8\";s:4:\"vary\";s:37:\"Accept-Encoding, accept, content-type\";s:25:\"strict-transport-security\";s:12:\"max-age=3600\";s:6:\"x-olaf\";s:3:\"⛄\";s:13:\"last-modified\";s:29:\"Tue, 08 Apr 2025 16:13:35 GMT\";s:4:\"link\";s:63:\"Your Gravatar profile just got smarter with a handful of updates that make sharing your digital identity even easier.
\n\n\n\nYou will find them all under a new Tools menu in your profile editor, packed with features to help you connect and share across the web.
\n\n\n\nHere’s what’s new:
\n\n\n\nThose little Gravatar cards that appear when you comment on WordPress sites and around the web? You’re now in control of how they look! Choose to include your header image, add a contact button, or enable the “send money” feature.
\n\n\n\nIt is the new digital business card. With one click, you can copy the HTML code for your card to display on any website.
\n\n\n\nFind and edit your card under the new Tools > Card menu item.
\n\n\n\nMake every email count with your personalized Gravatar signature. It’s like your card, but perfectly formatted for email. Copy the code once, paste it into Gmail, Outlook, or your preferred email tool, and you’re set.
\n\n\n\nThe email signature now has a new easier to find home under Tools > Email signature.
\n\n\n\nFor custom domain users, we’ve made it even easier to copy and share your smart redirects. These are the magic links Gravatar automatically creates for you – like your-name.link/linkedin or your-name.link/calendar.
\n\n\n\nSee the full list in one new place under Tools > Smart redirects.
\n\n\n\nWe’ve clarified how our simple contact form works with a dedicated Private messages menu. When enabled, anyone can send you a short message, but with important safeguards:
\n\n\n\nEnable the contact form on your profile under the new Tools > Private messages menu.
\n\n\n\nThese small improvements add up to a more connected, streamlined experience for your online identity. And as always, we’re working on more fun features and tools, so stay tuned!
\n\n\n\nTo check these out, edit your profile and look for the Tools option in the sidebar.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Apr 2025 17:23:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Ronnie Burt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:21:\"Matt: AI Site Builder\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=141197\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:38:\"https://ma.tt/2025/04/ai-site-builder/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:563:\"The long-anticipated “Big Sky” AI site builder on WordPress.com went live today. It combines several models and can create logos, site designs, typography, color schemes, and content. It’s an entirely new way to interact with and edit a brand-new or existing WordPress site. This AI agent will make WordPress accessible to an entirely new generation and class of customers, and it will be a power tool for professionals to do things in minutes that used to take them hours.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Apr 2025 17:14:06 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"Do The Woo Community: Navigating the Accessibility Landscape: Real Stories with Bud Kraus\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=94129\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"https://dothewoo.io/navigating-the-accessibility-landscape-real-stories-with-bud-kraus/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:215:\"In this podcast episode, hosts Anne Bovelett and BobWP, along with guest Bud Kraus, explore ecommerce accessibility, discussing user experiences, challenges, and the importance of inclusive web design for all users.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Apr 2025 15:13:19 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:113:\"HeroPress: How WordPress Changed My Life — Gratitude – Como o WordPress Mudou a Minha Realidade – Gratidão\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=7856\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:152:\"https://heropress.com/essays/how-wordpress-changed-my-life-gratitude/#utm_source=rss&utm_medium=rss&utm_campaign=how-wordpress-changed-my-life-gratitude\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:22331:\"O texto também está disponível em português do Brasil.
\n\n\n\nMy name is Caio Ferreira and I’ve been using WordPress since 2020. In this article I’ll tell you a little about my history with this platform and how it changed everything – from experimental business ideas – to a real professional experience.
\n\n\n\nI’ve always been passionate about technology, even as a kid. When we got our first computer at home — one of those classic white models my father bought in many installments — it became the main attraction in the house. And rightfully so: it sat in the living room, where everyone could see it.
\n\n\n\nBack then, I was already browsing the internet, exploring system settings, customizing Windows XP, and maybe (just maybe) installing a few viruses or unwanted installers here and there.
\n\n\n\nDespite the limitations, I had a lot of fun creating blogs, managing Facebook communities, and trying out platforms like Blogger, Wix, Squarespace — basically anything free that allowed me to publish something online. I didn’t have much technical knowledge, and even less money to invest. But I already had this strong desire to share my ideas with the world.
\n\n\n\nBesides the blogs, I loved creating websites for imaginary businesses that never really existed — and honestly wouldn’t work in any real-world scenario. But the excitement was real. Every time a new idea came up, I would recruit some friends to “invest” in it and try to convince them it was just a matter of time before we made a lot of money — like the success stories we saw on TV.
\n\n\n\nIn one of these pitches, I showed a site I had built on Wix to a more experienced friend, and he asked me:
\n\n\n\n\n\n\n\n\n“Why are you using Wix? Have you ever tried WordPress?”
\n
That sparked something in me. I had heard of WordPress before but thought it was too complex. Plus, I was always stopped by the need for paid hosting.
\n\n\n\nStill, my curiosity got the best of me. I started researching more seriously and quickly realized WordPress was far more powerful than any tool I had used before. But the cost barrier remained. So I put the idea on hold, waiting for the right time to dive in.
\n\n\n\nHigh school felt like a marathon. I didn’t really know where I was going, but I knew I had to keep moving. I didn’t have any career role models, nor pressure to follow a specific path. The only reference points were what I saw on TV or heard from distant relatives — law, engineering… the so-called “safe” careers parents often dream of.
\n\n\n\nEven without a clear direction, I was always committed. I learned English on my own playing RPGs online and created a Duolingo account back in 2014. I used to take part in school competitions — even math ones — not because I was the best, but because I saw them as a chance to stand out.
\n\n\n\n\n\n\n\n\nIf I didn’t have obvious advantages, I’d create my own.
\n
That mindset led me to participate in the Junior Achievement “Junior Company” program. Our school was selected to form a student-run fictional business, funded by the local government. That experience was life-changing.
\n\n\n\nEven though I was just in my first year of high school — and technically under the age requirement — I asked to join the program and, more boldly, applied to be the company’s president. I put on a dress shirt, prepared a speech, and was elected.
\n\n\n\nDespite having no real experience, we ended up doing well. Our project turned a small profit (a few reais per “shareholder,” but still, profit!). That success motivated me to stay involved with Junior Achievement. I started volunteering and joined more programs.
\n\n\n\nOne of those opportunities allowed me to spend a day inside a startup in Belo Horizonte. I had never even set foot in a corporate office before — let alone a startup with a playful office, relaxed people, and even a ball pit!
\n\n\n\nI brought a notebook and wrote down everything I could. The whole experience left me stunned. Up until then, I thought work environments were dull and gray, with strict rules and judgment over things like shoes and dress codes.
\n\n\n\nA few days after the visit, encouraged by the staff, I created a LinkedIn profile and started sharing every experience I had, no matter how small. Around that time, they gave me access to a free WordPress course. I loved it. I wasn’t just taking the course — I was exploring on my own and learning as much as I could.
\n\n\n\nI kept in touch with the people I had met, interacted with their posts, and shared my progress. Then, one day, I received a message that changed everything.
\n\n\n\nOne of the employees who hosted us at the office reached out: the company was looking for someone like me to join the team.
\n\n\n\n\n\n\n\n\nI had recorded a few videos after the visit expressing how much the experience meant to me — and somehow, that had reached them.
\n
I was still finishing high school at the time, just 17 years old, when I got the offer. The following year, I started working there as an assistant and began my Computer Science degree on a scholarship.
\n\n\n\nIn my first two years, I worked mostly with SEO and content distribution, handling a variety of CMS platforms. But WordPress had my heart from day one. Its flexibility, the power to customize everything, and the massive community — it was everything I loved.
\n\n\n\nEventually, an opportunity opened for an internal role as a web developer — and I jumped at it. I went through the selection process and got the position.
\n\n\n\nOur team was partly based in Brazil, led by our manager Manny, who was in Canada. It was the perfect challenge: a chance to leave my comfort zone and practice English daily. Manny even learned a few Portuguese words with us.
\n\n\n\n\n\n\n\n\nAs a developer, I dove deep into WordPress.
\n
Each project pushed my limits and made me grow. It was around this time that I also got involved with the WordPress community in my city.
\n\n\n\nWordPress turned out to be so much more than just a tool — it changed my life.
\n\n\n\nWith the income I earned through projects using the platform, I was able to make a down payment on my first apartment.
\n\n\n\n\n\n\n\n\nThat same kid who couldn’t afford hosting fees was now buying property.
\n
And it didn’t stop there. In 2022, I received a job offer from a company in the United States — something I would’ve never dreamed of just a few years earlier.
\n\n\n\nThat same year, I attended my first WordPress meetup (still during the pandemic), and later, my first WordCamp as a participant — held remotely in São Paulo. It felt like everything was starting to connect.
\n\n\n\nAnd as if all that wasn’t enough, I married the love of my life. It was a simple ceremony, but one we had always dreamed of — made possible, in large part, thanks to the income I earned working with WordPress.
\n\n\n\nIn 2025, we resumed in-person WordPress community meetups after the pandemic. I was nervous — what if no one showed up?
\n\n\n\nBut they did. We had 25 people, all engaged and eager to contribute, learn, and share. That meetup was a turning point for me.
\n\n\n\n\n\n\n\n\nI realized I could lead, organize, and give back.
\n
Today, I’m actively involved in the community — helping plan events, staying connected with members, and always looking for new ways to contribute. WordPress didn’t just help me build a career — it helped shape who I am.
\n\n\n\nLike Rafael shared in another HeroPress story, English remains a big challenge for many of us in Brazil — but also a powerful key.
\n\n\n\nI’m far from fluent, but I keep learning. Each Duolingo lesson, each YouTube tutorial, each Slack conversation with my international team is a step forward.
\n\n\n\n\n\n\n\n\nWhat matters is not giving up.
\n
Because if there’s one thing I’ve learned from this entire journey, it’s that everything can change. Sometimes, all we need is a small opportunity, a bit of encouragement — or simply, a platform like WordPress.
\n\n\nWe asked Caio for a view into his development life and this is what he sent!
\n\n\nHeroPress would like to thank Draw Attention for their donation of the plugin to make this interactive image!
\nOi! Eu me chamo Caio Ferreira e venho utilizando o WordPress desde 2020. Hoje quero compartilhar um pouco da minha trajetória com essa plataforma e como ela transformou tudo na minha vida – desde ideias de negócios experimentais até uma carreira profissional de verdade.
\n\n\n\nSempre gostei muito de tecnologia desde pequeno. Ainda novo, quando recebemos o nosso primeiro computador em casa, tudo ainda era muito novo. Era um daqueles modelos brancos, que meu pai comprou dividido em muitas vezes, e que virou a atração da casa — também não era pra menos: ele ficava na sala de estar, onde todo mundo via.
\n\n\n\nNaquele tempo, eu já navegava na internet, procurava formas de fuçar o sistema, personalizava o Windows XP do jeito que podia, e talvez (só talvez mesmo) tenha instalado alguns vírus ou instaladores indesejados algumas vezes.
\n\n\n\nApesar das limitações, eu me divertia criando blogs, gerenciando comunidades no Facebook e testando plataformas como Blogger, Wix, Squarespace, ou qualquer outra gratuita que me deixasse publicar algo online. Eu não tinha muito conhecimento técnico, e menos ainda dinheiro para investir. Mas já naquela época eu tinha essa vontade de compartilhar ideias com o mundo.
\n\n\n\nAlém dos blogs, eu também gostava de criar sites para negócios fictícios, que nunca saíam do papel — e que, honestamente, provavelmente não dariam certo de qualquer jeito. Mas a empolgação era grande. Sempre que surgia uma ideia, eu chamava amigos para “investir” comigo, e tentava convencê-los de que era só uma questão de tempo até aquilo dar certo. Era como víamos nas reportagens de sucesso na televisão.
\n\n\n\n\n\n\n\n\nEm uma dessas aventuras, mostrei o site para um amigo mais experiente, que me perguntou por que eu estava usando o Wix. Ele comentou que existiam outras opções com mais possibilidades, como o WordPress.
\n
Eu já tinha ouvido falar do WordPress, mas achava complexo demais — e, além disso, sempre esbarrava na questão da hospedagem paga.
\n\n\n\nMesmo assim, aquilo me deixou curioso. Comecei a pesquisar mais a fundo, entendi que o WordPress era muito mais robusto do que qualquer ferramenta que eu tinha usado até então, mas acabei deixando de lado naquele momento. Afinal, eu não tinha como pagar uma hospedagem. Guardei a ideia comigo, esperando por um momento em que ela fizesse mais sentido.
\n\n\n\nO ensino médio foi uma maratona. Eu não sabia ao certo onde queria chegar, mas tinha pressa em encontrar esse “algum lugar”. Não tive exemplos próximos de carreira, nem cobrança direta para seguir determinada profissão. As referências eram as mesmas de muita gente: Direito? Engenharia? Os “cursos de sucesso” que a TV e alguns parentes diziam valer a pena.
\n\n\n\nMesmo sem um caminho definido, sempre fui esforçado. Aprendi inglês sozinho jogando RPG online e criei minha conta no Duolingo ainda em 2014. Me destacava em atividades que a maioria evitava — como concursos de matemática — mesmo sem ser o melhor.
\n\n\n\n\n\n\n\n\nA ideia era simples: se eu não tinha vantagens competitivas óbvias, eu criaria as minhas.
\n
Me envolver nessas atividades era a forma que eu via para construir algo diferente, já que o mercado de trabalho viria logo.
\n\n\n\nFoi com esse espírito que participei do programa Miniempresa da ONG Junior Achievement, onde minha escola foi selecionada para criar uma empresa estudantil fictícia, com tudo financiado pelo governo. Aquilo mudou tudo.
\n\n\n\nMinha miniempresa, voluntariado e a primeira visita a uma startup
\n\n\n\nMesmo sendo do primeiro ano, pedi para participar do programa — mesmo sem ter a idade sugerida — e mais: me candidatei para presidente. Usei uma camisa social e um discurso bem montado, e fui escolhido para liderar a miniempresa.
\n\n\n\nApesar da falta de experiência, conseguimos um resultado positivo. A empresa gerou lucro (poucos reais para cada “acionista”, mas ainda assim, lucro). O programa me deixou animado, e comecei a me envolver em outras atividades da Junior Achievement, atuando como voluntário em eventos e ajudando em novos programas.
\n\n\n\nFoi em uma dessas iniciativas que surgiu a oportunidade de visitar, por um dia, uma startup em Belo Horizonte. Eu nunca tinha imaginado sequer entrar na sede de uma empresa, quem dirá de uma startup com escritório descolado, pessoas à vontade, piscina de bolinha e um clima completamente diferente do que eu imaginava ser “trabalhar”.
\n\n\n\nLevei um caderninho e anotei tudo o que pude. Saí de lá em estado de choque, pensando: “é possível trabalhar num lugar assim?”. Até então, tudo que eu imaginava era o oposto: ambientes cinzentos, baías sem graça e muita formalidade.
\n\n\n\nPoucos dias depois, incentivado pela visita, criei meu LinkedIn (com ajuda de quem nos recebeu na empresa) e comecei a registrar todas as experiências que já tinha vivido. Também recebi acesso a um curso de WordPress oferecido por eles. Gostei tanto da ferramenta que, além do curso, comecei a explorar muito por conta própria.
\n\n\n\nMe mantive em contato com o pessoal da empresa, interagia nas redes, compartilhava o que estava aprendendo — até que uma mensagem mudou tudo.
\n\n\n\nUma das pessoas que nos recebeu durante a visita me chamou no privado: a empresa estava procurando alguém com o meu perfil para integrar o time.
\n\n\n\n\n\n\n\n\nEu tinha gravado vídeos contando o quanto aquela experiência tinha me impactado, e isso, de alguma forma, chegou até eles.
\n
Eu ainda estava finalizando o ensino médio, com 17 anos, quando recebi a proposta. No ano seguinte, comecei a trabalhar na empresa como assistente e iniciei minha graduação em Ciência da Computação, com uma bolsa de estudos.
\n\n\n\nDurante os dois primeiros anos, trabalhei com SEO e distribuição de conteúdo, lidando com diversos CMSs. Mas foi o WordPress que capturou minha atenção desde o começo. A versatilidade, a comunidade, a possibilidade de personalização — tudo me encantava.
\n\n\n\nQuando surgiu uma vaga internacional dentro da própria empresa para atuar como desenvolvedor web, me inscrevi sem pensar duas vezes. Passei por um processo interno, fui aprovado e comecei a atuar em projetos mais técnicos.
\n\n\n\nNosso time era parcialmente brasileiro e liderado pelo Manny, nosso gerente no Canadá. Foi um baita desafio — e uma excelente oportunidade para praticar inglês no dia a dia. Ele, inclusive, chegou a aprender algumas palavras em português com a gente.
\n\n\n\n\n\n\n\n\nNo novo cargo, mergulhei ainda mais fundo no desenvolvimento com WordPress.
\n
Era ali que eu percebia: cada novo desafio me tirava da zona de conforto, mas me deixava mais preparado.
\n\n\n\nO WordPress foi muito mais do que uma ferramenta de trabalho. Ele transformou minha realidade.
\n\n\n\nCom o que ganhei trabalhando com a plataforma, consegui dar entrada no meu apartamento.
\n\n\n\n\n\n\n\n\nIsso mesmo — aquele mesmo garoto que não podia pagar uma hospedagem agora realizava um sonho pessoal.
\n
E não parou por aí. Em 2022, recebi uma proposta de trabalho de uma empresa dos Estados Unidos. Algo que, anos antes, eu não ousava nem imaginar.
\n\n\n\nNaquele mesmo ano, participei do meu primeiro meetup (ainda durante a pandemia), e também do meu primeiro WordCamp como participante — que aconteceu remotamente, em São Paulo. A sensação era de que tudo estava se encaixando.
\n\n\n\nE como se não bastasse, me casei com o amor da minha vida. Foi uma cerimônia simples, mas do jeito que sempre sonhamos — e que só foi possível, em grande parte, graças à renda que conquistei trabalhando com WordPress.
\n\n\n\nEm 2025, com o fim do período pandêmico, retomamos os encontros presenciais da comunidade WordPress da minha cidade. A ansiedade era inevitável: e se ninguém aparecesse?
\n\n\n\nMas apareceram. Foram 25 pessoas — todas engajadas, com vontade de aprender, ensinar, trocar experiências. Aquilo foi um divisor de águas pra mim.
\n\n\n\n\n\n\n\n\nEu entendi que podia liderar, contribuir, devolver um pouco do que recebi.
\n
Hoje, mantenho contato constante com membros da comunidade, ajudo na organização de encontros e eventos, e continuo buscando espaços e oportunidades para fortalecer esse ecossistema. O WordPress não só me ajudou a construir uma carreira — ele ajudou a moldar quem eu sou.
\n\n\n\nAssim como o Rafael contou em outro texto aqui no HeroPress, o inglês ainda é uma barreira para muitos brasileiros. Mas também é uma chave. Uma chave que, quando girada, abre portas para oportunidades inimagináveis.
\n\n\n\nEu não sou fluente. Mas sigo aprendendo. Cada lição no Duolingo, cada vídeo no YouTube, cada conversa improvisada no Slack internacional da empresa é uma forma de evoluir.
\n\n\n\n\n\n\n\n\nO importante é seguir — mesmo aos poucos, com tropeços.
\n
Porque se tem uma coisa que aprendi nessa jornada toda, é que tudo pode mudar. Às vezes, tudo o que a gente precisa é de um empurrãozinho, uma oportunidade, ou simplesmente… uma plataforma como o WordPress.
\nThe post How WordPress Changed My Life — Gratitude – Como o WordPress Mudou a Minha Realidade – Gratidão appeared first on HeroPress.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Apr 2025 14:54:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Caio Ferreira\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:93:\"WPTavern: 164 – Milana Cap on the Interactivity and HTML APIs, and Their Enormous Potential\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=194643\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:107:\"https://wptavern.com/podcast/164-milana-cap-on-the-interactivity-and-html-apis-and-their-enormous-potential\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:44216:\"Transcript[00:00:00] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, how the Interactivity and HTML APIs are transforming the way developers work with WordPress.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox and use the form there.
\n\n\n\nSo on the podcast today, we have Milana Cap. Milana is a seasoned WordPress engineer from Serbia working with XWP, and freelancing through Toptal. She’s not just a developer, she’s also active in WordPress community roles such as a co-rep for the documentation team, organizer at multiple WordCamps, and a member of the plugin review team.
\n\n\n\nWe discussed some groundbreaking WordPress features that developers should be aware of, specifically focusing on her presentation at WordCamp Asia in Manila, titled, WordPress gems for developers: Fresh new features you’ll actually want to use.
\n\n\n\nWe start the discussion with the Interactivity API. Milana explains how this feature allows blocks within WordPress to communicate seamlessly with one another. Until now, most blocks were just silos of information, they could not communicate with one another. This API enables developers to manage interactivity across multiple blocks without resorting to custom solutions.
\n\n\n\nMilana also gets into the HTML API, which underpins the Interactivity API. This empowers developers to manipulate HTML attributes using PHP, thereby reducing the reliance on JavaScript. This not only enhances page load speeds, but also simplifies the code management process. It’s not something that I’d heard of, but Milana explains how important it can be in rewriting the DOM for whatever goals you have in mind.
\n\n\n\nThroughout the episode, Milana shares examples of these APIs in action, demonstrating how they can simplify and optimize WordPress development projects, particularly at an enterprise level.
\n\n\n\nIf you’re a developer looking to leverage these new WordPress features, this episode is for you.
\n\n\n\nIf you’re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you’ll find all the other episodes as well.
\n\n\n\nAnd so, without further delay, I bring you Milana Cap.
\n\n\n\nI am joined on the podcast by Milana Cap.
\n\n\n\n[00:03:32] Milana Cap: Yes. Thank you.
\n\n\n\n[00:03:33] Nathan Wrigley: Thank you. I’ve had to practice that name several times. It’s lovely to have you on the podcast today. I’ve never spoken to Milana before, although I’ve seen her from afar many times.
\n\n\n\nAnd we’re facing each other because we’re in the Philippines. We’re in Manila. It’s WordCamp Asia, and Milana is doing a presentation at the event. It is called WordPress gems for developers: fresh new features you’ll actually want to use.
\n\n\n\nBefore we get into that conversation Milana, will you just spend a moment introducing yourself. Tell us who you are, where you’re from, what you do with WordPress, that kind of thing.
\n\n\n\n[00:04:07] Milana Cap: I’m Milana Cap from Serbia, and we have the best community in the world. I am currently WordPress Engineer at XWP and also freelancing through Toptal. I am one of the co reps for the documentation team, one of plugin review team members. I’m also a classical musician and just, you know, being loud all around. I like traveling and speaking at conferences, and that’s basically it.
\n\n\n\n[00:04:38] Nathan Wrigley: Can you just tell us a little bit about the bits and pieces going on in Serbia there? You sound quite proud of it. You said it the best or something like that. You’ve got a vibrant, healthy growing Serbian community.
\n\n\n\n[00:04:49] Milana Cap: Well, it’s not really growing, and it’s not that vibrant as it was. But the core of community that started getting together in 2016, or even before that, we still stayed, and we are still active and they’re like my brothers. We travel, we plan together. We visit each other in Serbia as friends, and we plan for barbecues and all the other stuff, besides, you know, organising events.
\n\n\n\n[00:05:22] Nathan Wrigley: So it really is an actual community.
\n\n\n\n[00:05:24] Milana Cap: Yeah it is.
\n\n\n\n[00:05:25] Nathan Wrigley: You spend social time together. Oh, that’s lovely. Yeah, and you mentioned you work with, for, XWP. This is a name that I hear a lot, but I don’t really know much about the company. Just tell us a little bit about what you do for them, and with them.
\n\n\n\n[00:05:39] Milana Cap: First of all, they are sponsoring my time at wordpress.org. It’s an agency that works mainly with enterprise clients. So we do all of it, like building you a new website, or maintaining the existing one, or fixing problems. And it’s usually, mostly, just enterprise clients.
\n\n\n\n[00:05:59] Nathan Wrigley: Is that an Australian based company?
\n\n\n\n[00:06:02] Milana Cap: It’s kind of, yeah, based. It’s created there but we are completely remote.
\n\n\n\n[00:06:07] Nathan Wrigley: Everything distributed, like a global team. Oh, that’s nice.
\n\n\n\nOkay, so let’s just move on into the topic today. The presentation that you were giving, I’ll just repeat the title, WordPress gems for developers, fresh new features you’ll actually want to use. And then I’ll read the blurb as well because it’ll give the listeners some context. We’ll take a closer look at the innovative HTML and Interactivity APIs as the most significant game changers in today’s WordPress development, with a splash of WP-CLI magic for fast and more fun development. And there might be a surprise or two.
\n\n\n\nWell, obviously on the audio podcast, we’re not going to be able to breakout WPCLI, but nevertheless, we’re going to talk about those things. We’re going to concentrate primarily on the Interactivity API. Obviously this is something that you’d need to get your hands on, you’d need to be opening a laptop. But we can’t do that. It’s an audio podcast. So first of all, let’s just break into the topic by asking the question, what is the Interactivity API? And let’s do that from a total novice perspective.
\n\n\n\n[00:07:07] Milana Cap: Okay, yeah. Well, Interactivity API allows you to get back to the whole page. At least I see it that way. Because before Gutenberg, we were using only PHP, and PHP page is aware of all of its parts. So in header, you know what’s happening in footer and vice versa.
\n\n\n\nBut then we got Gutenberg and these blocks didn’t know about their surroundings. They were just like, oh, I’m a block here, and I do what I do and I don’t care about others.
\n\n\n\nAnd it was difficult to get that in your head, like this is a completely separate entity that, once it’s in a page, you can work with that, but there is no way to connect to it to the rest of the page. And today you have a lot of requests for having interactive page. You know, not just showing the text and people come and read, you need to have something that’s happening on that page.
\n\n\n\nAnd it was very difficult to, for example, make one block do something and then you use that data in another block, that was insane. And people were trying to do those things in so many different ways. It was a mess. Like, I have a slide with dolls that have misplaced eyes and all of that. That’s how it looks like.
\n\n\n\nSo now with Interactivity API we finally get that connection, but it’s not like hacky thing, it’s in Core. So every block can be aware of the other block, and you can send the data from one block to all other blocks. And that’s really what was missing for a long time. And not just in WordPress, we have the same things happening before WordPress, in Symphony, in Laravel. So now we have that too.
\n\n\n\n[00:09:04] Nathan Wrigley: So let me just try and sum up what you’ve just said, and see if I’ve parsed it correctly and understood it. So prior to Gutenberg, given the PHP nature of WordPress, the bits and pieces that were displaying on the page, so header, footer content and what have you, they had some recognition within PHP of what one was doing and what the other was doing.
\n\n\n\nAnd then along comes Gutenberg and we shatter the experience on the page into a variety of different blocks. There’s an image here, and a paragraph here, and some more text over here, and a heading and what have you. And each of those little blocks is a silo. It lives by itself, for itself, it’s erected walls around itself so that it can’t be communicated.
\n\n\n\n[00:09:41] Milana Cap: It’s a diva.
\n\n\n\n[00:09:41] Nathan Wrigley: It can’t talk out and it can’t hear things in. And that’s a problem. I mean, it’s a brilliant solution if you want to move content around, but If you want one thing to shout to another thing and say, look, I just got clicked, go and update yourself. Add one to yourself, or whatever it may be. So that possibility evaporated.
\n\n\n\nBut now with the Interactivity API, we’ve come up with a Core solution. So it ships with WordPress, everybody has it. And suddenly we’re able to say, okay, I’m a block, I’m a button, and when I get clicked, I want you to add one to the cart. And the shopping cart number can increment by one and what have you. So suddenly everything can communicate with everything else. Have I got that about right?
\n\n\n\n[00:10:23] Milana Cap: Yes.
\n\n\n\n[00:10:24] Nathan Wrigley: Oh, perfect. Okay. And so I’ve seen examples of Interactivity over many years since Gutenberg came around, and I’m imagining that each developer, therefore has had to create their own way of doing it. And presumably that works for them, but it doesn’t work for the project as a whole.
\n\n\n\n[00:10:44] Milana Cap: Not just that. It might work for them but, let’s say you have a plugin and your plugin is doing that interactive thing with your own blocks. But me as another developer, I want maybe to enhance your blocks, but I don’t have access to whatever is happening in your blocks. So whatever you are doing, like counting stuff and changing something, I don’t have that info. So I have to do, again, hacky thing.
\n\n\n\nBut with Interactivity API, I have a standardised access to that. So I can, you know, set my blocks to support Interactivity API. And I can get, with just one function, I can get all the data from your blocks and work with them, and it’s completely in Core. It’s standardised. And anybody can take my data and, you know, this data and do whatever they want with that. And it’s not just that it’s easy to get that data, but we all do it the same way. So when I open your block, I know exactly what I will find there. I know exactly how to get that data, and how to provide to others.
\n\n\n\n[00:11:58] Nathan Wrigley: So the benefit is basically that it’s a standard mechanism. Everybody knows what the rules of the game are. So in the past, the experiences that I’ve seen online where plugin A has been able to clearly demonstrate this interactivity, a different developer coming to that would have to learn how plugin A does it, and then if they go and try and do the same thing for a different plugin from a rival, for example, they would have to learn that one.
\n\n\n\nAnd every time you wanted to do it, you’d have to learn how that system does it. So there’s no interoperability. It’s just little silos of interactivity. They worked, but they were a sort of stepping stone to what we’ve got now.
\n\n\n\nOkay, I think I understand that. That’s great. Hopefully the audience has got that as well. That should be good. Can you give us some nice examples that you’ve seen where the Interactivity API, you describe it, the audience can hear it and readily understand, okay, that’s something that it can handle.
\n\n\n\n[00:12:49] Milana Cap: Well, there is a beautiful demo that is used for demonstrating the Interactivity API by people who created Interactivity API. It’s a movie demo, and you can find it if you go for introductory post of Interactivity API at Core blog, you will find it. So it’s a simplified Netflix made with WordPress. So you get simple things like there is a favorites. So you can heart a movie, and it’ll show the number, how many favorites you have. But when you dig deeper, you can open one movie and play the trailer, and it’ll have a minimised video on the bottom. And you can, you know, browse the website and switch pages, and the video is still playing in the corner and it doesn’t even hiccup.
\n\n\n\nThe thing that is happening there is you think you are reloading pages. You think you are going to different pages, but it’s really the same page and it’s just being reloaded in what you need to reload. So it’s the hardest thing for developer to do, to switch page, but doesn’t really reload the page. And if you take a look, if you try that demo and you take a look, you will see that URL changes, everything changes, but you really didn’t move from the first page.
\n\n\n\n[00:14:18] Nathan Wrigley: Okay, so what you’ve just described then, you’ve got a, like a tiled selection of videos, and underneath it is like a little heart icon. So it’s just a demonstration that if you click the heart icon, it says, I like this one. And then it keeps a record of that somewhere else. Like, how many of you hearted over here? Or, click this heart icon and it’ll take you to the ones that you favorited. That kind of thing. But also it gives the impression that you’re reloading pages, but really it’s all just happening within that one page session.
\n\n\n\n[00:14:46] Milana Cap: Yes.
\n\n\n\n[00:14:47] Nathan Wrigley: Okay. So that’s a really easy to understand version of it. And I would imagine something like, let’s say a shopping cart, I think I mentioned that earlier, where you, I don’t know, you click that you want to add something to the cart, sort of similar process. It’s a bit like hearting, isn’t it? You add something to the cart and you get that interactive cart icon in the top right of the screen if you’re on a desktop. And it says you’ve got three items in there, and you click it and you’ve got four items in there, and so on. Those kind of things. So again, it’s one part of the website, one block if you like, updating another thing. Are there any other examples that you think are quite useful?
\n\n\n\n[00:15:21] Milana Cap: Well, I saw like countdown. So if you want your website to show the countdown until launching something. There’s also we have already two examples in Core working. So you have a query block, and you can select to have it paginated, without pagination. That’s Interactivity API.
\n\n\n\nSo anywhere you would use Ajax before, you can use Interactivity API. It’ll give you that feeling of nothing has been reloaded, so it’s just loading in that place. You don’t use Ajax, you just use Interactivity API.
\n\n\n\n[00:16:05] Nathan Wrigley: So this would be, I don’t know, a list of posts or something like that. And at the bottom of the screen, we’ve seen the first 12, 12 more, you would typically click two or the right arrow or something, and that would do some sort of Ajaxy request. But in this case, that’s now been removed and we’re using the Interactivity API, and it will give you the next 12, and the next 12, and so on. Yeah, that’s a really great example.
\n\n\n\nSo presumably, if this is moving into WordPress Core, does that mean that a lot of the Core features that, like for example, pagination, has that now moved over in WordPress Core to using the Interactivity API?
\n\n\n\n[00:16:37] Milana Cap: Well, I know that that specific feature has moved to Interactivity API, and also the image block has the option for lightbox. That’s also Interactivity API. That’s currently in Core. And I imagine a lot of other things can be moved. But also it doesn’t have to. The only thing that it needs is a good documentation, and option that you can use it so you can do with it whatever you want.
\n\n\n\n[00:17:07] Nathan Wrigley: What is the documentation like? You know, if I was a developer and I wanted to begin using this because, sounds good, I’d rather not maintain my own bucket load of code for my interactivity in my plugin, for example. Let’s just throw all that out and go with what WordPress has. Is there a ton of documentation to get developers started?
\n\n\n\n[00:17:25] Milana Cap: There is. They are not making the same mistake we had with Gutenberg. I think for Interactivity API, the most difficult thing is to actually understand it. Because we had, I had, as PHP developer primarily, I had a problem to understand Gutenberg and to understand how React works, and why React doesn’t understand how I think, you know? And I was always over-engineering it because I was covering all the cases.
\n\n\n\nBut React doesn’t care about all the cases. It was very difficult for me to understand how that works on components based, and these components don’t care about anything else but themselves.
\n\n\n\nSo Interactivity API now connects all of this. And we are coming back to the system that is aware of all its parts. But not just that, in Interactivity API you have the option to write the code where it makes the most sense.
\n\n\n\nWhen I was playing with it, I had two blocks that were supposed to talk to each other, and I realised that something that was one block doing, it made the most sense to write the code for it in another block’s VueJS. So I was using the, there is the template that you can use for Interactivity API, and it’ll run the Create Block Script, but just use the Interactivity API template. And then you get the block that has switch from light to dark theme.
\n\n\n\nThere is a toggle. The first was, it was only the toggle, and I was very disappointed. Like, the toggle shouldn’t use any JavaScript at all. But it was a good example for what Interactivity API can do. And now with the theme switching, it’s kind of complete. You understand all the things that Interactivity API is.
\n\n\n\nSo this toggle was another button, and you click on it, and it shows the paragraph. And then you click on it again and it closes the paragraph. And then I used another block, and I wanted that other block to count how many times I opened and closed this toggle. It was mind blowing that that code for counting how many times I open and close it, I will show the data in this other block.
\n\n\n\nBut it made much more sense to write the code for it in this first block, because I already have there code that is aware that this is open and closed. So I could just, you know, add one line of the code, and update the number there in another block. So that’s kind of the most difficult thing with Interactivity API, to understand how that functions, and that you can really achieve a lot with one piece of code, one line of code, but put it in a right place. And it can be in different places. So that’s something, you know, for you as a developer to document where I wrote things.
\n\n\n\nSo with the Interactivity API, the most important thing is to actually understand how that works. There is very good documentation there for the basic stuff, definitions and all of it. And also, examples. But really, it’s not just copy, pasting from example, it’s playing with it and understanding how it is connected.
\n\n\n\nAnd once it’s clicked in your mind, it’s mind blowing. It’s like a game. Well, the coding for me is like a game. That’s why I started coding. But it is very interesting that you can, you know, play with it, you can break it, you can find different ways. And I was playing with putting the same code in different places to see if it will work, it will.
\n\n\n\nSo there is a new skill that we will see with Interactivity API, like the most beautiful code and the most beautiful place where you put that code. And I think it’s very much open for optimising code. And you’ll see there the level of expertise of developer for how much they understand the optimisation of JavaScript code.
\n\n\n\n[00:21:45] Nathan Wrigley: Is the Interactivity API, how to describe it, is it finished?
\n\n\n\n[00:21:49] Milana Cap: No.
\n\n\n\n[00:21:50] Nathan Wrigley: Yeah. I mean, basically nothing in WordPress really is ever quite finished, is it?
\n\n\n\n[00:21:54] Milana Cap: If you software, then it’s never finished.
\n\n\n\n[00:21:56] Nathan Wrigley: No. But would you say it already has pretty much everything that you require it to have? Or can you imagine scenarios where it would be really nice to have this feature or this feature? What I’m trying to get to is, is it still under active development? Can people listening to this podcast who think that that would be an interesting use of their time to help contribute to that, is there still work to be done? And where would we go to get involved in that?
\n\n\n\n[00:22:21] Milana Cap: You can go to, there is a GitHub issue that is called Interactivity API showcase. It’s in Gutenberg repository. And you’ll see a lot of different ideas, how people want to use Interactivity API. And you will, when you start looking at those examples, you start to get ideas, what you could use it for. And you get to remember all the projects you had that you could really use Interactivity API there.
\n\n\n\nI don’t think it’s done. I don’t think it’ll ever be done because, you know, clients get very creative with things they want. And I think we can’t even imagine what we would want until we get to the request to do it for a project. So there’s a lot of things to do, as in feature terms, but there’s always, you know, fixing code, optimising here and there and cleaning things up. And then there’s an update from library that it depends on, and then you have to, you know, do that. So there’s always maintenance if you use software. It’s never done.
\n\n\n\n[00:23:31] Nathan Wrigley: I feel like if you are, let’s say 18 years old, you’ve been brought up in an era where you’ve had a phone in your hand and the apps on the phone are kind of what you’ve grown up with expecting from things online. And everything over on the phone is interactive. There’s just this expectation that you can click a button and it will do some desired action over there.
\n\n\n\nAnd it feels like a website that doesn’t have interactivity is almost, well, I mean, I know you can have brochure websites and things like that where it’s just static content. It feels like that’s the expectation and it’s more and more going to be the expectation. So if a project like this hadn’t come along, WordPress websites would’ve felt really strange. You know, stuck in the past in a way, because of that lack of interactivity.
\n\n\n\nAnd now hopefully developers who haven’t got the time, the budget or the experience to do this on their own, hopefully they can start offering solutions by just reading the documentation and not having to dig into the weeds of absolutely everything, just implement what’s been written for you, and hopefully that’ll bring WordPress more into the year 2025.
\n\n\n\n[00:24:36] Milana Cap: Well, I think that if you take from that perspective, like you are 18 years old and have everything, all the apps you want in your phone, I think that WordPress is already weird to them. They are not using CMS, it’s too much effort for the things they can do with another app in their phone.
\n\n\n\nBut I don’t think that WordPress is for them. I mean, WordPress is CMS. So it’s meant to be used with purpose while kids today still look for, you know, quick content that they can, my daughter is 21 years old and she sends me, you know, memes and videos all the time. Most often than not, yeah, I tell her I don’t understand this. And she says, well, it’s funny because it’s stupid. I say, I still don’t understand this.
\n\n\n\nI mean, she understands the life cycle of something that is meaningful, something that is important. And that is something that we would use WordPress for. But their concentration and focus span is just, give me this stupid video, that’s funny because it’s stupid, and I’ll move on. So I don’t think we should even try to put WordPress there and try to satisfy that request. But still there are requests that Interactivity API does satisfy. And that was needed to be added to WordPress.
\n\n\n\n[00:26:07] Nathan Wrigley: Yeah, it’s certainly nice for developers not to have to, well just basically roll their own solution and waste tons of time doing something 1,000 times, literally 1,000, maybe 10,000 times done differently. Whereas now everybody can just lean into this one implementation, and it’s baked into Core. And then everybody can inject things into, on top of your code, and you can look at other people’s code and extend it in that way. So hopefully that will mean that, you know, the project as a whole can move forward.
\n\n\n\nLet’s move on to something that I literally know nothing about, HTML API. You’re going to have to go from the very most basic description and I will try to keep up.
\n\n\n\n[00:26:46] Milana Cap: Well, HTML API is actually what powers Interactivity API. So we wouldn’t have Interactivity API as it is right now, if we didn’t have HTML API. For now we have two classes that we can use, HTML tag processor. Which is idea to use PHP to modify attributes in Gutenberg blocks, in their markup. Because it was so difficult to approach the block to get to that code and modify anything once it’s on the page.
\n\n\n\nSo the HTML tag processor is just working with the attributes in markup. But it was meant to be used for Gutenberg blocks, but it really doesn’t matter what you use, it’ll process any HTML if it finds it. And it’s very useful for many things that we would use jQuery for before, and we would load the whole JavaScript file. You can add, remove, classes. You can set the aspect ratio for iframe. You can set image size attributes. You can add accessibility attributes where you need them.
\n\n\n\nAnd it’s all happening in PHP, you know, on the page load. It’s very fast. It’s amazing. And that’s what is powering those HTML directives that we have in Interactivity API. So in markup you will find data WP and then the rest of directive. And those directives are connecting the server side and the client side in JavaScript for Interactivity API. I think it’s called WP Directive Manager, the class that is really internal class, and it’s just being used by Interactivity API.
\n\n\n\nBut then there’s a class that’s called HTML processor. And this one is doing more things than tag processor. This one knows about the closing tag, and this one will support inserting and removing nodes from the page, or wrapping and unwrapping tags on the page, then reading and modifying inner content. So everything that you were loading JavaScript for, you know, all the makeup stuff, and if something is clicked then, you know, wrap me this paragraph in this div, and then we will change the class or whatever.
\n\n\n\nYou can do that with PHP now, and it feels so much less hacky. You have it. I had actually example for removing the no-follow attribute for internal links. So searching for internal links, before HTML tag processor, you would have to use regex, and regex is invented by extraterrestrials to make fun of humans.
\n\n\n\nSo it’s also, you cannot cover all the cases with regex. There are always surprises. There is always some edge case you didn’t think of and cover. And when you look at that code, even five minutes later, you don’t understand anything. It’s something that you Google, and you trust the code that you found on Google.
\n\n\n\nBut this one, when you used a tag processor, you actually understand everything. And it covers all edge cases. There are no surprises because it’s been built with HTML standards. So it supports every type of HTML that we will probably never see in our lives. You know, all the broken stuff and all of it, it supports it. And it’s been built by Dennis Snell. That is something unlike Interactivity API.
\n\n\n\nSo we saw that Laravel has it, and Symphony has it, and Phoenix first did it. But this is something that nobody has. This is our own. And Dennis now built it from zero, completely custom. And he’s now working in putting it into PHP. So it’ll be available, yeah, to everyone. That’s a really big thing.
\n\n\n\nI gave this talk in September at PHP Serbia and people were sitting, you know, PHP developers who are working with Symphony and Laravel and doing custom PHP, and they were like, oh my God. And I was like, yeah, WordPress has something you don’t have. That was really nice feeling. Yeah, I like that Dennis is actually putting that into PHP.
\n\n\n\n[00:31:30] Nathan Wrigley: So again, like I did with the Interactivity API, I’m going to do the same here. Let me just see if I’ve understood what it is. So the idea really, if you want to interact with the DOM, right now, the typical way of doing that is with some JavaScript or other. So let’s say for example, I don’t know, you want to do the third child of a div, and you want to put a border around that.
\n\n\n\nWith JavaScript, you’re going to find that third div, and then you’re going to insert some class, which will then get modified by the CSS to add a border and a border radius, and what have you. So that’s all done on the client side. Page loads, JavaScript loads, and then the DOM gets rewritten by the JavaScript.
\n\n\n\nBut in this scenario, it’s going server side. It is PHP. So it’s really much more readable and maintainable, and it all just lives in this one spot with all the other PHP. And then you would write something, basically the same thing, but in PHP, to do the same job. And then WordPress, so there’s no rewriting of the DOM. WordPress writes the DOM with that in mind. So the output HTML already has that in it. You’re not using JavaScript to rewrite what’s already been written, so it speeds things up as well.
\n\n\n\n[00:32:39] Milana Cap: Yes, yes. You have less requests because there’s no file that you are requesting. There’s no waiting on, you know, everything to load. And to rewrite it, it’s just going right there.
\n\n\n\n[00:32:51] Nathan Wrigley: So it’s the same process though. The way that you would do it in JavaScript, you’re now just transferring that into PHP, but the method that you’re using to do it would be the same, you know, search for the third child of this parent div, and then give it an extra class and that’s what happens.
\n\n\n\n[00:33:04] Milana Cap: Yes.
\n\n\n\n[00:33:05] Nathan Wrigley: Okay. Yeah, that’s really straightforward. And really, really, really powerful.
\n\n\n\n[00:33:09] Milana Cap: It is.
\n\n\n\n[00:33:10] Nathan Wrigley: Because not only can you write your own thing in that way, but if you want to upend what’s already been written by, I don’t know, let’s say there’s something strange in a plugin that you’ve downloaded. Would this be able to rewrite the things that the plugin is injecting?
\n\n\n\n[00:33:23] Milana Cap: Yes.
\n\n\n\n[00:33:23] Nathan Wrigley: Okay, so you can, I don’t know, let’s say there’s a plugin which does something quirky in the HTML, you don’t like it, you want to strip something out or add something in. It sits between where the plugin injects its code and where the end user receives the HTML.
\n\n\n\n[00:33:35] Milana Cap: Yeah.
\n\n\n\n[00:33:35] Nathan Wrigley: That is interesting. So it’s a total rewrite of the HTML.
\n\n\n\n[00:33:38] Milana Cap: Mm-hmm.
\n\n\n\n[00:33:39] Nathan Wrigley: That is fascinating.
\n\n\n\n[00:33:41] Milana Cap: Yeah, and it’s fast. It’s actually working faster than when you would load JavaScript for that.
\n\n\n\n[00:33:48] Nathan Wrigley: So in many cases it renders much of the JavaScript, the JavaScript that’s being used to modify the DOM. It completely negates the need for that?
\n\n\n\n[00:33:59] Milana Cap: Yes.
\n\n\n\n[00:33:59] Nathan Wrigley: Have you found it easy to learn this?
\n\n\n\n[00:34:01] Milana Cap: Yeah, yeah. It’s very easy. It’s even easier than Interactivity API. It’s just, you know, you instantiate the class, pass the string to it that you want to, you know, search for tags, and then you have methods. You call the method and loop through the things, or you don’t have to loop, depending what you are looking for. And there is a method, remove attribute, add attribute, remove class. You know, it’s that easy.
\n\n\n\n[00:34:28] Nathan Wrigley: And, like everything in WordPress, you said earlier, it’s never finished. There’ll always be work done on it. But as of now, we’re recording this late February, 2025, is it pretty complete for all the things that you’ve wished to do? Does it have an answer for that, or is there still work to be done?
\n\n\n\n[00:34:42] Milana Cap: The HTML processor needs to be optimised, so it’s not completely production ready yet. Tag processor is optimised and ready to use, and we actually used it in 2023. We waited for new release when it was coming into Core. We waited for two weeks and delayed the deployment to get it in to actually, because that example that I used for removing no-follow attribute from internal links, that’s the real world example that we had. And it was really annoying problem that was so easily fixed with five lines of code, once the HTML API got into Core.
\n\n\n\n[00:35:25] Nathan Wrigley: I obsess about WordPress, like that’s all I think about most days basically, and yet this is somehow completely passed me by. The Interactivity API, somehow that captured my attention. There must have been some press release, or something to explain that this is happening. But the HTML API completely passed me by. I wonder if that’s just my lack of trying hard enough.
\n\n\n\n[00:35:46] Milana Cap: No, that was actually the case for many people. So for that WordPress release, I was leading the documentation focus. So I know, I wrote the field guide, and I knew that was there. But many people didn’t know.
\n\n\n\nAnd that idea behind this new series of talks that I do. So to find these, it’s very good that these things come into Core slowly, like piece by piece. What is ready? What is optimised? But because they are small, people don’t hear about them, because we don’t advertise that. And Interactivity API is, it gets the same treatment as any other Gutenberg feature. Like, oh, it’s flashy, it’s new, come see this.
\n\n\n\nBut HTML API is completely PHP. It actually powers Interactivity API, but nobody knows that. And those were like small pieces getting in, because its purpose was to serve Gutenberg. So it wasn’t really advertised as something you can use for other things. But you know developers, they find ways to use something for different things.
\n\n\n\nAnd that’s why I wanted to create these talks to actually show people there are so many things you can do with WordPress now that are new. And you can use them today, and tomorrow they will be even better.
\n\n\n\n[00:37:14] Nathan Wrigley: I guess with the Interactivity API you are solving a really hard problem. So to be able to modify one part of the page, it’s content and it’s a separate block, that’s a difficult thing to overcome. So there’s a lot of work to get over that. But if you just want to add a border to the third child of a div, everybody’s using the same JavaScript technique to do it. So there’s a well understood way of doing it.
\n\n\n\nAnd so that, I suppose, leads to the question, what is the benefit over just using JavaScript? Why would we want to use the HTML API instead of just the familiar thing, which probably everybody’s doing, you know, just rewrite things with JavaScript. Is it basically coming down to ease of readability for everybody, and speed?
\n\n\n\n[00:37:57] Milana Cap: Yeah. I think if you take a look at, for example, enterprise projects. The way developers optimise the code, it’s like every piece of millisecond counts because these projects are huge, and they have a lot of visits. So if you can remove all the JavaScript, I mean, that’s huge. That is making such impact, and it brings you like 10 places before your competition. Doing just that is enough to use this over JavaScript.
\n\n\n\nBut also, it replaces not just need for JavaScript, but need for regex as well. And again, in enterprise projects, when you have huge databases running regex and having potential to not work everywhere where it’s supposed to work, as opposed to this, that is very straightforward. Not too many lines of code, and it’s actually faster. You would take that chance.
\n\n\n\n[00:39:03] Nathan Wrigley: Yeah, I guess if you’ve just got like a five page brochure website, that’s for a mom and pop store, you’re probably not going to be worrying too much. But if you’ve got an enterprise page, you know, an enterprise level website which is maybe getting, I don’t know, 50,000 hits every hour or something like that. Shaving 10 milliseconds out, multiply that by 50,000, I mean, not only is it quicker, so Google likes it, but also the cost of everything goes down. You know, there’s less bits flying across the internet. It’s all been optimised. And I guess at the enterprise level, all of those things matter.
\n\n\n\n[00:39:36] Milana Cap: Yeah, everything matters.
\n\n\n\n[00:39:37] Nathan Wrigley: Yeah, that’s fascinating, genuinely fascinating, and something that I’d never heard of. So I will go and, when I’ve edited this podcast, I’ll go and preach the gospel of the HTML and Interactivity APIs. That’s everything I wanted to ask. Milana, is there anything that you wanted to get across that I didn’t ask?
\n\n\n\n[00:39:53] Milana Cap: No.
\n\n\n\n[00:39:54] Nathan Wrigley: No. In that case, Milana Cap, thank you very much for chatting to me today. Really appreciate it. I hope you enjoy the rest of your time in Manila.
\n\n\n\n[00:40:01] Milana Cap: Yeah, thank you for having me.
\n\n\n\n[00:40:03] Nathan Wrigley: You’re very welcome.
\nOn the podcast today we have Milana Cap.
\n\n\n\nMilana is a seasoned WordPress Engineer from Serbia, working with XWP and freelancing through Toptal. She’s not just a developer; she’s also active in WordPress community roles such as a co-rep for the documentation team, organiser at multiple WordCamps, and a member of the plugin review team.
\n\n\n\nWe discuss some groundbreaking WordPress features that developers should be aware of, specifically focusing on her presentation at WordCamp Asia in Manila titled “WordPress gems for developers: fresh new features you’ll actually want to use.”
\n\n\n\nWe start the discussion with the Interactivity API. Milana explains how this feature allows blocks within WordPress to communicate seamlessly with one another. Until now, most blocks were just silos of information, they could not communicate with one another. This API enables developers to manage interactivity across multiple blocks without resorting to custom solutions. We talk about some possible use cases.
\n\n\n\nMilana also gets into the HTML API, which underpins the Interactivity API. This empowers developers to manipulate HTML attributes using PHP, thereby reducing the reliance on JavaScript. This not only enhances page load speeds but also simplifies the code management process. It’s not something that I’d heard of, but Milana explains how important it can be in rewriting the DOM for whatever goals you have in mind.
\n\n\n\nThroughout the episode, Milana shares examples of these APIs in action, demonstrating how they can simplify and optimise WordPress development projects, particularly at an enterprise level.
\n\n\n\nIf you’re a developer looking to leverage these new WordPress features, this episode is for you.
\n\n\n\nMilana’s presentation at WordCamp Asia 2025: WordPress gems for devs: fresh new features you’ll actually want to use
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nInteractivity API showcase #55642
\n\n\n\nThe HTML API: process your tags, not your pain
\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Apr 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"Do The Woo Community: The Do the Woo Release Notes Newsletter on LinkedIn\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=94001\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"https://dothewoo.io/blog/the-do-the-woo-release-notes-newsletter-on-linkedin/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:128:\"If you are on LinkedIn and looking for a deeper look into our episodes as they are released, we have a newsletter there for you.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Apr 2025 10:39:06 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"WordPress.org blog: WordPress 6.8 Release Candidate 3\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18673\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/04/wordpress-6-8-release-candidate-3/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8482:\"The third release candidate (“RC3”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC3 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC3 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-RC3 |
WordPress Playground | Use the 6.8 RC3 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts leading up to next week’s release for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC2, you can browse the following links:
\n\n\n\nWordPress is open source software made possible by a passionate community that collaborates and contributes to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users. For more details on developer-related changes in 6.8, please review the WordPress 6.8 Field Guide.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC3, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本? हिन्दी? मराठी? বাংলা? You can help translate WordPress into more than 100 languages.
\n\n\n\nThe launch draws closer,
Six-eight sings through RC3,
Almost time to shine.
Thank you to the following contributors for collaborating on this post: @audrasjb, @mamaduka, @krupajnanda, @benjamin_zekavica, @narenin, @joedolson, @courane01, @joemcgill, @marybaum, @kmgalanakis, @umeshsinghin, @wildworks, @mkrndmane.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Apr 2025 15:54:49 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"Do The Woo Community: Our Final Wrap of CloudFest 2025 with Robert, Zach and Carl\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=94070\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"https://dothewoo.io/our-final-wrap-of-cloudfest-2025-with-robert-zach-and-carl/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:205:\"In this episode of Dev Pulse, hosts discuss CloudFest 2025, highlighting unique event experiences, innovative hackathon projects, networking opportunities, and a preview of upcoming CloudFest USA in Miami.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Apr 2025 12:32:39 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:96:\"Do The Woo Community: Four Practical Steps Towards Inclusion for Content Creators and Developers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=85966\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"https://dothewoo.io/blog/four-practical-steps-towards-inclusion-for-content-creators-and-developers/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:305:\"In a past podcast our host Anne provided practical advice for content creators and developers to foster an inclusive environment. They are simple and to the point. Key suggestions included: You can hear the full episode here Exploring Accessibility and Neurodiversity in WordPress with Anne Mieke Bovelett\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Apr 2025 09:55:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"Do The Woo Community: Do the Woo v5.1 Changelog\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93974\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"https://dothewoo.io/blog/do-the-woo-v5-1-changelog/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:27:\"Four new co-hosts and more.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 07 Apr 2025 13:07:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:10;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:99:\"Do The Woo Community: Michelle Frechette Joins the Do the Woo Hosting Team for WordPress Event Talk\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93984\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:98:\"https://dothewoo.io/michelle-frechette-joins-the-do-the-woo-hosting-team-for-wordpress-event-talk/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"BobWP announces Michelle Frechette as the new host for WordPress Event Talk.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 07 Apr 2025 09:42:17 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:11;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"Gravatar: What is Gravatar? Basics for WordPress and Beyond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"http://blog.gravatar.com/?p=3019\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://blog.gravatar.com/2025/04/06/what-is-gravatar/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:17132:\"Have you ever noticed how your profile picture magically appears on some blogs, forums, or websites without needing to upload it each time? That’s the power of Gravatar. Since 2004, we have been quietly revolutionizing online identity, offering a consistent way to represent yourself across the open web.
\n\n\n\nGravatar stands for Globally Recognized Avatar. It’s a free profile for the web that uses your email address as its core identification system. This clever approach lets you maintain a single avatar and profile that follows you across major platforms like WordPress, Slack, and GitHub.
\n\n\n\nThe concept is simple but powerful. Instead of creating separate profiles on dozens of websites, Gravatar centralizes your online identity. With over 8.6 billion avatar requests served daily, it’s become an essential part of the online experience for millions of users.
\n\n\n\nIn recent years, Gravatar has expanded beyond just avatars Now, integrated websites can pull complete profile information from your Gravatar account. This improves the profile creation and onboarding processes, saving time and reducing friction when joining new platforms.
\n\n\n\nAt its core, Gravatar uses your email address as a unique identifier. When you comment on a blog or join a platform that supports Gravatar, the system looks up your email to find your profile information.
\n\n\n\nDon’t worry about privacy concerns. Gravatar doesn’t simply expose your email address to every website. Instead, it converts your email into a secure hash – essentially a one-way code that protects your actual address while still creating a consistent identifier. This technical conversion ensures your email stays private while allowing the system to recognize you across different sites.
\n\n\n\nAnother one of Gravatar’s most powerful features is its synchronization capability. Update your profile once, and the change instantly reflects across millions of integrated websites through the Gravatar API. This eliminates the hassle of updating dozens of separate profiles when you change your photo or information.
\n\n\n\nFor professionals, this creates an efficient way to build and maintain a consistent online persona. Want separate identities for work and personal activities? Simply create different Gravatars using different email addresses. This separation gives you complete control over how you present yourself in various contexts.
\n\n\n\nImagine never having to repeatedly upload profile pictures or maintain consistent information across multiple platforms. That’s the advantage Gravatar provides – centralized profile management that simplifies your online presence while maintaining your privacy.
\n\n\n\nEach time you visit a new website that supports Gravatar, your profile information automatically appears – no duplicate accounts, no forgotten passwords, and no inconsistent branding. Your carefully crafted online identity follows you seamlessly across the web.
\n\n\n\nAnd the best part? Claiming your Gravatar is completely free. Let’s walk through how to set one up.
\n\n\n\nThe process takes just a few minutes, but the benefits last for years. Once configured, your Gravatar becomes your digital passport, making it faster to join new communities and ensuring consistent recognition across the web.
\n\n\n\nRemember that your profile is publicly visible by default, so only include information you’re comfortable sharing.
\n\n\n\nNow that you’ve set up your basic Gravatar account, let’s look at ways to enhance its effectiveness.
\n\n\n\nIn the general settings, you can choose to hide your public avatar, make your profile private, or discourage search engines from indexing your profile. This flexibility lets you balance visibility with privacy.
\n\n\n\nAs you can see, you only need a little bit of effort, and you can end up with a well-optimized Gravatar profile that helps you:
\n\n\n\nGravatar has been deeply integrated with WordPress since 2007, when it was acquired by Automattic (WordPress.com’s parent company). This acquisition created a strong connection between these platforms that continues to benefit users today.
\n\n\n\nWhen someone with a Gravatar profile comments or posts on a WordPress site, the system automatically pulls their Gravatar profile to display as the author.
\n\n\n\nThis creates a consistent visual identity across WordPress blogs without requiring users to set up separate profiles on each site they visit. Your professional image follows you throughout the WordPress ecosystem, helping readers recognize you across different blogs and publications.
\n\n\n\nSite owners can easily customize how avatars appear on their WordPress sites through the dashboard under Settings > Discussion. This section allows administrators to enable or disable avatars, select maximum ratings (G, PG, R, X), and choose default avatars for users without Gravatars. Options range from generic silhouettes to generated patterns based on email addresses.
\n\n\n\nBut Gravatar extends well beyond WordPress. Major platforms like GitHub, Slack, and OpenAI also use Gravatar to provide consistent user images across their services. This widespread adoption means your professional identity remains cohesive across much of the web.
\n\n\n\nThe greatest benefit comes from Gravatar’s central management approach: Update your profile once, and those changes sync across all connected platforms. Whether you’ve changed jobs, updated your headshot, or refined your bio, you only need to make these changes in one place. This saves valuable time and ensures your brand presentation remains consistent no matter where your online activities take you.
\n\n\n\nGravatar gives you strong privacy controls to manage your digital identity. You can choose exactly which profile details to share publicly and which to keep private, so you always know who can see your data. Besides the settings you can adjust for yourself, Gravatar uses industry-standard measures like HTTPS to keep your data safe as it travels across the web.
\n\n\n\nHowever, even with these protections, it’s still a good idea to maintain separate profiles for work and your personal life. Using different email addresses for your work and personal Gravatars creates a helpful separation that prevents people from connecting different parts of your life. This approach also lets you customize privacy settings for each email address – keeping your professional presence polished while maintaining personal privacy.
\n\n\n\nOne of Gravatar’s key benefits is that it helps minimize your overall digital footprint. Instead of creating and managing accounts across dozens of websites and platforms (each with potential security vulnerabilities), you only need to update your personal information in one central location. This reduces your exposure to data breaches while ensuring your public-facing information remains accurate and up-to-date across the web.
\n\n\n\nReady to claim your digital identity? Getting started with Gravatar takes just a few minutes but establishes your online presence across thousands of websites instantly.
\n\n\n\nHere’s how to get your Gravatar profile up and running:
\n\n\n\nWith this single action, you’ll join millions of users on WordPress.com, GitHub, Slack, and other major platforms with your new globally recognized avatar. Your professional image will automatically appear whenever you comment, contribute, or interact across the web.
\n\n\n\nNo more maintaining separate profiles on dozens of websites. With Gravatar, you create one central identity that follows you across the internet, saving time while ensuring a consistent, professional presence everywhere you go.
\n\n\n\nCreate your free Gravatar profile today!
\n\n\n\nBirgit Pauli-Haack and JC Palmes talked about WordPress 6.8, Source of Truth, Field Guide, Gutenberg 20.5 and 20.6.
\n\n\n\nAdd a summary/excerpt here
\n\n\n\n\n\n\n\nShow Notes
\n\n\n\nZoom Out: Disabled when show template disabled #69777
\n\n\n\n\n\n\n\nStay in Touch
\n\n\n\nTranscript
\n\n\n\nBirgit Pauli-Haack: Welcome to our 116th episode of the Gutenberg Changelog Podcast. In today’s episode we will talk about WordPress 6.8, The Source of Truth, the Field Guide, Gutenberg 20.5 and Gutenberg 20.6, and a few other things, little things in between.
\n\n\n\nI’m your host, Birgit Pauli-Haack, curator at the Gutenberg Times, and a developer advocate working for Automattic. And it’s a great privilege for me to have with me, JC Palmes, who is the engineering manager at Web Dev Studios, again on the show. JC was also the local co-lead of this year’s WordCamp Asia in the Philippines, and it was a great WordCamp. So, congratulations. So glad you made it today, JC, how are you?
\n\n\n\nJC Palmes: I’m doing great. And, actually, my role changed since we’ve last had this. Yeah, so I’m now the principal technical manager at Web Dev Studios.
\n\n\n\nBirgit Pauli-Haack: Congratulations.
\n\n\n\nJC Palmes: Thank you. But yeah, I’m happy to be back. And things have been good, very busy, but the good kind. I’ve been deep in block themes again, so I’m excited about this episode. So, I’ve seen there’s a lot of cool stuff in 6.8 in the recent Gutenberg release I think developers like me will appreciate, especially those who are building for clients and working with starter themes.
\n\n\n\nBirgit Pauli-Haack: Yeah, absolutely. So, the first time you were on the show was last September in Episode 108, and you had just released the first version of the WSD, W-
\n\n\n\nJC Palmes: WDS-BT.
\n\n\n\nBirgit Pauli-Haack: … WDS-BT, yes, I’ll get it right, block starter theme, and we discussed it on the show. And after using it for half a year now, how are you doing with it, and what have you learned?
\n\n\n\nJC Palmes: Yeah, so it’s been a great journey since then. After six months, was it really just six months, of using and refining WDS-BT in real client projects, I’ve learned a lot about what engineers need from a starter theme, especially when working with the site editor.
\n\n\n\nAnd we’ve recently released Version 1.1, and most of the updates were based on feedback from our team, lessons from actual use in client sites, and one of the biggest things we focused on was making it easier to generate blocks and patterns consistently using our internal script, which is now part of BT as well.
\n\n\n\nSo, it’s all documented in the README if any developers out there want to try it out. So, this really helps streamline development for everyone. And we also have a demo site so that clients and internal teams and Sales can preview how the theme behaves out of the block. It’s been really helpful for onboarding and for setting clear expectations early on.
\n\n\n\nBirgit Pauli-Haack: Yeah, I can imagine that, yes, and with the scripts now. So, you just said you had two scripts. One is to create custom blocks, and the other one to patterns. That’s the first time that I’ve heard about it.
\n\n\n\nJC Palmes: Oh, sorry. Well, not… So, we have an internal script. So, BT is part of our other repo that helps us create a client site from scratch. And what that does is, there’s a script that I’ve added in where we can create a theme based on WDS-BT in five minutes, and it goes through all the process in the terminal, and then, after that, you have a full website theme working, a block theme working as is.
\n\n\n\nAnd the other one, which is part of BT, is in creating scaffolding blocks. So, BT comes with a block theme template that is baked into our custom webpack config. That webpack config is defaulting on WordPress config still, but we did add in a bit more flavor to it based on our use case.
\n\n\n\nBirgit Pauli-Haack: Oh, of course, yeah, that’s what it’s for, yeah, to adopt it, yeah. So, wonderful. So, dear listeners, we will share the links, one is to the theme, and also, to the demo site, in the show notes so you can test it out and see if it could also be your starter theme for your clients, and at least gives you…
\n\n\n\nJC Palmes: Yeah, that would be awesome.
\n\n\n\nBirgit Pauli-Haack: … and gives you some inspiration for that. And I’m always looking for inspiration about how people approach a topic, so I’m glad that you and your company share so much online and build it in public, and also, shared quite a few blog posts about it, not only about your theme, but also your approach on getting clients work from a classic theme, and then, gradually go block-based.
\n\n\n\nAnd I just listened to Brad Williams on the Press blog with Steve Birch. He interviewed him. So, I share that video as well in the show notes, and it starts out with what the approach is or how they approach it in terms of guiding clients through a block-based journey there when they were so happy with the other thing, yeah. And it starts at 20 minutes to get really into that. So, that was a really good conversation as well, with Steve Birch.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: So, we don’t have any announcement or listener questions today, but we have a few things that are community contributions or that I’ve selected, and one is pretty much the same topic. Kevin Devon and Mark Wilkinson from Highrise Digital, an agency in UK, shared their theme-building strategy for a school project at the London WordPress meetup.
\n\n\n\nAnd it was really insightful to see how these experienced theme creators use the site editor to build a theme, and then, let the client fully customize, also, their sites. They actually go pretty deep and show what block that they hide from the school, what block variations on the embeds that they hide, and how to do that. They even shared some code.
\n\n\n\nSo, it was quite fast-paced, but video, you can just stop it and listen to it again, and all that. Yeah, so it’s called Building a Block-based WordPress Site with FSE. Yeah, they also went pretty detailed in what kind of custom blocks they did.
\n\n\n\nAnd they actually didn’t program them themselves, they used ACF because of the data entry screens as well. So, they only did two. The rest was all core stuff, yeah. So, it’s really cool to see how that works out.
\n\n\n\nJC Palmes: I’ll have to check it out.
\n\n\n\nBirgit Pauli-Haack: Yeah, they do some great work at Highrise Digital as well. And I have three more videos, so to speak, or tasks for you, dear listeners. So, three well-known developers in the community continue with their live streams. They started either this year or long before, but Jonathan Bossenger, many know from the developer courses at Learn WordPress, has been learning working with AI, and he shares it, be it wins or losses, on the live stream.
\n\n\n\nAnd this week he tried to find out, can AI fix my Plugin Check issues? So, Plugin Check is a plugin that you install on your site when you develop a plugin, and then run through all the checks that the plugin review team has built so you are ahead of the curve when you submit it to the WordPress repository.
\n\n\n\nBut it’s not only good for when you submit it to the repository, it definitely helps you, also, with your own, even if you just give it to your clients also to beef up, check out some of the issues that are always problems.
\n\n\n\nYeah, so I cannot say because that’s a secret. No, you need to check it out themselves, how good he was, how good it worked for him. And the second one is JuanMa Garrido, he is from Spain, and is also a developer advocate at Automattic, and he shared live stream sessions in Spanish and English, not at the same time, of course.
\n\n\n\nJC Palmes: Okay.
\n\n\n\nBirgit Pauli-Haack: … me speaking Spanish, but no, he has one week he does this in Spanish, and the next week he does something else in English. So, that’s quite a good thing for the Spanish community as well.
\n\n\n\nAnd he recently livestreamed going through the Data Layers Course on Learn.WordPress and built the app in public, and goes through, not all lines of code, but he explains the concepts behind that, even…
\n\n\n\nWell, sometimes you need somebody to walk you through things so it actually clicks in your mind a bit, and that’s what JuanMa Garrido did. And then, Ryan Welcher is the pioneer of livestreaming…
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: … in WordPress, and he’s done it for, I think, almost three years, if not longer. And he livestreams every Thursday at 2:30 PM, UTC, on Thursdays, unless he’s on a meetup or at a WordCamp or on holiday. And he has been, recently, working on adding user profiles and user interactions to his Block Developer Cookbook, which is the base of all his workshops where he has a few recipes that he walks through.
\n\n\n\nIn live events or in-person events like WordCamps, people can vote on which recipe should be talked about. And so, it was quite interesting to see at the workshop at WordCamp Asia last year and this year, because every event is different, yeah.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: So…
\n\n\n\nJC Palmes: I missed that one. I wanted to be there, but with being a local lead organizer for WordCamp Asia, you can’t really be on the sessions that you want to be just because there’s a lot going on on the, you know?
\n\n\n\nBirgit Pauli-Haack: Yeah. And unfortunately, workshops are not recorded, as far as I can tell.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … because they’re also too long, yeah, and they are not a… So, a talk, when it’s recorded, it’s, most of the time, fast-moving because you only have 30 minutes or something like that, but when you have a workshop that is 75 minutes, it is a lot of downtime in the end. It’s moving at a glacial pace when you sit at home at YouTube. So, I totally get it.
\n\n\n\nBut you can check it out. We’ll share the Block Developer Cookbook repo in the site, in the show notes. So, you can definitely check it out. And maybe you want to get on the live stream with Ryan or JuanMa or Jonathan.
\n\n\n\nJC Palmes: Yeah, we’ll see what we can do about that.
\n\n\n\nBirgit Pauli-Haack: So, JC, what are the places that you watch for learning new stuff?
\n\n\n\nJC Palmes: Yeah, so I usually keep an eye on a few key places. The Make WordPress Core blog is, of course, a go-to because it’s where most of the important updates and demos get posted first, officially.
\n\n\n\nAnd I also follow what’s happening on the Gutenberg and WordPress GitHub repos, because the discussions there give a good sense of what’s being built and why certain decisions are made. There’s a lot there.
\n\n\n\nAnd of course, I check Learn WordPress pretty regularly, too, especially the developer workshops. I also stay actively lurking in Slack, mostly in Core Editor and Design. I try to catch Ryan’s live stream, always, when I have time, when I can, but I usually end up just going through the recorded ones on YouTube.
\n\n\n\nBirgit Pauli-Haack: Yeah?
\n\n\n\nJC Palmes: But yeah, they’re really great for seeing how things work in practice. And I read a lot of blogs, too. I can’t give you the list of the blogs that I read just because I don’t have a particular list. I just try to search for something that’s interesting based on the conversations in GitHub, and then, read through all the things.
\n\n\n\nBirgit Pauli-Haack: Yeah, excellent. Well, thank you so much for walking us through that. Yeah, I found the good with Gutenberg GitHub repo, really, there is so much there that it’s really hard to zone in on or zero in on the things that you, right now, need or wanted to explore.
\n\n\n\nSo, tracking issues are really good, and there is now a label that says Tracking Issues so you can see the history of a feature, how it worked out, or what’s in the pipeline. Of course, with the contributions being reduced, it’s going to be a little shorter…
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … or less features coming in, but sometimes it’s a good thing that there is a slower pace so everybody can catch up where they are. And I feel the same, yeah. I get the opportunity to dive a little deeper in all the things, although I was already, I have been quite deep into it, yeah. But if you don’t practice the skills to… it’s just superficial, yeah.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: But talking about the Make Core blog, WordPress 6.8 is in Release Candidate 2, and it’s only about 11 days away from final release. So, if you haven’t tested 6.8, now it’s really time, and you need to carve out a few hours to make sure that your themes and plugins actually work at the sites, work with it.
\n\n\n\nAnd that, of course, helps when you have a standardized system so you only have to check, mostly, one site, and then, some exceptions. But yeah, go and test it a bit. The Field Guide has the whole list of it, but it’s also a little bit overwhelming.
\n\n\n\nBut we can go through some of the dev notes that are in there, and we also have a link to The Source of Truth for the details on the block editor. So, the list of dev notes, I only had three or four stars in there. Now, you have all the stars in there. That’s cool.
\n\n\n\nSo, to explain that to our listeners, I had the list of dev notes, and I put an emoji star to it and said, “Okay, JC, let me know which one you want to talk about, and then we’ll kind of have…” And she checked all of them. It’s really cool.
\n\n\n\nJC Palmes: I did add in the smiley face to the ones that I think are really nice.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, I think that one of the major features coming on 6.8, I don’t know you how you feel about it, but for me it’s the speculative loading in 6.8, and it has such a great history because it comes out of a feature plugin that already had 50,000 installs in the last couple of years. So, what is it?
\n\n\n\nSo, speculative loading leads to near-instant page load times by loading the URLs that users might navigate to them already in the background. And the feature relies on an API that is now supported by many browsers.
\n\n\n\nIt’s called the Speculation Rules API, and it’s a platform feature so you can define the rules for which kinds of URL to pre-fetch or pre-render, and how early such speculative loading should occur. So, that’s in a nutshell, and has a lot of technical implications.
\n\n\n\nJC Palmes: I’m looking forward to this. This is one of the features that I really like, because I’ve been testing. So, for those who are using block themes, if you’re not, you should, speculative loading is already, it’s helping your site feel faster. You don’t have to enable anything, it’s just built in.
\n\n\n\nSo, just to add into what you mentioned about speculative loading, what it does is preload pages users are likely to visit next based on how they interact with the site. So, when they actually click the page, the next page is ready and it loads almost instantly.
\n\n\n\nBirgit Pauli-Haack: Yeah, it speeds up, yeah.
\n\n\n\nJC Palmes: Yeah. What I really like about it is that it improves performance without adding too much complexity. There’s no JavaScript to manage, no extra setup. It just quietly does its job in the background. And it’s one of those features that makes the experience better for users while keeping it very simple for developers, which I really like. Always a win in my book.
\n\n\n\nBirgit Pauli-Haack: Yes, yes, absolutely.
\n\n\n\nJC Palmes: Make it easy for me, yes, please.
\n\n\n\nBirgit Pauli-Haack: Yeah, yeah, it’s a win for you, but it’s also a win for the clients because their visitors are benefiting from that without any additional investment.
\n\n\n\nJC Palmes: Exactly.
\n\n\n\nBirgit Pauli-Haack: So, that’s the beauty of a WordPress open source system, that a lot of people work on it, and a few things just come with an update without costing a whole lot of money.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: But let’s go a little bit back to the block editor. The first thing is that the global styles are now actually available from the left side of the screen, yeah. So, you have everything that you need reachable from the black navigation bar, and you don’t have to switch from one side to the next. Yeah, you can all do it in there, which is really cool.
\n\n\n\nJC Palmes: That always trips me up. Having to go from left to right when having it on one side just makes total sense.
\n\n\n\nBirgit Pauli-Haack: Yes. Yeah. And what also started to, from in there, is that you can now also get the style book from there. And it’s a little bit more intuitive because when you click on the typography, you see, in the style book, all the blocks that have text in them.
\n\n\n\nAnd if you go to images or, what is it, no, color, then you know all the blocks that have color settings in them, which are quite a few now, but it’s easier to zero down on a problem or on a concern, kind of, “Let’s look at our images,” or, “Let’s look at our paragraphs,” or, “What are the styles for it,” and all that. So, it’s all there.
\n\n\n\nAnd the user can actually change some of the global styles to switch out for their sites. If they don’t like the green of the button, they can make it darker or make it blue or make it pink, and make it for the whole site. So, it’s an instant replacement there. So, I really like the global styles to be a little bit more accessible for my brain. Speaking of a style book, it’s now also available for classic themes…
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: … which was a long time coming, or when the style book came to block themes, it was an early request from theme developers to get it also for the classic theme, and that finally comes with WordPress 6.8.
\n\n\n\nJC Palmes: Yeah, that’s one of the features that I added a smiley on, because that’s big. So, having classic themes or hybrid themes able to access the style book is going to help a lot for those who are still on the fence about going full block, although they should, but it gives them that experience.
\n\n\n\nBirgit Pauli-Haack: Right, yeah. And also, the controls, yeah.
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: So, it’s an easing into the modern WordPress world, although there’s nothing wrong with staying on classic themes, but it’s so much nicer to work with a block editor, yeah. So, one of the confusions that has surfaced with the block theme is the confusion that, am I editing, now, a template, or am I adding a content page or grading a content page?
\n\n\n\nAnd it took about, I think, a couple of years to figure out, and I am not there yet, we are not there yet, but to make that easier too, because the whole concept of templates was something that WordPress users, before, had no touch points. It was all in code and it was all for the developer.
\n\n\n\nAnd unless the theme developer had a customizer, there was no need to think about templates, all that. But now, that concept has arrived at the user, and to get this right in the brain, it’s sometimes really hard. And now, they have added a switch to show the template in the editor or not.
\n\n\n\nSo, what that gives you is, when you grade a post and you click on the Show Template, you see where the featured image is and all the post content areas, and know, okay, when you click on the preview, it will show you, also, the whole page. Not only when you go to preview, but already in the editor, you see the whole page with header and footer and featured image and all that shows up. It takes the surprise out of it.
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: And the same with pages.
\n\n\n\nJC Palmes: If you say there’s a switch that just gets toggled on when you see everything outlined for you, because that just makes things less confusing. So, this is a good move.
\n\n\n\nBirgit Pauli-Haack: Yeah. And the switch is in the preview tab, in the top toolbar, when you click on the preview, then you see that tab has changed, it has additional features now. So, plugin developers, your email newsletter person plugin can see the email from your post if you needed to, and there is also the show template off and on. It’s just a check mark. And it’s really nice, yeah. And it goes together with a Zoom Out view. The Zoom Out view is nothing new with 6.8.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: It has been introduced to WordPress through 6.7, very rudimentary, but when you add a pattern to your page, it goes automatically to Zoom Out. So, you see more of it and you see the whole composition of it. Now, in the toolbar of that particular section or pattern that you just added, you can change the styles, if there are any, from the theme, and you can change the design.
\n\n\n\nSo, if you have a call-to-action pattern, clicking on Change Design gives you the other patterns that are call-to-actions, or in the same category, and if you click that little drop that’s in the toolbar…
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … yeah, you can browse through the styles for that particular call-to-action. And then, the Twenty-Twenty-Five theme, that’s actually quite nicely done. So, the developers of Twenty-Twenty-Five made a real good design system so you can just go through the color patterns for a particular section. It’s really nice.
\n\n\n\nAnd the option gives you only a few block options. So, in the tool block toolbar you see those two features, and in the dropdown of the three dots, you only get four options, that’s copy, cut, duplicate, and delete. There’s nothing else to do there.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah. I found, yeah, it’s still a discussion if it’s a bug or not. For me, it’s a bug, but other people find it, well, maybe it should be like that is, when you switch off the show template-
\n\n\n\nJC Palmes: Mm-hmm?
\n\n\n\nBirgit Pauli-Haack: … it also switches off the possibility of zoom view, because the zoom view is on a certain element in the template, the main element, and if that’s not there, the zoom view does not show. So, if you are waiting for the zo…m view to come in because you added a pattern, you need to just check Show Template…
\n\n\n\nJC Palmes: Check Show Template.
\n\n\n\nBirgit Pauli-Haack: … yeah, switch on Show Template, and then you get it back. Or you could use… Oh no, that’s the wrong one. I thought that was a shortcut, but the shortcut is not for the template, it’s for the Zoom Out view, and it’s shift + control + 0 to get the Zoom Out view, but only when Show Template is checked.
\n\n\n\nJC Palmes: Yes. That sounds like a bug.
\n\n\n\nBirgit Pauli-Haack: Yes. And I’m sharing that bug with you all so you can chime in. It’s an interesting discussion. Because it’s two different things. In my brain it’s two different things, and they shouldn’t be covered.
\n\n\n\nJC Palmes: Yeah, completely two different things.
\n\n\n\nBirgit Pauli-Haack: Yes.
\n\n\n\nJC Palmes: They’re not the same.
\n\n\n\nBirgit Pauli-Haack: Thank you. Well, the design tools, well, then 6.6 they started, and then, 6.7, they continued with it, and 6.8, I think, is pretty far that every block has all the design tools it needs. So, color options, border options, dimensions are now available for almost every block.
\n\n\n\nAnd there’s a dev note called the Roster of Design Tools per block, and you get a table with all the blocks in the list and which kind of feature they have and not have so you can…
\n\n\n\nJC Palmes: Oh, that’s nice.
\n\n\n\nBirgit Pauli-Haack: … a fast check, yeah. But it could use a few more features, like, the header comes down, but with the theme right now, it’s not possible.
\n\n\n\nJC Palmes: We have a pretty sweet table style in DEL, BT.
\n\n\n\nBirgit Pauli-Haack: Oh, okay. Well, I’ll see if I can replicate the full table and put it somewhere where I have access to plugins, because on the Make blog, yeah, there’s not a whole lot of…
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … the plugins all need to be tested and approved, and all that. So, did you get a chance to look at the Details block, changes there? Detail blocks was introduced, I think, in 6.7, I think, yeah.
\n\n\n\nJC Palmes: Yeah, I’ve been using the Details block mostly as an accordion FAQs…
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: … but this time around, I have not played around with the Details block when I was testing in 6.8.
\n\n\n\nBirgit Pauli-Haack: So, there are three different features that… So, one is that, if you have a list of the same things that you want to be controlled together, then you can give each one of the items, each Details block, so you have a set of three Details blocks and they’re all FAQs, for instance, so you can give them, in the the Advanced section, there is a Name Attributes field, and if you give them the name attribute, each one of them the same, then via CSS, you can control those at the same time.
\n\n\n\nAnd what also happens is that, when one opens, the other one closes, and vice versa. So, it feels more like a unit for that. And you see it that the FAQ thing, oh, I used FAQ here in the example, in the Source of Truth, and you see that it’s then attached in the CSS in the name field. So, they’re identically named, and then they’ve…
\n\n\n\nJC Palmes: That is a good one. So, we’ve usually added in a script to handle opening and closing the Details block as an accordion. So, having this baked in is big.
\n\n\n\nBirgit Pauli-Haack: Yes. And you can actually do it with a… a content creator can do this. So, the same developer can… yeah. So, this is really nice.
\n\n\n\nJC Palmes: This is nice.
\n\n\n\nBirgit Pauli-Haack: Yeah. Then, what’s also nice is that the summary content, like the question for an FAQ, for instance, is then also shown in the list view of the block editor so you can identify which one you’re working with. That’s so nice because that helps quite a bit.
\n\n\n\nJC Palmes: Yep.
\n\n\n\nBirgit Pauli-Haack: And then, you can also create anchor links for each block so you can separately link to them from other places, and developers have a chance to modify the Allow blocks attribute to make sure that only the right blocks are used in a Details block.
\n\n\n\nSo, there are quite a few things in there that makes it… I think that’s one of the biggest changes for WordCamp 6.8. When I was testing, I said, “Oh, this is neat. Oh, this is neat,” kind of thing.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: So, I like that, yeah.
\n\n\n\nJC Palmes: I like that one.
\n\n\n\nBirgit Pauli-Haack: And then, the other things, some of the changes on the blocks are minimal, but still, quality of life changes. So, the Gallery block now has one link, or one way to put the link to open bigger…
\n\n\n\nJC Palmes: Yes, because having to…
\n\n\n\nBirgit Pauli-Haack: … and not for every…
\n\n\n\nJC Palmes: … do it on every single image when you’ve had more than 10 images there is not nice.
\n\n\n\nBirgit Pauli-Haack: I would have said two, I would have said two images. If you have more than two, you don’t want to do this for every image, but yeah.
\n\n\n\nJC Palmes: I’m a bit patient with galleries just because, but know 10 is my max, so…
\n\n\n\nBirgit Pauli-Haack: Yeah. No, but that is really good that you, just going through the tool while make sure they have the gallery parent, select it, go in the toolbar, and then you can select the Enable click to expand. The image block now has a feature, has a way from the blocks settings that you can, when you load it into your post, that you can say, “Okay, make this image my featured image,” and you don’t have to delete it and then load it again.
\n\n\n\nYou still need to delete it if you don’t want it doubling up on your post. When you display featured images with a single post template, then you have that image in twice. But yeah, kicking out or deleting a block is easy.
\n\n\n\nJC Palmes: Yeah. But that update is a subtle but powerful workflow update because there’s no need to switch context, just to set a featured image. That saves time if you have to do it more than twice.
\n\n\n\nBirgit Pauli-Haack: Yeah. If you do two posts a day for every day, you’re really happy about that type of saver, yeah. And you don’t have to think for it so much, yeah. Because a lot of people have a website that does really nice things with featured image, but it falls down when they forget the featured image there.
\n\n\n\nThat is something that they might… It prevents that people post something without the featured image. And then, the image block also has some handling. You can crop things and you can, well, mostly crop, or what else can you do with an image block, I forgot.
\n\n\n\nJC Palmes: Mostly crop.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: Resize.
\n\n\n\nBirgit Pauli-Haack: And now, you actually know that things happen because there are little notifications on the bottom of the screen that, “Oh, yes, we had to crop this,” yeah.
\n\n\n\nJC Palmes: Yes. That always trips me up because when you crop an image, I always have to double-check, “Was it really cropped?”
\n\n\n\nBirgit Pauli-Haack: “Did it work,” yeah. And I hate that question, “Did this work,” or, “What happened,” yeah.
\n\n\n\nJC Palmes: Yeah. You just know it works when you look at the URL.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: It actually looks different.
\n\n\n\nBirgit Pauli-Haack: Yeah, it does, yeah. So, the Query Loop block, have you seen what’s coming in with that?
\n\n\n\nJC Palmes: So, this Query Loop block change is actually something that we, I guess, this is something that we wanted to fix way back. So, that is, that hasn’t been part of WDS-BT. It’s fixing WDS-BT, but with 6.8 having the same fix, I will have to remove that fix so that we’ll have the default one.
\n\n\n\nBirgit Pauli-Haack: Yeah. Which feature are you…
\n\n\n\nJC Palmes: It’s a long time coming. The sticky post for a Query Loop block where it’s adding in not being counted when you set a…
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah, there are two things. One was already in there. It excludes the sticky posts. But now, there’s a new…
\n\n\n\nJC Palmes: They ignore one.
\n\n\n\nBirgit Pauli-Haack: They ignore one, yeah, where you can… And that means that the sticky part of that post is ignored, and it will behave like the other filters.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Like, if you do it by date or you do it by category or by tag, or something like that, it’s not sticking up on top on any of those sites. So, it’s a little hard. So, “excluding” means, none of the sticky posts are showing, and “ignore the sticky post” doesn’t mean ignore the sticky post, it ignores the sticky part.
\n\n\n\nJC Palmes: It’s having them go back to just a usual post not being counted as sticky, because sticky is sticky, it sticks to the front.
\n\n\n\nBirgit Pauli-Haack: Yeah, or the top, or whatever.
\n\n\n\nJC Palmes: Yeah, at the top.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, there’s also a sorting option by page. So, for pages, you now can order by page order, in ascending order or in descending order. So, if you have pages and have parents, and then you have that, or have it in a certain order, the Query Loop can be sorted by that.
\n\n\n\nSo, when you want to show them in a… Why would you do that? Oh, if you’re in navigation, or something like that, or it’s some pages and you want it all in the same, in a real good order there. So, that’s certainly something that’s new.
\n\n\n\nJC Palmes: Yeah, that is new. Usually, when we need to do that same order by, we usually do it custom just so we’re able to do it that way. So, this is huge.
\n\n\n\nBirgit Pauli-Haack: Yeah. I really like it because I had, often, use cases where they had a parent page about a certain topic, and then, sub-pages that go deeper into it, and they all needed to be on one page, and had featured images so you can really do nice grids, but if they’re in a different order, it… So, you really want them in the right order.
\n\n\n\nYeah, get everybody confused. And then, there is another feature in there that comes out of the Zoom Out view, but it’s the button in the toolbar for the Query Loop, for the group block that holds everything together so you can change the design.
\n\n\n\nSo, if you grab a pattern for the Query Loop, and after thinking about it for two minutes you don’t like it, you don’t have to throw it out again. You just click on Change Design, and then, you get a another list of the other possibilities how you can put it together.
\n\n\n\nJC Palmes: Yeah, I like the Change Design link.
\n\n\n\nBirgit Pauli-Haack: Yeah, very cool.
\n\n\n\nJC Palmes: It’s a game changer. You don’t have to… Again, it’s a quality of life…
\n\n\n\nBirgit Pauli-Haack: Absolutely, yeah. And you can now get the Query Loop for pages for all levels. Yeah, so you can say, “Okay, on the main page, I only want the sub-pages to show, but not the main page,” kind of thing. Yeah. And so, it’s really interesting.
\n\n\n\nAnd The Source of Truth as well as the PR, they had an example query, so you can test it out, a pattern there. So, you can go through that. Yeah, that was the Query block, right? So, next thing is the new block, the Query Total block.
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: And it just shows the number of posts or pages in that particular query, and you can also add it to the pagination, or something like that, 10 of 12 kinds of things you get there as well. And it’s quite nice.
\n\n\n\nJC Palmes: One functionality that I need to recheck to see how that…
\n\n\n\nBirgit Pauli-Haack: Recheck on your theme, yes.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah, I can imagine, yeah.
\n\n\n\nJC Palmes: That is built in as well. There’s a lot of updates in 6.8 that we fixed in BT that we have now to retest…
\n\n\n\nBirgit Pauli-Haack: Remove.
\n\n\n\nJC Palmes: … and remove as needed, which is quite nice, because it’s all going to be default functionality now. You don’t have to fight against the system.
\n\n\n\nBirgit Pauli-Haack: Yeah. And you have somebody else maintaining that part of the code?
\n\n\n\nJC Palmes: Right now it’s me and whoever is available at the moment.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nBut it’s the whole set of contributors that-
\n\n\n\nJC Palmes: Oh, yeah, of course.
\n\n\n\nBirgit Pauli-Haack: … maintain that.
\n\n\n\nJC Palmes: Exactly.
\n\n\n\nBirgit Pauli-Haack: Yeah. And you don’t have to think about, “Oh, we had a customization there, so let’s figure that out.”
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: Okay.
\n\n\n\nBirgit Pauli-Haack: So, while that was all going on in the release cycle and I was talking about things, I got a question that people who had a hard time finding or making sure that the Query Total block shows up, they couldn’t find it, it only shows up when you’re inside the Query Loop. It’s similar to the pagination. So, if you’re outside the Query Loop in your canvas, it doesn’t show up in the inserter because it has nowhere to go.
\n\n\n\nJC Palmes: Yeah, it has nowhere to connect to.
\n\n\n\nBirgit Pauli-Haack: Right, yeah. Well, you and I know that, but it’s not an easy concept for people.
\n\n\n\nJC Palmes: Oh, yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: I have to always think about that because…
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: … sometimes I just think in the developer mindset. So, it’s a switch.
\n\n\n\nBirgit Pauli-Haack: Yeah. Yeah, and sometimes it’s just surprising what is clear to me or others in the field. A new user or another content creator says, “How does that go? How does that work? I can’t find it.”
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, the Social icon has minimal changes, but one is that it now also has the Discord icon. So, if you want to link to your Discord profile or Discord server, you can do this in the Social icons block, and it now also has, you can use the arrow keys to navigate to the link. You don’t have to go twice on adding the URL to whatever new Social icon you added.
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: So, it’s really streamlining the process. Oh, I’ve just skipped over it. The Separator block can be, now, really expanded because you can add a different tag for it. The Separator block has only an HR tag until now…
\n\n\n\nJC Palmes: The HR, yeah.
\n\n\n\nBirgit Pauli-Haack: … the horizontal line. And now, you can actually replace it in the advanced HTML element section of the block and make it a diff. So, then, all the CSS that you can do with any other diff, you can now apply to the Separator block, and makes it a nice, it can be a nice decorative tool for your theme and for your site.
\n\n\n\nSo, I think that transformation really helps with all that setting. Additional setting helps, really, with styling, adding more styling possibilities. I was just saying transformation…
\n\n\n\nJC Palmes: I guess we’ll be using the Separator block more?
\n\n\n\nBirgit Pauli-Haack: Yeah, it can be interesting breaking up the wall of text when you have some decorative stuff there. I can see that, for instance, the little pattern things that you had in WordPress Asia website, that they could be a little bit more [inaudible 00:41:53] instead of just an image, or something like that, yeah.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: I was talking about transformation there, but I was just reading Transformation. What you now can also do is transform a Separator block into a Spacer block. So, yeah, there’s also one of the workflow improvements that come with 6.8. I don’t know if we have to go through the editor changes, all of them?
\n\n\n\nI think there are two new commands. One is, Add a New Page, and the other one is, I totally forgot. My God. Open the Site Editor. When you are somewhere in pages or something like that and you want to just go back, you don’t have to click 15 times to get back to the design tools.
\n\n\n\nNo, you just do Open Site Editor, CTRL + K, and then, start with Site Editor, and it gives you the option already in the command palette that flows on top of your screen.
\n\n\n\nJC Palmes: Oh, keyboard shortcuts too.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: There are two new ones, right?
\n\n\n\nBirgit Pauli-Haack: Yeah, it’s the…
\n\n\n\nJC Palmes: Pace, block styles with Command Control, and option…
\n\n\n\nBirgit Pauli-Haack: Oh, good.
\n\n\n\nJC Palmes: We didn’t… Yeah, that one. That set’s going to get heavy use.
\n\n\n\nBirgit Pauli-Haack: Yes.
\n\n\n\nJC Palmes: From me at least.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: And then, that shortcut, you can now paste block styles.
\n\n\n\nBirgit Pauli-Haack: Right, yes.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: You can copy-paste block styles over. That’s fast. You can really do that. So, the next thing, what I really like is, the Starter Content is now available for… You can switch that off. That’s the first thing. So, if you add a new page, it automatically comes with Starter Content, if the theme provides them, in a modal.
\n\n\n\nThat gets in the way to get started with what you want to do. Some people like it and some people don’t like it. It’s the 50-50 thing. But some people… So, you can switch it off. So, you can toggle that Show Starter Content Patterns off, and you can also change it in the Preferences.
\n\n\n\nBut you can also find them in the categories of your patterns. It says Starter Content. So, if you do want to see them, you can just go there and get a list of the starter content for that particular post type.
\n\n\n\nJC Palmes: Yeah, that one I have not tested yet, but that will be useful for clients who have very particular styles for a custom post type. With the toggling on and off of that feature, is that available per custom post type or is that a global setting?
\n\n\n\nBirgit Pauli-Haack: It’s a global setting. Show Starter Content Patterns, that’s a global setting, but Starter Content, until 6.8, wasn’t available for other custom post types.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah, but now it is. So, you can, if you’re just in the header of the pattern, you say that’s also for your custom post types, when you do add new custom post type, it also shows the starter content, which wasn’t available before.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: So, that’s really cool.
\n\n\n\nJC Palmes: Yeah, that’s cool.
\n\n\n\nBirgit Pauli-Haack: Yeah, that’s definitely a good feature request for an enhancement to at least provide a filter for theme developers to switch it off for certain post types, and on for other posts. And speaking of theme developers, now you could have your patterns in different folders so it’s not all in the patterns folder, like, Twenty-Twenty-Five has, I don’t know, 80 patterns in one folder?
\n\n\n\nJC Palmes: A lot.
\n\n\n\nBirgit Pauli-Haack: Now, you can… And I had to do, with the name of the file, I had to sort it, like, H or CTA, dot, dot, dot. Now, you can have folders like Patterns, CTAs, and I’ll put them all in there, or Patterns and Testimonials, or something like that, yeah.
\n\n\n\nSo, it’s a little bit more organized in your theme folder, and I really like that, yeah, because I’m also a fan to having separate style folders. So, I have styles for blocks and a style for other things.
\n\n\n\nJC Palmes: Yeah, that’s what we do with BT as well. So, styles are there included in folders if it’s words. I forgot what I was going to say. Yeah, just making sure that you have styles in the block folder.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: And being able to do that for patterns is…
\n\n\n\nBirgit Pauli-Haack: Pretty organized, yeah.
\n\n\n\nJC Palmes: … yeah, that’s going to make things a lot more organized, because we don’t need more than 80 patterns in one single folder.
\n\n\n\nBirgit Pauli-Haack: Yeah. Maybe you don’t need any patterns, period, but some people actually, then, need them for a larger site…
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … and then, you can sort it out through the folders, yeah. Because you have the categories, and if you make the categories also be your folders…
\n\n\n\nJC Palmes: Your folders.
\n\n\n\nBirgit Pauli-Haack: … yeah, it helps. So, that was what I wanted to… Well, we talked a lot about the block editor kind of thing, but I really like that because it’s such a neat tool, and we need to dive in, sometimes, really deeper into the features.
\n\n\n\nNow, for the developers, the Field Guide is out, and I definitely urge you to look at that and skim it at least for things that are interesting to you. There have been a ton of accessibility improvements, and Joe Dawson, the team rep of the Accessibility team has done a fine job putting that together so you can really see what has changed and what has been improved upon.
\n\n\n\nThere are also some developer-related changes for the block editor in the miscellaneous block editor dev note. I think George Mamadashvili did that. He was also the editor tech lead for the release, or is, yeah. It’s not out yet.
\n\n\n\nAnd it definitely also deals with deprecations of being experimental, coming stable, or deprecated kind of thing. So, you definitely want to check that out to make sure that you have that on your radar when things get deprecated.
\n\n\n\nJC Palmes: Yeah, I always make sure that I check that because you can’t have deprecated machines, especially in client sites.
\n\n\n\nBirgit Pauli-Haack: Yeah. And when they’re announced through the console… So, sometimes clients tell me, “Okay, I get this yellow… What does it mean?” I said, “You have to ignore it.”
\n\n\n\nJC Palmes: It’s for styling. Just ignore it.
\n\n\n\nBirgit Pauli-Haack: And then, there is a post about the interactivity API best practices by Felix Arntz, and also, Avoiding Deprecation Warnings is part of the headlines there. But definitely, if you are working with the interactivity API, definitely check it out. It gives you quite a few interesting pointers there.
\n\n\n\nOh, there is a more efficient block-type registration. This is also from Felix, yes. Now, you can register multiple blocks in one function so it doesn’t have to be called over and over again, which is definitely a performance improvement, and also, you don’t have so much code in it then. Check that out.
\n\n\n\nJC Palmes: Yeah, I’ll check that out, because I’ve added in another custom function that allows us to do that just in one function.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: You don’t have to call it out multiple times.
\n\n\n\nBirgit Pauli-Haack: Yeah, right, yeah. So, anything in the WordPress 6.8 that you wanted to talk about that we skipped here?
\n\n\n\nJC Palmes: Definitely, the new filter, because that’s going to be…
\n\n\n\nBirgit Pauli-Haack: Oh, the Should Load Block Asset on Demand.
\n\n\n\nJC Palmes: On Demand, yes…
\n\n\n\nBirgit Pauli-Haack: Yeah, explain that to me.
\n\n\n\nJC Palmes: Yeah. So, with that new filter, it really just allows developers to make sure that blocks will only load their assets, the styling, and the scripts for that block when it’s actually on a page.
\n\n\n\nBirgit Pauli-Haack: Oh.
\n\n\n\nJC Palmes: When it’s used on a page. So, that was available for core blocks before. Let me just… There’s one other filter, I think, that is part of that.
\n\n\n\nBirgit Pauli-Haack: Should Load Separate Core Blocks
\n\n\n\nJC Palmes: Should Load Separate Core Block Assets, that one we are using on BT, just handled differently. Again, custom function because we do have custom blocks that I would want to not load, because by default, that loads, right? So, with BT, that only loads when it’s actually used.
\n\n\n\nI would have to change to this new filter because this one is more efficient. It just does it out of the box. So, with Should Load Separate Core Block Assets, it does two things, it loads the core blocks, and then, with the Total Block library script, with all of the styling and stuff, and then, the scripts and the style sheet for that particular block, what this new filter does is, it loads, yeah, I mentioned that, it only loads the script and the styles for that block, not the entire thing.
\n\n\n\nBirgit Pauli-Haack: So, like…
\n\n\n\nJC Palmes: So, that’s going to be a lot of improvement. We do that already, which means I have to change that function to this new filter, which is amazing.
\n\n\n\nBirgit Pauli-Haack: Yeah. You were definitely ahead of your time.
\n\n\n\nJC Palmes: Because we need to fix things when WordPress is not yet ready to fix it because we need that function right away.
\n\n\n\nBirgit Pauli-Haack: Right.
\n\n\n\nJC Palmes: We can’t just wait. But glad that what we’ve done for BT is being done by default now.
\n\n\n\nBirgit Pauli-Haack: Yeah, you can rip it out. All right, my dears, dear listeners, we are all through the 6.8 release so far, and I hope you find some really good things in there. Now, we’re coming to Gutenberg 20.5.
\n\n\n\nAnd don’t be alarmed, and we have 20.6, but there are not a whole lot of new things or mentionable enhancements that we want to mention here. So, we’ll still, probably, stay within the time of our podcast, although there is no time. It takes as long as it takes, like many other things in life.
\n\n\n\nJC Palmes: Because there’s a lot.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, 20.5 Gutenberg Plugin, it has the updated edit site link for the admin bar that now goes, actually, back to the site editor and not to the page that you were actually on or the template that you were on.
\n\n\n\nSo, that confused a lot of people because every time you clicked on it, you were on a different page. So, sure, every time you click on it, to go to the same page. So, that is really good.
\n\n\n\nThe Create Block Package now supports blocks manifests and the relevant core APIs by default. That needed a little bit of bug fix in there, but that is now… It also has to do with the multiple blocks, right?
\n\n\n\nJC Palmes: Mm-hmm.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: So, this one, I think, is a huge deal because having it aligned better with core and the support manifests by default means there’s less guesswork and just better starting point for custom blocks.
\n\n\n\nBirgit Pauli-Haack: Yes. Yeah, absolutely, yeah. So, the Block button, if it’s used in the navigation bar, now also has… So, when you’re in a navigation bar and you add another link, if it’s a custom page link, it offers you creating a new page, but not with a button. So, now, when you add a button to it, also gives you the capability to draft a new page, which is really nice. So, you can use those buttons more.
\n\n\n\nWhat else is in there? So, the Data View Actions, as a plugin developer, you can use a modal to do whatever the action is. And now, you also have the possibility that you can control the size of the modal so it’s not the same size every time.
\n\n\n\nAnd you have a lot of white space there, or you can focus on certain things. Now, you can actually control the size through props. That’s developer speak, but you will appreciate that.
\n\n\n\nJC Palmes: Of course. There are a couple of updates there that make me smile.
\n\n\n\nBirgit Pauli-Haack: Which one?
\n\n\n\nJC Palmes: The Trailing Period Cleanup and the Defaulting Back To, the 100 PX Spacer Block default.
\n\n\n\nBirgit Pauli-Haack: Oh. Yeah.
\n\n\n\nJC Palmes: These are really just petty things for me, but I’m glad that people find them weird as well. So, they’re fixing it and adding it back, thank you.
\n\n\n\nBirgit Pauli-Haack: Good, yeah. So, there’s a change in the Data Views, which comes on par with the WPA, the old page things where you have the pages listed in the admin as a sub-page if you have sub-pages like… So, hierarchical kind of dimension there.
\n\n\n\nJC Palmes: Yeah, hierarchical and not a flat thing. And that helps.
\n\n\n\nBirgit Pauli-Haack: And that now came, also, to the Data Views. So, you have a cluster, the way you actually designed it or put them together. So, I’m sorry, there’s a little…
\n\n\n\nJC Palmes: I’m also reading through.
\n\n\n\nBirgit Pauli-Haack: Yeah, I need to read through that.
\n\n\n\nJC Palmes: Oh, the mobile one.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: So, when I test VT, I always test on multiple interfaces, like you should, and that also includes editing.
\n\n\n\nBirgit Pauli-Haack: Oh, yeah, editing on mobile, yes.
\n\n\n\nJC Palmes: Editing on mobile is a lot easier.
\n\n\n\nBirgit Pauli-Haack: Oh, now, yeah. That’s good, yeah. What else do we have? That’s pretty much for 20.5.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah. There’s also the documentation about the WP scripts with the build blocks manifest has been updated as well. So, you can read up about it. And the Color Experimental Duotone has been removed from core blocks, but I hope they’ll keep it in. That is stabilized now. So, it’s called Filter Duotone instead of Color Experimental Duotone.
\n\n\n\nSo, it’s just a rewording of things, and also, to make it stable so people are more inclined to use it in their custom blocks as well, because some people shy away from experimental stuff because they don’t know how it will turn out.
\n\n\n\nJC Palmes: Usually, they change their name, which is going to be the case here. I don’t think we have… So, for our client projects, we usually do shy away from the experimental stuff just so… It needs to be as stable as it should be-
\n\n\n\nBirgit Pauli-Haack: Well, that makes total sense.
\n\n\n\nJC Palmes: … in my personal projects still, yeah. I do use that in my… Well, I play around with all of the experimental stuff on my own theme.
\n\n\n\nBirgit Pauli-Haack: Yeah, it’s fun, right?
\n\n\n\nJC Palmes: You end up seeing all the things that get broken on the next update, which is fun.
\n\n\n\nBirgit Pauli-Haack: Or you at least can start prognosis, like, “Which one gets broken first,” kind of thing.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Makes begging easier. So, that was Gutenberg 20.5.
\n\n\n\nWe are now coming to Gutenberg 20.6, and there are additional features in there that are not coming to 6.8, except for the Enabling the Startup Pattern for all post types. That was back-ported to 6.8, but the others are…
\n\n\n\nI don’t think that the keyboard shortcut to paste styles is actually in 6.8. I think that’s in the Gutenberg plugin, and it doesn’t have the, yeah, it does not come to 6.8.
\n\n\n\nJC Palmes: That’s sad.
\n\n\n\nBirgit Pauli-Haack: That’s sad. Oh, so sad.
\n\n\n\nJC Palmes: I liked that.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, they’re adding support for more granular controls for the Table of Content block, which also hasn’t made it to Core yet because it needs a little bit more finessing.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: But if you use it in your private sites, or while some people, like me, are brave or are stupid, depending on the perspective, they use Gutenberg.
\n\n\n\nJC Palmes: They use it on…
\n\n\n\nBirgit Pauli-Haack: Yeah, Gutenberg production.
\n\n\n\nJC Palmes: Yes. But this Table of Content block controls things that I love.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: But again, it’s one of those almost-there blocks.
\n\n\n\nBirgit Pauli-Haack: Yeah, yeah. And what we are talking about right now is that you can select the heading levels. So, if you want all the H2s in there, then you can say that, oh, you want all H1 to H2 to H6 in there, you can say that too, or anything in between.
\n\n\n\nSo, it’s a nice setting on the sidebar for the Table of Content. And I think I tweeted out a little video to show that off, but… When I was testing it, I said, “Oh, this is nice.” Yeah. Then, whereas the navigation bar has…
\n\n\n\nJC Palmes: Navigation, yeah.
\n\n\n\nBirgit Pauli-Haack: … it gets a transparency slider for the sub-menus background, which is highly appreciated. But also, that is not yet in. It just came in in 20.6.
\n\n\n\nJC Palmes: Just began in 6.8 too.
\n\n\n\nBirgit Pauli-Haack: So, that is out. So, 6.8, just so, if you want to go back and look at things, 6.8 has Gutenberg plugins from 19.4 to 20.4. So, with 2020. And most of the time, only bug fixes get back-ported to the current version, but then, new enhancements are not going to make it there.
\n\n\n\nIn 20.6 Gutenberg Plugin, you also get a new option for opening the links in a new tab for the RSS block. And that is something that a lot of people wanted, and now, we have it. Now you can shortcut for pasting styles. Was that the 20.6 already?
\n\n\n\nJC Palmes: Yeah, that’s the 20.6…
\n\n\n\nBirgit Pauli-Haack: Yeah, it was a small release because most of the Gutenberg developers like George Mamadashvili, Fabian Kägy, Akiyama Anu, and a few others, they were all really, in the release cycle, occupied with that. So, yes. But that’s it. We are almost at the end of our show.
\n\n\n\nWell, thank you, dear listeners, and thank you, JC, for sticking it out with me and having a discussion on that. It was wonderful to chat with you about the things. And dear listener, as always, the show notes will be published on Gutenbergtimes.com/podcast.
\n\n\n\nThis is Episode 116, and if you have questions and suggestions or news you want us to include the next time, just send them to changelog@gutenbergtimes.com, that’s changelog@gutenbergtimes.com. So, this is it.
\n\n\n\nThank you, JC, thank you, all, listeners, for being with us again. And hello, all the new ones that we gathered, new listeners we gathered on all the different podcast apps. Well, I wish you a great weekend, everyone. Well, the weekend will be over when you get to read this. So, I wish you a nice weekend, JC.
\n\n\n\nJC Palmes: Thank you.
\n\n\n\nBirgit Pauli-Haack: And until the next time, thank you.
\n\n\n\nJC Palmes: Thank you.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 06 Apr 2025 09:21:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:13;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:120:\"Gutenberg Times: WordCamp Europe, New Chart block, GitHub Deployment, and can AI fix my plugins? — Weekend Edition 324\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=38289\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:123:\"https://gutenbergtimes.com/wordcamp-europe-new-chart-block-github-deployment-and-can-ai-fix-my-plugins-weekend-edition-324/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:22695:\"Hi there,
\n\n\n\nHow is your block theme knowledge coming along? The slower pace of Gutenberg development is a blessing in disguise. I will take the opportunity to dive deeper into block themes, styles, block and section styles, and block development. I definitely also see a need to skill up my CSS. What is it that you need to learn?
\n\n\n\nIt sounds funny coming from me, as I’ve been knee-deep in Gutenberg development all this time. Still, if I don’t actually practice the skills I acquired, I lose them. That’s why I decided to tackle the migration of the Gutenberg Times website to a block theme. A step was long overdue. I’ll post about my progress.
\n\n\n\nAnd now it’s time to see what others created, and I discovered during the week.
\n\n\n\nEnjoy your weekend and get some rest.
\n\n\n\nYours, 💕
Birgit
WordCamp Europe will take place June 5 – 7, 2025 in Basel, Switzerland. This week organizers announced that they already sold over 1,000 tickets, already. They also published the program schedule. It’s a great mixture of many topics and perspectives.
\n\n\n\nAt first glance, here are my top sessions.
\n\n\n\nBonus: Two Playground sessions:
\n\n\n\nSpecial treat: Mythbusting and Q&A about appearing in Google Search with Danny Sullivan, Google.
\n\n\n\nWant to meet me in Basel? Send me the link to your calendar or use mine bit.ly/WCEUMeetBirgit.
\n\n\n\nThere is a new kid on the block. In his post, WPCoven: Introducing A New Voice Covering the WordPress Ecosystem, Alex de Borba, CEO at Atmostfear Entertainment, introduced a publication. WPCoven will cover developments related to the Block Editor. It will also share best practices for its applications within the WordPress & WooCommerce community. 👋 Sending a hearty “Welcome to the space” to WPCoven. I will certainly watch the feed.
\n\n\n\nMary Hubbard posted the takeaways from a meeting with Core Committers and Matt Mullenweg. You can read the full meeting recap in Dotorg Core Committers Check In. The TL;DR about releases is:
\n\n\n\nI also expect, we will read more about canonical plugins in the future.
\n\n\n\nGeorge Mamadashvili released Gutenberg 20.6 version.
\n\n\n\nrel
attribute. (69641)JC Palmes, Principal Technical Manager at WebDev Studios, living in the Philippines, and I chatted about the Gutenberg releases 20.5 and 20.6. We covered WordPress 6.8 extensively, too and discussed the starter theme WebDev Studio has built. It was a great joy to chat with JC Palmes again.
\n\n\n\n🎙️ Latest episode: Gutenberg Changelog 116 – WordPress 6.8, Source of Truth, Field Guide, Gutenberg 20.5 and 20.6 with special guest JC Palmes, WebDev Studios
\n\n\n\nThe editorial team at Codeable published a tutorial titled Easy Ways to Edit Your WooCommerce Product Page Design. You learn how to change the WooCommerce product page without altering core WordPress files by creating a new plugin. This method lets developers change the layout, design, and functionality using filters or hooks. Developers can make changes by focusing on specific parts like the product image, description, price, and currency. This approach avoids disrupting other sections of the page. This strategy keeps code clean and ensures functionality. It’s advised to use a child theme for WooCommerce plugin modifications to prevent conflicts.
\n\n\n\nBud Kraus‘s latest tutorial teaches How to make block content hide or appear in WordPress. He helps website owners learn to use the Block Visibility plugin, which is often misunderstood and underused. By installing the plugin, Kraus demonstrates how to hide specific blocks in a page or post. This provides more flexibility. It also allows for further customization. This method allows website owners to create dynamic layouts, improve user experience, and boost performance.
\n\n\n\nNick Schäferhoff walks you through the steps on How to Build a One-Page Website with WordPress . He explains how these single-page sites can be super effective for modern websites. They allow users to easily navigate. Users can find what they need quickly. Schäferhoff also shares some tips on how to make the site visually appealing. He advises on ensuring it is user-friendly. This makes it easy to get started with this trendy web design approach. The instructions detailed, and you also find excellent screenshots so you won’t get lost.
\n\n\n\nA new Chart block plugin has arrived at the WordPress plugin repository. It was created by the folks at BdThemes, a WordPress product company from Bangladesh. The plugin is called Advanced Charts for Gutenberg Blocks Editor. Give it your data via CSV file and it assists create a visualization for it. It has many customization and design tools.
\n\n\n\nIf you only need basic chart tooling and designs, SB Chart Block by Herb Miller is ideal. From the block Inserter in the editor, search for “Chart” and you can install it right from within the editor.
\n\n\n\nAt the WordPress Meetup in London, Keith Devon and Mark Wilkinson, Highrise Digital, presented their theme building process. They demonstrated this process for a school project. I found it quite interesting to listen to the long-time theme builders. They approach building a theme with the site editor and offer the full range of editing tools to their clients. Here is the recording: Building a Block-Based WordPress Site with FSE
\n\n\n \n\n\nBenjamin Intal and his crew at Stackable are super excited to share the New Stackable Global Design System! This update is designed to make life easier for developers. It helps them create consistent and cool designs across different websites. You’ll find loads of ready-made components, typography, colors, and more to play with. It’s crafted to simplify the design process and cut down on the usual headaches for developers. Or so they claim.
\n\n\n\n “Keeping up with Gutenberg – Index 2025”
A chronological list of the WordPress Make Blog posts exists. It includes contributions from various teams involved in Gutenberg development. These teams are Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. The past years are also available: 2020 | 2021 | 2022 | 2023 | 2024
Jonathan Bossenger livestream about his question: Can AI fix Plugin Check issues? He recently adopted a WordPress plugin that was closed due to security flaws and other code issues. Can AI help him resolve these issues faster than he could himself? Let’s find out.
\n\n\n \n\n\nJuanMa Garrido continued his series Data in the Block Editor with @wordpress/data. He presented Part 3 of building the app. This part is from the course Using the WordPress Data Layer. This course aims to get you comfortable with the WordPress data layer. It’s a JavaScript library used throughout the WordPress editor to read and write data. You can catch up on Part 1 and Part 2 of the series via YouTube.
\n\n\n \n\n\nRyan Welcher has been live-streaming on Twitch every Thursday at 14:30 UTC. Over the last two weeks, he focused on adding user profiles to the Block Developer Cookbook. He worked on Part 1 and Part 2. You’ll learn how to create an Author Archive template. You’ll also learn how to create an Author page layout while handling user metadata for display. Part of the experience of Welcher’s livestream is also method on debugging code and code review.
\n\n\n \n\n\nIn his latest video, Nick Diego introduced you to an awesome developer tool: How to use GitHub Deployments on WordPress.com. “Whether you’re building custom themes, plugins, or managing full-site deployments, integrating GitHub with WordPress.com offers a powerful and efficient approach to code management. In this video, you’ll learn how to connect a GitHub repository to your WordPress.com site using GitHub Deployments.”
\n\n\n \n\n\nFor the latest episode of the WPTavern Jukebox podcast, 163 – Birgit Pauli-Haack on the Magic of the WordPress Playground, I joined Nathan Wrigley. We talked about my experiences with the WordPress Playground. I shared how I created complex and interactive demos using the Playground. I even brought them online as fully functional websites. We discussed the power of storytelling in web development. You can use the Playground to experiment and learn new things.
\n\n\n \n\n\nNeed a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience
\n\n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
Featured Image: Image by ta98mori from Pixabay
\n\n\n\nDon’t want to miss the next Weekend Edition?
\n\n\n\n\n\nMarcus Burnette over at TheWP.World recently made a swag store and very kindly created some HeroPress swag!
\n\n\n\n$5 of each sale goes to support ongoing operation at HeroPress, so we appreciate your support!
\n\n\n\nHere’s what’s available:
\n\n\nSo be sure to stop by the HeroPress swag store!
\nThe post HeroPress Swag! appeared first on HeroPress.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 04 Apr 2025 14:00:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"Do The Woo Community: Do the Woo Friday Shares, April 4, 2025 v13\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93923\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://dothewoo.io/blog/do-the-woo-friday-shares-april-4-2025-v13/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"Shares from the WooCommerce, WordPress and Open Web Community.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 04 Apr 2025 13:44:29 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:16;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:115:\"Do The Woo Community: The Power of Photography, Translation and Contributing with V Gautham Navada and Bigul Malayi\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93848\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:113:\"https://dothewoo.io/the-power-of-photography-translation-and-contributing-with-v-gautham-nevada-and-bigul-malayi/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:210:\"In this episode, guests V Gautham Navada, and Bigul Malayi discuss contributions to WordPress, highlighting the significance of photography and translation in enhancing community engagement and business growth.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 03 Apr 2025 14:17:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:17;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:94:\"Do The Woo Community: Why User Feedback and Internal Testing Drive Smarter Feature Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93508\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:98:\"https://dothewoo.io/blog/why-user-feedback-and-internal-testing-drive-smarter-feature-development/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:206:\"User-centric development by involving support teams in feature planning and conducting beta tests. The approach leverages internal tools and data-driven insights to enhance product functionality and design.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 03 Apr 2025 10:07:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:18;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"WPTavern: #163 – Birgit Pauli-Haack on the Magic of the WordPress Playground\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=193436\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"https://wptavern.com/podcast/163-birgit-pauli-haack-on-the-magic-of-the-wordpress-playground\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:52923:\"Transcript[00:00:00] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case what the WordPress Playground is, and how it’s transforming the scope of WordPress.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you or your idea featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.
\n\n\n\nSo on the podcast today, we have Birgit Pauli-Haack. Birgit is a longtime WordPress user, an influential voice in the WordPress community. She’s known for her role as the curator at the Gutenberg Times, and host of the Gutenberg Changelog podcast, and she brings her wealth of experience as a Core contributor to WordPress as well.
\n\n\n\nShe joins me today for an in-person conversation recorded at WordCamp Asia in the Philippines, and we are discussing Playground, a remarkable development that’s set to redefine the WordPress development landscape.
\n\n\n\nPlayground allows users to launch a fully functional WordPress instance directly in their browser, without the necessity of a server, database, or PHP, playground breaks down barriers, offering developers, product owners, educators, and everyone in between a new way to interact with WordPress.
\n\n\n\nWe explore how this technology not only simplifies the testing and development process, but also sets the stage for more interactive and immediate web experiences.
\n\n\n\nWe explore the concept of Blueprints within Playground, tailored configurations that enables a bespoke user experience by preloading plugins, themes, and content. This feature helps developers to present their work in a controlled environment, offering users an insightful hands-on approach that can significantly enhance understanding and engagement, and it’s all available with just one click. It really does eliminate the traditional hurdles associated with installing WordPress.
\n\n\n\nIf you’re curious about how the WordPress Playground is set to usher in a new era of friction free web development, this episode is for you.
\n\n\n\nIf you’re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you’ll find all the other episodes as well.
\n\n\n\nAnd so without further delay, I bring you Birgit Pauli-Haack.
\n\n\n\nI am joined on the podcast by Birgit Pauli-Haack. Hello Birgit.
\n\n\n\n[00:03:28] Birgit Pauli-Haack: Oh, hey Nathan.
\n\n\n\n[00:03:29] Nathan Wrigley: We’re actually looking at each other, not through a screen.
\n\n\n\n[00:03:32] Birgit Pauli-Haack: Yes. It’s a total different feeling.
\n\n\n\n[00:03:34] Nathan Wrigley: Yeah. Birgit And I chat a lot on various other channels, and it’s a pleasure having you right in front of me. That’s lovely.
\n\n\n\n[00:03:39] Birgit Pauli-Haack: Yeah, same here. I’m always glad we meet at a WordCamp.
\n\n\n\n[00:03:42] Nathan Wrigley: Yeah, thank you. So that’s the introduction then because here we are, we’re at WordCamp Asia, in the Philippines. It’s the first day of the conference in general. We had the Contributor Day yesterday, and we’ve got another day tomorrow.
\n\n\n\nAnd we’re going to have a chat with Birgit who is going to be talking to us today about Playground, because you’ve got a slot at the event all about creating a demo in Playground. And we’ll get onto that in a minute. But first of all, for those people who don’t know who you are, just a few moments for your potted bio. Tell us about yourself.
\n\n\n\n[00:04:09] Birgit Pauli-Haack: So I’m the curator at the Gutenberg Times and I’m the host on the Gutenberg Changelog podcast. And I also am a Core contributor to WordPress, and I work for Automattic. I live in Munich and I’m married, 37 years.
\n\n\n\n[00:04:22] Nathan Wrigley: There we go. That is a very potted bio. Thank you, I appreciate that.
\n\n\n\nSo here we are, we’re going to talk about Playground. And I figured the best place to start is answering the question, what is Playground? And just before we hit record, it was pretty obvious that both you and I are very excited about this. And so I want to encourage people to really pay attention because this genuinely, for me is one of the most exciting developments, not just now, but ever, in WordPress. It truly is a transformational technology. But for those who don’t know what it is, just tell us what Playground is.
\n\n\n\n[00:04:54] Birgit Pauli-Haack: I’m totally with you there on the magic, yeah. And it’s not just for WordPress, it’s for web development. So WordPress Playground is a WordPress instance in your browser. Yeah, you go there, put in playground.wordpress.net. You get a full WordPress instance in your browser, and you can add plugins, you can themes, you can content. Test it out. Whatever you do with that and want to learn with Playgrounds, you don’t need a server, you don’t need a database, you don’t need PHP installed or something like that. So it’s just there.
\n\n\n\nAnd for someone who has been in the web development for many, many years, it’s like magic. Because before you’re always kind of, oh, where do I host things? What’s with the database? What’s with the server? And it’s all gone. Yeah, so it’s really cool.
\n\n\n\n[00:05:43] Nathan Wrigley: I think probably it’s best on this particular podcast to avoid the technicalities, but I would point the listener to a podcast that I did on the WP Tavern with Adam Zielinski several months ago now, where Adam came on and tried, in an audio form, it’s very hard to do, but explained in an audio form exactly what the underpinnings are.
\n\n\n\nAnd the only words I can use to describe it are, it’s voodoo. It is literal magic. Just two or three years ago, if you’d have said that Playground was possible, I honestly would’ve thought that you were talking nonsense. It could not happen. That will never happen.
\n\n\n\n[00:06:18] Birgit Pauli-Haack: Snake oil.
\n\n\n\n[00:06:18] Nathan Wrigley: Yeah, exactly. And yet Adam managed to pull it off. And so just to re-explain what Birgit just said, it’s all in the browser. When you go to playground.wordpress.net, there is no server. Just say it again, there’s no server. There’s no PHP that you need to install on your local machine. It all happens inside the browser. Close the browser down, it goes away. We’ll come to that. Maybe that’s changed.
\n\n\n\nBut the idea is it’s happening in the browser, and so you can have any combination of website that you like immediately inside of Playground, and it really is remarkable.
\n\n\n\nI liken to the moment that the iPhone got the App Store. The iPhone was a very useful thing to have. You know, it did phone calls and it looked beautiful, and you could upload music to the phone with a cable. And then along came the App Store, and suddenly a thousand, a million, different developers could get their hands on it and tell you, here’s a different way you can use the iPhone. And here’s another way, and here’s another thing that you can do. And it feels a bit like Playground is WordPress’ moment like that. You know, it just suddenly prizes the lid open, and makes developers able to show you what they’ve got in a heartbeat.
\n\n\n\n[00:07:25] Birgit Pauli-Haack: Yeah. And that’s pretty much, that’s a very good analogy because we also have a Blueprints gallery that could be something like an app store where you can learn how you can assemble it. So the core technologies is not not, I don’t know any of the technology that’s underlying. It’s based on Web Assembly. And that has been around for about 10 years, trying to get a lot of different programming languages talk to each other in the browser.
\n\n\n\nAnd then it’s based, not on MySQL, but on SQLite database. And then Service Workers and worker Threads API, that are browser APIs. For storage, for instance, yeah, or for sending commands to other different applications. But that’s all I know, yeah. I have never worked with Web Assembly, yeah. And MySQL, I know that, just really amazing.
\n\n\n\nSo you can use that. Many people use it to spin up a fully functional WordPress and demo that. So you can use it in educational settings. You don’t have to download a whole lot of stuff. You don’t have to, as a teacher, you don’t have to set up, talk to your IT department to set up a server for all the students. You can just point them to the Playground and then give them instructions on how to work with that.
\n\n\n\nIt’s a sandbox environment. It could be, yeah, if you want to. You can upload your content and then see what else can you change with it without messing with your live site. You can integrate it with your development. There is a WP now, VS Code extension where you can, so when you’re working on your plugin and you click on the button, it loads up a local Playground for you with the plugin that you’re working on already installed, and that’s really cool.
\n\n\n\nSame with the theme. The training team has been working on interactive demos in terms of having code examples on one side, and then you make changes to the code and you see it in the right hand side. How it changes the website. So that’s really cool.
\n\n\n\n[00:09:20] Nathan Wrigley: I think one of the things that you said there, you’ve got an understanding of some of the underlying technologies, but you were stressing that, basically you don’t need to understand them. Having a knowledge of them is fun, you know, it’s interesting. But a bit like I don’t have the faintest idea how to build an iPhone app, but I can still use an iPhone. And I can still benefit from this application, the maps, navigation app. I don’t need to understand how that’s built, but I can use it, it works.
\n\n\n\nAnd really that’s, I think the purpose. The developers over there, thank you so much, but most people are never probably going to want to get into the weeds of that. They just want to click the button and see what happens.
\n\n\n\nAnd just to be clear on this, if you’ve never done that, I, at my home, have a fairly good internet connection, so I don’t know if I’m in a sort of slightly privileged position, but when I click the button at playground.wordpress.net, I’m imagining it’s somewhere in the order of three to four seconds before that website is ready to go. Basically it’s the length of time it takes me to blink and grab the mouse again. It’s in a heartbeat. So there’s literally no friction.
\n\n\n\nBut if you go to playground.wordpress.net and click the button, what you’re going to get there is a vanilla version of WordPress, which is fine. Then you can do whatever you like with that, put plugins in, what have you. But wouldn’t it be interesting, wouldn’t it be great if somebody came up with, oh, I don’t know, let’s call them Blueprints or something like that, where you could pre-build something that then somebody else could use.
\n\n\n\nSo this is the App Store, isn’t it? You know, somebody’s built the maps navigation app. Somebody’s built the note taking app. Somebody’s built the whatever. This feels like what the Blueprints are. But I want to make sure that you are describing it and not me because I am not sure that I’ve encapsulated it perfectly.
\n\n\n\n[00:11:00] Birgit Pauli-Haack: No, you did. But in opposite to the App Store, you actually can look at other people’s Blueprints and steal them. Blueprints are written in JSON has nothing to do with Jason. It’s JSON. It’s a data format for JavaScript. And there is a schema for it, so when you put it into your code editor, it gives you signals, yeah, that you formatted right.
\n\n\n\nAnd then you have two different ways of configuring your Playground instance. One is to do settings. So you could do which PHP you want to use? Which WordPress version do you want to use? Also, do you want to have network enabled? And most of the time you want it enabled because you want to import and install themes or something like that. Those are the settings.
\n\n\n\nAnd then you have steps. And those steps are also just formulated in JSON format. For instance, you can log in. Automatically log in the person in the Playground. Or you can say, I have a landing page that should land, so when somebody uses that blueprint, when Playground is ready to completely load it, you should land in the block editor, for instance. And you should have that particular block plugin already active on that post, so you can really play with blocks. Nick Diego with his plugin Block Visibility has done a great way for a live preview of his block from the repository.
\n\n\n\nAnother way is to, so install a plugin, add content to it. Use WP-CLI to instantly load up new versions, add new pictures, or use an export from another website, an XML file from another website and load it into the Playground instance.
\n\n\n\nBut sometimes you have, you said you get the vanilla if you just do that, if you just do playground.wordpress.net, you get the vanilla WordPress. But it’s one post, Hello World, and it’s one sample page. But you don’t see how content kind of interacts with whatever feature you want to demo. So you need some content there, yeah. And the Blueprints Gallery has actually some nice examples on how to configure that.
\n\n\n\n[00:13:08] Nathan Wrigley: Let’s come back to the gallery in a minute. Just to recap what you just said. So there’s a bunch of settings, probably more for developers. You know, you might want to test something in a particular PHP environment or what have you, so you can select those. And then you can do these steps where you can essentially design, if somebody was to use that Playground and somebody was to click on your link, they would wait the 2, 3, 4 seconds, whatever, and then, depending on the steps that you’d set up, they would arrive where you chose them to be.
\n\n\n\nSo for example, you might pre-install the latest, greatest plugin that you want to share with the world. And you want people in a post for that. And you want them inside the block editor. And you can make it so that upon clicking the button, the first thing they get is, we’re inside your plugin, we’re about to use it. So the profundity of that is pretty amazing. You can really tailor the experience.
\n\n\n\nSo rather than going from being like Playground, which sounds like children, you’re messing about, larking about a little bit. It also becomes like serious ground a little bit, you know? Serious developers can use this to circumvent, I don’t know, support tickets, the capacity to demonstrate to users who’ve never seen your product before, your plugin, your theme, or whatever it may be.
\n\n\n\nYou can point them to a link. They can click the link. You as the developer configure everything within an inch of its life, so they get exactly where you want them to be. And in that way you can use it as a sales mechanism, as a support mechanism.
\n\n\n\n[00:14:29] Birgit Pauli-Haack: And sometimes it’s really hard to tell people what your plugin does unless you show it them in the video. But then they still don’t get their hands on it. And with that feature, with the Playground combined with the Blueprints, you can actually make them feel the thing. How it works with them, and what ideas they get when they play around with it, and have better questions, educated questions for you, for the product, yeah.
\n\n\n\n[00:14:51] Nathan Wrigley: So a Blueprint then is a version of Playground in which somebody has pre-configured things. Is that basically what it is? You know, let’s say that I have got this fabulous new plugin and I want you to experience it. I don’t necessarily want you to land on a particular page, but I just want the plugin to be available to you and you can do things.
\n\n\n\nIf I install my plugin, use Playground to do that, I can then share a link. And because I’ve tinkered with it, it becomes a Blueprint because it’s not the playground.wordpress.net version, it’s my doctored version, adapted version.
\n\n\n\n[00:15:26] Birgit Pauli-Haack: Well, it also goes to playground.wordpress.net, but it has a query parameter, to be a little technical term, that says, use the blueprint at this URL. So a plugin developer for the repository, at the repository there are live preview buttons now. And the plugin developer can put in a separate directory Blueprints on the WordPress site, put all the assets, all the image that they want to load, and the configuration file, which is written in this JSON file, and put it there, and then make that live. And every time someone clicks on the preview button, they go to playground.wordpress.net with the Blueprint kind of loaded, the configuration files.
\n\n\n\n[00:16:09] Nathan Wrigley: So it’s all happening through playground.wordpress.net. But then there’s JSON configuration file, which gets sort of sideloaded, if you like, through the URL. That tells it, okay, add this and then end up here and what have you. The important part is that JSON, that’s what makes it the Blueprint. It’s going to playground.wordpress.net, but the JSON file means that it does something else.
\n\n\n\nAnd you said the word gallery, which tells me that there’s a whole host of these things. Pre-configured, pre-built, put into a box if you like. And we can go to that gallery and explore. What kind of stuff is in there?
\n\n\n\n[00:16:38] Birgit Pauli-Haack: So, what kind of stuff is there? So there’s one, how do I put an admin notice on top of the dashboard? How do I add a dashboard widget and load it up with my Playground? So most of the time, when you want to log into a WordPress site, you get the dashboard. And if there’s a widget, you can actually guide people to go some other places. You can say, okay, I have a plugin that needs 50 posts, for whatever reason. So there is a Blueprint there and how to use WP-CLI to create 12 or 50 posts automatically, that are then loaded into the post content.
\n\n\n\nSo there’s also a Blueprint for a specific WooCommerce extension. So it loads WooCommerce, it loads the extension, it loads some products, and then you land for a shipping page where you can say, okay, this shipping plugin, what does it do for me? And you see it working with products on a Playground site. So that is really remarkable. It takes a little longer when you have content to load.
\n\n\n\n[00:17:38] Nathan Wrigley: Goes up to like 10 seconds.
\n\n\n\n[00:17:40] Birgit Pauli-Haack: So you go and get your coffee and come back.
\n\n\n\n[00:17:42] Nathan Wrigley: But it’s still profound.
\n\n\n\n[00:17:43] Birgit Pauli-Haack: Yeah, remarkable. Yeah, you don’t have to do anything, kind of just wait a bit.
\n\n\n\nWhat else is in there? Oh, there is a demo of 2025. So when you load 2025 theme automatically and go to your website and see it, you get the post, the blog site, where all the posts are in one one big site with the full content. And not a whole lot of people have that kind of blog. And in the demo, you actually go to the magazine front page, and then see all the patterns that are in there. You can see all the templates in that Playground demo.
\n\n\n\nThat’s interesting for plugin developers that have experimental themes or experimental settings on the settings page that you can actually preload them as well. There’s an example in there for the Gutenberg experiments. They’re on the check marks on a setting site. And you can take that and replicate that for your own plugins site, how to do that, with the areas.
\n\n\n\nBecause you can do site options. So the site options is not only site title and tag descriptions, also, oh, make my block editor have the top toolbar instead of all the other things or the distraction free model, yeah. So these kind of features, you can also preload there and have examples from the Blueprints Gallery.
\n\n\n\n[00:18:57] Nathan Wrigley: I think we’re just at the beginning really, aren’t we? Of of this journey. And basically, the underlying technology is now provisioned. It’s there. And we’re at point where, okay, people, developers, explore. And we’re really just at the beginning of that. And the gallery is probably a good place to go.
\n\n\n\nBut if you wanted to put one of these JSON files together, do you know, is there some credible documentation out there that would help people to get started, learn the ropes?
\n\n\n\n[00:19:25] Birgit Pauli-Haack: Yeah, there’s definitely, there’s documentation of all the steps that are there, yeah, like how to run PHP, how to have additional PHP extensions installed and all that. So when you open the Playground, there are three, and you’re not going to the full page, so you have three panes. On the left hand side you have some menus, and one of them is the documentation link. So that’s good.
\n\n\n\nAnd another link is there, it’s the Blueprint Gallery. So in the middle of the section of your Playground, you see all the list of all the gallery content. And then when you click on the preview or the view site, the Playground loads that for you, and then there’s another menu item where is says, view Blueprint. And that gives you a Blueprint editor.
\n\n\n\nSo you see the Blueprint loaded in, but then when you want to edit from the documentation, okay, what happens when I put that in? And you click the run button, and it reloads that Playground with your changes. So it’s really, very hands on, and you still don’t have to create a server or a local environment or something like that.
\n\n\n\n[00:20:31] Nathan Wrigley: Yeah, there’s this really virtuous cycle of, okay, so you’ve used something from the gallery, but you’re curious about how it works. Look, here’s how it works. Here’s the buttons to click to go and explore. Oh, and whilst you’re at it, if you want to edit anything, here’s the option to edit it. And when you click save, it’ll restart that whole thing and you’ll get the new version.
\n\n\n\nSo all of the sort of helpful tooling is now built into it. Because when I talked to Adam, none of that existed. I mean, the version selection for PHP didn’t exist. The ability to land people on particular destinations when they first load up the playground, none of that existed. It was literally the technology of getting it working.
\n\n\n\nSo now built into it is this knowledge base, if you like. Not really a knowledge base, but more, you want to know how this one works? We’ll show you. And it’s that beautiful, well, the purpose of WordPress, democratising publishing. In this case, it’s democratising the nuts and the bolts, and the bits and pieces of publishing.
\n\n\n\nYeah, so that’s really nice. And that’s all built inside. So just follow the prompts in the UI, and you can adapt what you want, and what have you. But also there are some 101 articles out there, perhaps on Learn or something like that where can see in text format how do all.
\n\n\n\n[00:21:40] Birgit Pauli-Haack: Yeah, the developer blog has, on developer.wordpress.org/news has three articles about Playground. One is about the underlying technology from the Web Assembly people. That was really good for those who want to explore that even further.
\n\n\n\nAnd then there is one on what use cases you can do with a little bit of an example. And then also, so we are right now always talking about playground.wordpress.net. But you mentioned something that someone could put this on their website, and you can.
\n\n\n\nPlayground can be self-hosted. It does not have to go through the wordpress.net site. But how to do this is in the documentation. It has a seperate section there. So if you say, okay, I don’t have my plugin in the repo, but I want to use it through my own website, then you can actually put it there, and it’ll have your own branding around it. So it’s even get further than just the WordPress part.
\n\n\n\n[00:22:35] Nathan Wrigley: So that’s a really important distinction to make. So in the cases that we’ve been talking about so far, if you want to go to playground.wordpress.net and you use your own JSON file, it will be able to suck in anything from the WordPress repo. And that’s the sort of, the WordPress way, if you like. I’m doing air quotes.
\n\n\n\n[00:22:51] Birgit Pauli-Haack: Also from GitHub.
\n\n\n\n[00:22:52] Nathan Wrigley: Oh, thank you. Yeah, that’s an important distinction. I’d forgotten that. Also from GitHub, but you know, it’s everything that’s open source out there, free to download already.
\n\n\n\nBut a big part of the WordPress community, one of the things that makes it popular, is the ability to sell commercial plugins. And so that was another question that I had. Is possible to do it?
\n\n\n\nAnd so, yes, but you need to take the technology that builds WordPress at playground.wordpress.net, you put that onto your own server, and you can do whatever you like with that. So you can put your premium products in there on a, I don’t know, two day free trial sort of basis, and show people how that all works.
\n\n\n\nSo Playground suddenly becomes more interesting outside of the free to play area as well. And you can imagine that being a really, really useful tool. Because we’ve always been able to play fairly straightforwardly with free things on the repo, but suddenly the moment where you’ve got to pay $100 for a thing, the capacity to see that really is the bit which opens the wallet.
\n\n\n\nOkay, it’s $100, maybe I’ll buy it, maybe I won’t. It’d be nice to see it. Okay, they’ve got a 14 day trial, but I’ve still got to pay for it. This opens up the capacity to, look, there it really is. Play with it for two days or whatever it may be. That’s fascinating.
\n\n\n\n[00:24:05] Birgit Pauli-Haack: Absolutely, yeah. And if you want to test that plugin, yeah, you still would need a local server or a hosting server to load it on. And you have that 14 day trial. And now you can really test it right now.
\n\n\n\n[00:24:16] Nathan Wrigley: Right. And that’s the other big thing. Because if you buy a commercial plugin, you then have to spin up a site somehow. You have to download the plugin, upload the plugin, get the plugin configured. This gets rid of all of that, because you don’t need to download and upload anything, and it can be pre-configured.
\n\n\n\nSo the author of the plugin can say, okay, if you want to use my LMS plugin for this kind of thing, here’s playground version with everything just right. And if you want to do it for this kind of thing, I don’t know, you’re an elementary school teacher who might use my LMS plugin in this way, or you’re a university lecturer, who might use it in this way. Let’s build it a perfect version for you.
\n\n\n\nAnd you can imagine that a million times over for all the commercial plugins out there. You know, form plugins. Okay, this is the contact form that we’ve pre-built. This is the, I don’t know, the form which integrates with WooCommerce or whatever. So the developers can do all of this. And that really makes it super useful to them.
\n\n\n\n[00:25:11] Birgit Pauli-Haack: Yes, absolutely, yeah. What’s coming down the pipeline for Playground. One is that you can also use it with private GitHub repos. Which right now is not possible, but it’s in the works. And there was a problem with the proxy, that you get some cross site downloading errors because some servers are not set up to have images downloaded from a machine. They have created a proxy server now, where that is kind of circumvented that you can also from non WordPress sites download stuff, like images and content, or PHP plugins.
\n\n\n\nWhat also comes is, so SQL, MySQL, for some plugins Playground does not work yet, because they use very specific MySQL query, the union query, for instance. Select union and other commands like that. The SQLite doesn’t have those yet. And they are however working on it to replicate these kind of behavior of a database also with Playground. So to make it even more compatible with all the plugins that are out there.
\n\n\n\nI think they did a test of 10,000 plugins that are in the repo, and test every month kind of how many plugins don’t work with it yet. And they got it down from, I think 7% to 5%. So it’s always kind of progressing very well towards zero.
\n\n\n\n[00:26:33] Nathan Wrigley: Yeah, there’s a lot of things going on in the background that the likes of you and I probably, you know, because we’re curious about it, we’ll probably know about, but maybe the average listener who’s not wedded to this subject maybe doesn’t. But that’s really interesting.
\n\n\n\nSo the intention is to get it so that more or less anything works in more or less any scenario. And really nicely putting it out there so that you can do things which aren’t bound to GPL, WordPressy kind of things, if you know what I mean. So, you know, you can use your commercial product over here, and you can use your GitHub repo over here. That’s really nice.
\n\n\n\nMy understanding is that when Adam began it, he was immediately repurposed. So Adam Zielinski, he was an, was, still is, I think, an Automattician. And I think that it was immediately understood, this is profound. Let’s get Adam on this full time. You know, it’s no longer a hobby project. But I also think that he’s got other people from Automattic involved. There’s like a little team around it now, pushing the development of that. Is that still the case? Is this a team which is growing, or stagnating at, well not stagnating, maintaining at a certain number?
\n\n\n\n[00:27:33] Birgit Pauli-Haack: Well, it’s growing in scope. So they’re also working, and that was a focus starting in last fall, that they’re working on using Playground for the Data Liberation Project. And that’s what Adam was doing also full-time now in the last few months. That he looks, okay, what kind of parser do we need to do really good data liberation from other systems, or from WordPress?
\n\n\n\nYeah, because the import and export in WordPress only gets you so far, yeah. And there are some quirks in there, and they want to really have a perfect data liberation through Playground. They have a browser extension. It’s all beta right now. It’s not functioning yet. But it’s really coming along quite nicely.
\n\n\n\n[00:28:20] Nathan Wrigley: So Data Liberation then is this very laudable project of being able to bring into WordPress, I guess data liberation on some levels is the whole point of open source really, isn’t it? Is that you can grab your data and just pick it up and take it somewhere else.
\n\n\n\n[00:28:34] Birgit Pauli-Haack: Open content.
\n\n\n\n[00:28:35] Nathan Wrigley: Right, yeah. It’s your content. This platform is no longer being used, or you’ve fallen out with it. You know, you no longer love it in the way that you did. You want to now move it here. And you’ll be able to, let’s say, go Joomla into WordPress, Drupal into WordPress, or as you said, WordPress into WordPress.
\n\n\n\nWhich suddenly kind of opens up the whole idea of migrating websites, which a real mess frankly. It’s a really difficult thing to do. And I often think that people are bound to products and services that they’re purchasing on a monthly basis because the migration process is so difficult. And they don’t want to be caught up in all of that because things can go wrong. You know, it might not work perfectly and there’s all the just carrying it out.
\n\n\n\nBut if you can essentially do migrations, and Playground is the sort of go between. It’s the bit which talks from, I don’t know, one hosting company to another. So it goes from hosting company A to Playground. Playground then serves it up to hosting company B, which is where you want to end up. And all of that happens through Playground. That’s remarkable. And you can do the inspecting in the middle bit, the middleware, Playground if you like. Check it’s all working before you deploy it. That’s amazingly powerful.
\n\n\n\n[00:29:41] Birgit Pauli-Haack: Yeah. And that’s actually the vision of Playground’s part of Data Liberation. They also have a browser extension to kind of identify a non WordPress site, the various pieces like the pages, the posts, the news, the events, kind of the custom post types. And then kind of teach Playground what it all is. But that’s kind of, it’s very technical on one side, but it’s also, you need to have a total different concept about content management systems to actually make that. So that’s not really for a normal consumer.
\n\n\n\n[00:30:13] Nathan Wrigley: Yeah, because if you’re coming from Drupal and you’ve got like 1,000 different modules in there, you know, think plugins in the WordPress space. Then it’s going to be difficult to one-to-one map that over to WordPress. But the endeavor is to do a half decent job and in the middle you can step in and say, okay, this might need modifying, that might need modifying. And then you can go back to your Drupal install, change things a little bit, try again because it takes no time to do it. That is really a key, interesting part. You do kind of wonder actually if hosting companies in the future will just offer Playground in as part of their bundle, you know, their onboarding migrating bundle.
\n\n\n\n[00:30:47] Birgit Pauli-Haack: Yeah. A lot of hosting companies have their own plugins for that. So I know that Pressable and SpinupWP, they all have their, or wordpress.com has their own plugin that they then connect with. I think it’s BlogVault most of the time. Pantheon, same, yeah. Where you can migrate in. But that part in the middle, that kind of always takes a long time.
\n\n\n\nAnd you are bound to the hosting company to actually offer that, yeah. And that’s not a cheap plugin. But if you go from one small hosting to one, another small hosting, you don’t have that luxury.
\n\n\n\n[00:31:20] Nathan Wrigley: Yeah, and if you’re crossing platforms as well, say Joomla into WordPress and what have you. That’s also really different.
\n\n\n\n[00:31:25] Birgit Pauli-Haack: Yeah. There are a few agencies who have built for their customer things, but it’s not open source and it’s, well, it’s open source, but it’s not meant for a huge amount of public to kind of use it.
\n\n\n\n[00:31:36] Nathan Wrigley: Yeah, I’d imagine that it’s fairly proprietary technology, isn’t it? It’s probably locked down because it’s the secret source of getting the Drupal installs into WordPress on their platform.
\n\n\n\nOne of the things which Adam spoke about when we talked, I don’t know where we’re at with this, but I raised the question of the destructibility of it. So essentially when I spoke to Adam, when you launched Playground, you fiddle with it, played with it, the moment you click close on the browser tab everything went away. That’s how it was designed. But he said that at some point in the near future, and maybe that moment has already been passed.
\n\n\n\n[00:32:09] Birgit Pauli-Haack: It’s here.
\n\n\n\n[00:32:09] Nathan Wrigley: Yeah, so now we’ve got a more permanent version. Tell us about that. Are there any constraints on that? Like, can I close the browser tab? Can I shut my computer down, for example? I mean, will it last forever? Could I even use it as a, I don’t know, as a temporary website in, let’s say I work in a school and I want an intranet for my staff or something, could for those kind of things?
\n\n\n\n[00:32:29] Birgit Pauli-Haack: Well, it cannot be, it doesn’t have a domain or something like that. So that wouldn’t work. But yes, you can save. You have two options to save the site that you’re working on, so you can come back tomorrow. One is in the browser. So it uses the local storage of the browser and really downloads the whole WordPress stuff there. And then you open up the browser again, you get the site again. You cannot load it from another computer because it’s a different browser.
\n\n\n\nAnd the second option is to load it in your local file system. So you can, it downloads the whole thing, gives you a directory and that’s your website, and you can load it then back into Playground a day later, or a week later, or two months later, because it’s still on your computer.
\n\n\n\nYou can also have multiple sites now in one Playground instance. So you can say, okay, save this site, and then now I use another blueprint, load it again and it’s another temporary site. And you load it, you save it again, then you have a second website there.
\n\n\n\n[00:33:29] Nathan Wrigley: A curious version of version control or something like that. You’ve added this plugin in, I’m going to save a new version marking that this plugin got added. Let’s see how that works. And then if it doesn’t work, we can roll back to the, just delete that one and go back to the previous one. Oh gosh. So essentially permanent. Locally permanent maybe is the better way to describe it.
\n\n\n\n[00:33:50] Birgit Pauli-Haack: And you need to think about the saving part. If you do a second site and you close it, a browser without the saving part, it’s going to go away. Yeah, it’s still ephemeral there. Which is also a good thing sometimes.
\n\n\n\n[00:34:02] Nathan Wrigley: But obviously as you said, you know, the point of hosting in the end is that, you know, it connects to a domain name, it goes through the DNS process and you you can see it online. No.
\n\n\n\n[00:34:10] Birgit Pauli-Haack: No, not yet.
\n\n\n\n[00:34:11] Nathan Wrigley: This is not. Oh, not yet. I wonder.
\n\n\n\n[00:34:12] Birgit Pauli-Haack: No, no, I don’t think that’s ever going to be. But what can be, soon hopefully is kind of pushing it to a hosting company. And that, I think it needs to be just finalised which hosting is going to be there. And the Playground team learns a lot from wordpress.com, because the new development, local development system that wordpress.com has, Studio, is based on Playground. They develop some of the features also for, that wordpress.com can use them in their Studio. And what was the bug fixes? Come to Playground.
\n\n\n\n[00:34:46] Nathan Wrigley: That makes real sense though, for hosting companies to be clamoring all over this, to build a Playground import functionality. Because then developers all over the world, you know, maybe if in teams it might be a little bit more difficult, but you know, a solo developer, certainly at the moment, you’ve been working on something. You’ve got this perfect version of the site, you’ve got all the plugins that you want, you’ve set it up, it’s working on my machine. Now I go over to my hosting company of choice, click the import Playground button and there it is. Why wouldn’t the hosting companies offer that frankly, it just seems too straightforward.
\n\n\n\n[00:35:17] Birgit Pauli-Haack: Syncing up with the live site or there’s also a GitHub deployment there. It opens so many ideas, yeah. And when you ask Adam, well, if I think about this, and can you do that? He said, sure.
\n\n\n\n[00:35:28] Nathan Wrigley: Give a few weeks. I’ll add it to list of 1,000 things that people have already suggested.
\n\n\n\n[00:35:32] Birgit Pauli-Haack: Yeah, we need to develop that. Yeah, the ideas are there, the prototypes are there, the proof of concept is already done. Just a matter of resources now, yeah. I can for instance see one thing is, if you have a documentation and you need people to contribute to documentation, you load the documentation in Playground, you make the changes, and then you push it to GitHub as a pull request. And then somebody can review it, load it in their own Playground and approve it so the documentation could be updated.
\n\n\n\nSomething like that is already in use. That scenario, that’s in prototype. It’s not there yet, but we know that it can work, because some theme developers have that process. They’re not developers per se, that they go into the files. They load the theme into Playground, use the Create Block Theme plugin. Make the changes to the theme. Save it and create the block theme, so it’s in files. Then push it to GitHub as a pull request for this theme, and then have all the changes there. So that’s how a lot of designers work with their developers on the themes. They don’t have to touch any code, but it’s still all saved in code.
\n\n\n\n[00:36:48] Nathan Wrigley: It’s just such an interesting beginning of everything. It does feel like we are at a moment where there’s just so many different roads that could be taken, and lots of people coming up with lots of different ideas.
\n\n\n\nJust quickly circling back to the Studio thing that you mentioned. So Studio is a local development environment. You’re going to be downloading this as a software bundle for your Mac or your Windows machine or what have you. You’re saying that’s a wrapper for Playground, is it?
\n\n\n\n[00:37:13] Birgit Pauli-Haack: Exactly.
\n\n\n\n[00:37:13] Nathan Wrigley: But that’s immutably stored. That’s not dependent on.
\n\n\n\n[00:37:17] Birgit Pauli-Haack: No, it’s on your machine, yeah.
\n\n\n\n[00:37:19] Nathan Wrigley: Right. So it’s going for the files on the machine approach as opposed to being stored in the browser. So if you download and make use of Studio, you can close that machine down, come back to it whenever you like, it’s there until you decide to delete it.
\n\n\n\n[00:37:32] Birgit Pauli-Haack: Like any other local environment that you can, yeah.
\n\n\n\n[00:37:35] Nathan Wrigley: Yeah, okay. And that’s available free you to download for anybody.
\n\n\n\n[00:37:38] Birgit Pauli-Haack: Free, open source.
\n\n\n\n[00:37:39] Nathan Wrigley: Okay. Is there anything else you wanted to cover off, apart from the fact that we’ve both got ridiculously excited about this. Was there anything curious, interesting, quirky, novel that you’ve seen out there that we haven’t yet touched?
\n\n\n\n[00:37:50] Birgit Pauli-Haack: No, not yet. But I’m starting now to kind of dream about it. And sooner or later I come up with something, yeah.
\n\n\n\nWhat I would want and what I want to pursue is that I can have a Playground instance for writers. And I know writers who are not very keen on using the Block Editor, because it gets in the way. But the Block Editor has these settings where you can do distraction free, where you can do, put the toolbar on top, yeah, and hide it as long as I write, and just let me have when I’m not writing kind of thing, and log in and not have to go to the menu.
\n\n\n\nRight now, if I’m a blogger, I have to log into WordPress, and then I need to look at post, new post. This would give you, start writing, and don’t have to worry about the rest of it. And then click a button and then your WordPress site is updated with it. That’s kind of what I’m working on. I don’t know if really helpful, but.
\n\n\n\n[00:38:44] Nathan Wrigley: No, that’s really great. I mean, one of the things that I always thought was curious about it would be the idea in education, for educators literally standing in front of pupils, children who, you know, depending on what the kind of curriculum they’ve got. It might be we’re doing about poetry. We want everybody to upload and modify a poem, or comment on a poem or something like that.
\n\n\n\nAnd here’s the link. You know, we’re in an environment where everybody’s, we’re in the computer lab, everybody’s got a computer. Just click on this link, scan the QR code, whatever it may be. Give us your modifications, what have you. And I know that’s a sort strange example, but it’s the fact that instantly, very, very inexperienced users are in the same exact interface as all the other experienced users. And the level of difficulty was clicking a link. You just needed to click a link.
\n\n\n\nAnd the educator didn’t need a great deal of technology to set it up. The pupils needed zero technology to access it. And so it’s that one to many thing, where lots and lots of people can access the same thing in a heartbeat. And I’m imagining that the tooling to create the Playground installs, and to create the Blueprints is going to make it more and more easy in the future. So possibly not the perfect example, but I do like the example of one to many.
\n\n\n\n[00:39:56] Birgit Pauli-Haack: Yeah. What I like about it is that it’s not about WordPress. It’s about poetry. It’s about writing. It’s about, well, even image uploading and editing, yeah. You could certainly do that. Technology gets out of the way. And for the last 25 years, that’s always been in the way, yeah, and now it’s out of the way.
\n\n\n\n[00:40:14] Nathan Wrigley: Well, because the internet is basically a reading experience. I mean, I know we’ve got forms, but really all you’re doing is submitting a form so that somebody can read that. But you go to any website and largely websites, you know, if you’re going to some sort of SaaS app, that’s a different thing, it’s configured probably to be more interactive. But broadly speaking, you’re going to consume information.
\n\n\n\nBut in this, you click a link and you’re reading information, but then you can do things with it. Oh, I think it would be better if there was an image there in that poem. Or, I don’t know, it’s an explanation of some principle of physics or something, and a diagram would be really useful at this point, and I don’t like the way they describe that, that could go in bold. And you are interacting with the internet. And it’s totally free, and it will be easy to deploy, and it’ll take seconds to load. And all of a sudden the internet became more interactive. And it’s just the beginning. It’s very exciting.
\n\n\n\n[00:41:05] Birgit Pauli-Haack: Yeah, it is.
\n\n\n\n[00:41:06] Nathan Wrigley: Birgit Pauli-Haack, thank you very much for talking to me today.
\n\n\n\n[00:41:09] Birgit Pauli-Haack: Thank you for leading me down the road of all the ideas here.
\n\n\n\n[00:41:13] Nathan Wrigley: Thank you for explaining it.
\nOn the podcast today we have Birgit Pauli-Haack.
\n\n\n\nBirgit is a long time WordPress user, an influential voice in the WordPress community. She’s known for her role as the curator at the Gutenberg Times and host of the Gutenberg Changelog podcast. And brings her wealth of experience as a Core contributor to WordPress as well.
\n\n\n\nShe joins me today for an in-person conversation, recorded at WordCamp Asia in the Philippines, and we’re discussing Playground, a remarkable development that’s set to redefine the WordPress development landscape.
\n\n\n\nPlayground allows users to launch a fully functional WordPress instance directly in their browser. Without the necessity of a server, database, or PHP, Playground breaks down barriers, offering developers, product owners, educators and everyone in between a new way to interact with WordPress.
\n\n\n\nWe explore how this technology not only simplifies the testing and development process, but also sets the stage for more interactive and immediate web experiences.
\n\n\n\nWe explore the concept of Blueprints within Playground, tailored configurations that enable a bespoke user experience by preloading plugins, themes, and content. This feature helps developers to present their work in a controlled environment, offering users an insightful hands-on approach that can significantly enhance understanding and engagement, and it’s all available with just one click. It really does eliminate the traditional hurdles associated with installing WordPress.
\n\n\n\nIf you’re curious about how the WordPress Playground is set to usher in a new era of friction-free web development, this episode is for you.
\n\n\n\nPodcast with Adam Zielinski on How Playground Is Transforming WordPress Website Creation
\n\n\n\n\n\n\n\nBlock Visibility plugin by Nick Diego
\n\n\n\n\n\n\n\nWordPress Developer Blog > News
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Apr 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:19;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"Do The Woo Community: The Web Agency Summit 2025 with Andrew Palmer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93794\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"https://dothewoo.io/the-web-agency-summit-2025-with-andrew-palmer/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"The Web Agency Summit is a free event from April 7-11, 2025, focusing on web development, offering insights into AI, SEO, and networking opportunities for professionals across platforms and CMSs.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Apr 2025 10:22:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:20;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:64:\"Do The Woo Community: When It’s Time to Let Go of Your Podcast\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93347\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://dothewoo.io/blog/when-its-time-to-let-go-of-your-podcast/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:198:\"Podcasting can be challenging, requiring time and effort. After managing eight podcasts, I learned the importance of knowing when to let go, recognizing that not all ideas sustain long-term success.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Apr 2025 10:14:21 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:21;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"WordPress.org blog: WordPress 6.8 Release Candidate 2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18662\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/04/wordpress-6-8-release-candidate-2/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8637:\"The second Release Candidate (“RC2”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC2 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC2 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update –version=6.8-RC2 |
WordPress Playground | Use the 6.8 RC2 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC1, you can browse the following links:
\n\n\n\nWant to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:
\n\n\n\nWordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC2, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ? You can help translate WordPress into more than 100 languages. This release milestone (RC2) also marks the hard string freeze point of the 6.8 release cycle.
\n\n\n\nTesting, 1, 2, 3
It’s almost April fifteenth
Squashing all the bugs
Thank you to the following contributors for collaborating on this post: @michelleames, @tacoverdo, @jopdop30, @vgnavada, @jeffpaul.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Apr 2025 15:53:20 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"Do The Woo Community: Host Adam Weeks Covers CloudFest 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93611\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"https://dothewoo.io/blog/host-adam-weeks-covers-cloudfest-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:321:\"Our host Adam Weeks was busy during CloudFest and the Hackathon. And on top of that he was making sure we had content to share while he enjoyed the event. So kudos to Adam and here are recaps of his episodes. Episode 621: Inspiring Innovation through Hackathons A peek into the CloudFest Hackathon with insights […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Apr 2025 10:30:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:23;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"Do The Woo Community: Engaging Young People in the WordPress Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=88452\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://dothewoo.io/blog/engaging-young-people-in-the-wordpress-community/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:248:\"The WordPress community must engage younger generations by simplifying onboarding, providing education, promoting career opportunities, and fostering connections, ensuring sustainable contributions to the platform’s future development and growth.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 31 Mar 2025 09:10:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:123:\"Gutenberg Times: Field Guide, No-Code Theme, Pattern Library, why you might not need a Custom Block — Weekend Edition 323\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=38176\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:127:\"https://gutenbergtimes.com/field-guide-no-code-theme-pattern-library-why-you-might-not-need-a-custom-block-weekend-edition-323/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:18889:\"Hi,
\n\n\n\nSpring is here. On the weekend I saw Forsythia bushes in full bloom all over the city. Yesterday, I passed the National Museum and saw their Magnolia trees blooming as well. The temperatures are still too low for my taste, but not for long. 🌤️
\n\n\n\n“Isn’t this a WordPress newsletter”, you might think. I know, I know. Let’s get on with it, then. Carpe diem! 🤗
\n\n\n\nHave a fabulous weekend!
\n\n\n\nYours, 💕
Birgit
PS: The links for mentioned people are now going to their Blue Sky profile, and if I couldn’t find them, it’s till their X (formerly known as Twitter) profile.
\n\n\n\nFollow us on Bluesky @bph.social and @gutenbergtimes.com
The Page Builder summit 2025 is on the calendar now: Anchen le Roux and Nathan Wrigley announced the eighth edition of the virtual conference will take place from 12th to 16th of May 2025. Save the date, and add your name to the Waitlist, to receive info, when registration opens. “The summit is a 5-day event that will help WordPress developers, designers, freelancers, and agencies to build better websites faster and more efficient. As well as learn more about the page builders and the awesome things you can do with them. “, they wrote.
\n\n\n\nWeb Agency Summit 2025 will happen April 7-11, 2025. “Learn proven strategies top agencies are using today to scale sustainably, streamline operations, attract high-value clients, and stay ahead of the curve.”
\n\n\n\nWordSesh returns May 13–15, 2025. It is a virtual conference for WordPress professionals. Its host, Brian Richards, is a seasoned virtual conference producer and WordPress educator. His speaker and session curation is top-notch. Sign up to receive updates on the next event.
\n\n\n\nWordPress 6.8 Release Candidate 1 is now available for testing. Final release is scheduled for April 15, 2025
\n\n\n\nshould_load_block_assets_on_demand
in 6.8 George Mamadashvili released Gutenberg 20.6 RC 1 version, and it’s ready for testing. What to expect in this version?
\n\n\n\nrel
attribute. (69641) 🎙️ Latest episode: Gutenberg Changelog 116 – WordPress 6.8, Source of Truth, Field Guide, Gutenberg 20.5 and 20.6 with special guest JC Palmes, WebDev Studios
\n\n\n\nWes Theron created a video tutorial to teach you How to Build a WordPress Theme the No-Code Way. He shows you where to update your colors, choose your fonts, modify the Single page template and then use the Create block Theme plugin to save all the settings into a new theme’s file structure.
\n\n\n \n\n\nIn this short video on X (former Twitter), Jamie Marsland shows us How to create a One-Pager website with WordPress, using the site editor, core blocks and some custom CSS.
\n\n\n\nMahdiAli Khanusiya, is the designer behind the PatternWP plugin that offers a big library of WordPress block patterns and full-page templates. Using it will instantly increase the range of designs and layout you can offer your customers, and streamline your production process. There is also a pro version available.
\n\n\n\nLatest six block themes in the WordPress repository:
\n\n\n\n “Keeping up with Gutenberg – Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. The previous years are also available: 2020 | 2021 | 2022 | 2023 | 2024
In his post How to extend core WordPress blocks with Blocks API, Joel Olawanle, technical editor at Kinsta, introduced you to the basic extension methods like Block Styles and Block Variations with code examples and multiple ways to accomplish the tasks.
\n\n\n\nAlfredo Navas, web developer at WebDev Studios, wrote a tutorial on how to use the Block Bindings API and why you might not need a Custom Block. Navas walks you through registering a Custom Source, how to create a Block Variation with custom data and making it all work in the editor and on the front end.
In last week’s livestream, Ryan Welcher created a new WordPress block theme for the Block Developer Cookbook and gave it a new look. You can watch him turning change his color scheme and turn his existing theme into a style variation.
\n\n\n \n\n\nBrian Coords found a way to create Dynamic WordPress Playground Blueprints with Cloudflare Workers and shared in his video how he built a system to spin up demo WooCommerce stores. The code lives on GitHub
\n\n\n \n\n\nNeed a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience
\n\n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
Featured Image:
\n\n\n\nDon’t want to miss the next Weekend Edition?
\n\n\n\n\n\nBuddyPress 14.3.4, BuddyPress 12.5.3, and BuddyPress 11.4.4 are all now available. This is a security release. Please update as soon as possible.
\n\n\n\n14.3.4, 12.5.3 & 11.4.4 fixed two bugs:
\n\n\n\nFor complete details, visit the 14.3.4 changelog.
\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\nYou can get the latest version by clicking on the above button, downloading it from the WordPress.org plugin directory or checking it out from our Subversion repository.
\n\n\n\n[00:00:00] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, the efficacy of website usability testing for WordPress projects.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice. Or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.
\n\n\n\nToday I bring you the first in a mini series of podcasts I recorded in person at WordCamp Asia in Manila. This flagship WordPress event brought together hundreds of WordPress professionals, enthusiasts, and all manner of interested parties under one roof for a three day event. One contributor day, and two days of presentations.
\n\n\n\nI tracked down several of the speakers and workshop organizers and recorded them speaking about the subject they were presenting upon. I hope that you enjoy what they had to say.
\n\n\n\nSo on the podcast today, we have the first of those conversations, and it’s with Jo Minney.
\n\n\n\nJo based in Perth, Australia, is passionate about user experience, data-driven decision making, cats, pockets, and travel. She’s a small business founder, and works with organizations creating digital platforms with WordPress. She also freelances as a UX consultant. She volunteers with Mission Digital to address social issues using technology, and is an ambassador for She Codes Australia, promoting tech accessibility for women. Recognized as a 2023 Shining Star by Women in Technology, Western Australia, Jo is an international speaker on topics like user experience, accessibility, and gender equality. She’s committed to ensuring a seamless user experience, and today shares her insights from practical, everyday usability testing.
\n\n\n\nJoe’s presentation entitled, Budget Friendly Usability Testing for WordPress, helped attendees understand what usability testing is, and clarified why it differs from other testing methods. She shares examples from her work showing how small changes can significantly impact user experience, which is better for you, the website builder, and your client, the website owner.
\n\n\n\nWe also discuss how usability testing can transform a website’s effectiveness by improving conversions. Joe explains the importance of recruiting novice users for testing, and highlights how usability testing pushes for real, user-centered, improvements.
\n\n\n\nTowards the end, Jo share’s practical advice on when and how to integrate usability testing into your process. Advocating for early and iterative testing to preemptively address potential issues.
\n\n\n\nIf you’re looking to gain a deeper understanding of usability testing and its benefits, this episode is for you.
\n\n\n\nIf you’re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast where you’ll find all the other episodes as well.
\n\n\n\nAnd so without further delay, I bring you Jo Minney.
\n\n\n\nI am joined on the podcast by Jo Minney. Hello, Jo.
\n\n\n\n[00:04:06] Jo Minney: Hi. It’s good to be back again Nathan.
\n\n\n\n[00:04:08] Nathan Wrigley: Yeah, you’ve been on the podcast before. But this time it’s different because this time we’re actually facing each other. Last time we were doing it on, you know, something like Zoom or something like that, but here we are staring at each other because we’re at WordCamp Asia. We’re in the Philippines, Manila. It is the second day of the event, kind of. We had Contributor Day yesterday. Today is presentation day. It’s the first day of the presentations, and you are doing one.
\n\n\n\n[00:04:29] Jo Minney: I’ve done one actually. I did it at 11 o’clock this morning.
\n\n\n\n[00:04:33] Nathan Wrigley: How did it go?
\n\n\n\n[00:04:34] Jo Minney: It went really well, I think. I had very good feedback from it. Half of the things on my slides didn’t work. I think that’s normal for a conference though, and I’m pretty experienced now at just winging it, and rolling with it anyway, so. It was really exciting because it’s a topic that I’m super passionate about and I haven’t had a chance to speak about it at a conference before. So, yeah, it was really nice to be able to share something that I do on a day-to-day basis and can stand up there and really confidently talk about.
\n\n\n\n[00:04:58] Nathan Wrigley: I don’t think I’ve ever spoken about this subject before in any of the podcasts that I’ve done. That is quite nice, and it’s novel. I’ll just introduce the topic. The presentation that you gave was called Budget-Friendly Usability Testing for WordPress. And obviously that sort of sums it up. We’re going to talk about usability testing.
\n\n\n\nBut before we do that, Jo, just to nail your colours to the mast a bit, tell us about you. Where you’re from. What you do for a job, and anything that you think is relevant to this podcast.
\n\n\n\n[00:05:22] Jo Minney: Okay, I really like cats and pockets.
\n\n\n\n[00:05:25] Nathan Wrigley: I saw that in your show notes. Why pockets?
\n\n\n\n[00:05:27] Jo Minney: Okay. So I think pockets are a great example of something that can be both a fantastic and a terrible user experience. You are like, oh yeah, maybe I know what you’re talking about. But, let me ask, do you live with a woman?
\n\n\n\n[00:05:39] Nathan Wrigley: I do.
\n\n\n\n[00:05:39] Jo Minney: I know that’s a very personal question, sorry Nathan. But, how many times on average a month does she complain about not having pockets in her clothing?
\n\n\n\n[00:05:48] Nathan Wrigley: Never, she carries a bag.
\n\n\n\n[00:05:50] Jo Minney: Yeah, but why do we have to carry a bag, right? She has to carry a bag because her clothing doesn’t have pockets. So I spoke at a conference late last year, and I asked this question. This has been a life goal of mine, was to speak about pockets at a conference. And I managed to do it. I asked all of the women in the audience, hands up if you’ve ever thrown out clothes or gotten rid of them because they didn’t have pockets in? And every single woman stood up and was like, yes, I’ve gotten rid of clothes because they didn’t have pockets in.
\n\n\n\nMost of the people that were there were men. And I said, stand up if you don’t have pockets in your clothes right now. And 400 men stayed seated. But this is an example of something where, yes, there’s a subsection of the population that’s experiencing this problem, but it’s a big problem for us. It’s very frustrating. You’re at a conference, you don’t want to have to carry around a handbag. So, pockets. They’re a great example of user experience.
\n\n\n\n[00:06:45] Nathan Wrigley: Okay, I get it. I understand now. Tell us a little bit about your sort of day-to-day work, though. You work with WordPress, I guess.
\n\n\n\n[00:06:51] Jo Minney: I do. So I run a small agency. We’re what I usually call a micro agency, and we have only three of us that are working on the WordPress team. We do website development, but specifically for charities, nonprofits, cause-based organisations, so a lot of social enterprises and that sort of thing.
\n\n\n\nOn top of that, I also do consulting for user experience research. I’m not a designer. UX and UI often get lumped together. They’re very different. UI is about the interface and what people see, and UX is about user experience and how people use things. And they can’t be completely separated, but they’re also very different.
\n\n\n\nSo I am lucky because I work in the niche that I work in, that I’m able to do a lot of usability testing and it’s something that a lot of people don’t get the experience to do. And so I thought I would share what I’ve been able to learn over having this sort of unique opportunity to do so much usability testing, and share with people how they can do it more cost effectively, but also the benefit that it can have for a project.
\n\n\n\n[00:07:54] Nathan Wrigley: Let’s dig into it and I’m going to actually crib the questions which you posed to the audience today. You put four questions surrounding your subject. And the first one is this. And I’m sure that the listeners to this podcast, if they’re anything like me, they’ll probably have some impression that usability testing is a thing that you could do. And I think the word there is could, as opposed to do, do.
\n\n\n\nI imagine most people have an impression of what it is, but whether or not they do it is another thing altogether. But that would then lead to this. What even is it? So what is usability testing, and what are you actually testing for? So that was a question you posed to the audience and now I’m throwing it right back at you.
\n\n\n\n[00:08:34] Jo Minney: Yeah, it’s a good question. It’s probably the sensible place to start. So usability testing is not the same as user testing, or user acceptance testing. And it’s focusing on, how do we identify what the problems are with something that we have created?
\n\n\n\nSo a lot of UX research is focused on what we call quantitative testing. So, meaning we’re looking for quantities of something. It could be the amount of time it takes someone to do an action. It could be using heat maps. So we have a thousand users, let’s see where their cursors most often are going. Let’s see how often they scroll down the page. And quantitative testing is really good at showing you comparisons of whether one thing or another thing works better, but it’s not actually good at identifying what the problem is, only that there is a problem.
\n\n\n\nSo you can do a lot of testing and still not know what the problem is. Usability testing is different because it’s what we call qualitative testing. So it means that we’re not looking for big numbers, we’re not looking for lots of data. We are looking for really deep user experience examples. And in a nutshell, the way that that works is you recruit some participants, usually five people per round is ideal. And often I get asked, well, how can you have statistically significant data with only five people? That’s not the point of qualitative testing. The point of qualitative testing is not to have statistically relevant data, it’s to have the actual user experiences.
\n\n\n\nSo you recruit your people, you come up with your research questions and that’s the problem that you’re trying to solve or the question you’re trying to get an answer to. So, an example might be, are users going to recognise this label that I’ve used in my navigation? Is this button going to get clicked if I put it in this location? It’s often a thing that, if you’re working with a customer to develop a website for them, what we find is that often the things that we are testing for in usability testing are things that the customer and I disagree on, or things where they weren’t sure when they made the decision in the first place. And they’re a great example of things that you want to test for.
\n\n\n\nBut the research questions are only the first part because if I say, the example I used in my talk today is that we had a support service directory. And this was for people who are experiencing family domestic violence. And they didn’t want to use the term directory because it’s a very harsh term. So they had called it support services, which sounds, on the surface like a good idea, but a lot of the people that are using their platform are not English first language. And they also tend to be in a really stressed out state as you can imagine.
\n\n\n\nAnd so what we actually found is that when we said to them, can you imagine you’re helping someone, can you help them find a legal service that will enable them to get a restraining order or something like this? What we found is that repeatedly they didn’t go to support services to start with. The minute we changed that to service directory, they started to find the thing that we wanted them to click on.
\n\n\n\nIt’s such a small change, but it made a huge impact, the usability. Now, we found that out after the second test, which meant that we were able to change it after the second test, and then we had three more tests where we could show that every time they were able to find the thing that we wanted them to be looking for.
\n\n\n\nSo this is an example where the research question and the research task or the activity that we’re giving to the user, they’re not the same thing. If we said to them, find support services, find the service directory, if we use that language, obviously they’re going to look for that label. But instead we asked them to do an activity that would hopefully take them to the place we wanted them to go to.
\n\n\n\nAnd then finally the last step is to iterate that and to actually take that data and make decisions, and make improvements to the project iteratively to try and make it better. That’s the goal, right? Is to find what the problems are and fix them. So we still have to work out how to fix them, but at least we know what the problems are and not just that people were not clicking on the button and we don’t know why.
\n\n\n\n[00:12:27] Nathan Wrigley: I have a couple of follow up questions. First thing isn’t the question, it’s an observation. So that’s really cleared up in my head what it is, so that’s amazing. But one of the things that I want to know from that is, do you filter out people who, let’s say for example, you’ve got a website, the kind that you just described. Do you filter out people who are not the target audience? So in other words, I don’t know, maybe that’s not a perfect example. But let’s say, on some websites, would it be better to have really inexperienced users of the internet as your five candidates?
\n\n\n\n[00:12:59] Jo Minney: That is exactly the ideal person.
\n\n\n\n[00:13:02] Nathan Wrigley: So people who are just, I’ve never come across this before. You want people who are potentially bound to be confused. If somebody’s going to be confused, it’s you five.
\n\n\n\n[00:13:10] Jo Minney: That is the ideal participant for a usability study. And often people say, I want to start learning how to do usability testing. Where should I start? And my advice to them is always the same, with your mum.
\n\n\n\nRecruit a person that’s a generation older than you, because I can guarantee that in most cases, sorry to generalise, but they tend to be less efficient and less used to technology because they haven’t grown up with it. So for millennials and younger, we have had technology for all of our adult lives and most of our childhood.
\n\n\n\nFor my parents’ generation, they have had to learn that technology as an adult, and so their brains have a different mental model, and they don’t take for granted things that we take for granted. Like, when I click the logo, it will take me back to the homepage. I know that, you know that, your mum might not know that.
\n\n\n\nAnd I think that is something that is really valuable is to understand the benefit of testing with people who aren’t as experienced with technology. Who don’t speak English as a first language. Who are experiencing some kind of accessibility challenge. Whether that’s using assistive technology, being colorblind. Things like that are really good things to try and get some cross-sectional representation in your testing participant pool.
\n\n\n\n[00:14:25] Nathan Wrigley: So the idea then is that you’ve got these novice users who hopefully will immediately illustrate the point. And it’s driven by questions. So it’s not just, we are just going to stand over your shoulder and watch you browse the internet, and when you do something and describe, you’re looking for something and you can’t find it, that’s not how it’s done.
\n\n\n\nIt’s more, okay, here’s a defined task, do this thing and we’re going to ask you to do five things today, we want you to achieve them all and describe what you’re doing, but it’s more of that process.
\n\n\n\nAnd then the idea is that you go from an imperfect website, slowly over time, iterating one problem after another towards a better website. The goal is never reached. It’s just an iterative process.
\n\n\n\n[00:15:01] Jo Minney: That’s it. Perfection does not exist.
\n\n\n\n[00:15:03] Nathan Wrigley: Okay, so that’s interesting. So we start with the novice. We’ve got a small cohort of people. We ask them specific questions, and we get feedback about those specific questions.
\n\n\n\nSo the other thing that I wanted to ask then is, when do you do it? Because it feels like you need to build the website first, then show it to people. So there’s got to be something. This isn’t process of discovery prior to the website. You need pixels on pages. Buttons that are potentially mislabeled or what have you. Is that the case? Build first, then usability test afterwards. There’s no usability testing prior to the initial build.
\n\n\n\n[00:15:37] Jo Minney: It’s kind of a trick question because you can usability test at most stages. Probably the only stage you can’t usability test at is when you don’t yet have a site map. Having said that, my recommendation is, assuming you had unlimited budget and unlimited time, I would do at minimum two rounds of usability testing, and I would do one before you have any design, and I would do it just using wire frames.
\n\n\n\nSo we build interactive wire frames using WordPress. So for the demo that I did today, I spun one up. I used InstaWP. You can get like a seven day website or something through there. It took me 42 minutes to build out the website in just the block editor, with no design or anything, just the layout of it. And I was eating a loaded potato at the time. So if I can do that in 42 minutes, eating a loaded potato, and that’s not my job, I think it’s a pretty efficient and cost effective way of being able to do early usability testing.
\n\n\n\nAnd often the thing that we’re testing for there is like, have I got the right navigation structure and hierarchy? Are the labels that I’m using sensible for people? Do they fit with the mental models of what our users are actually expecting? And the benefit of doing it that early is that when you don’t have a design applied, it’s a lot easier to identify problems.
\n\n\n\nBecause there is a thing that happens in human psychology, and there’s a lot of psychology in user experience. And there’s a thing that happens where if something’s pretty, we will say that it is easier to use. Our experience is that it’s easier to use because it’s nice to look at. And that’s great. That means that UI is really important, but it also means that, if you have a really nice UI, it can mask problems that you have in the background. It is great that things can be easier if they’re pretty, but imagine how much easier they would be if they worked well and were pretty, that’s what we should be aiming for.
\n\n\n\nSo typically we would do one round of usability testing when we just have a framework and just have the navigation. When someone lands on a page, sometimes we’ll just write a message on there and say, congratulations, you found the service directory where you can find this thing, this thing, this thing, this thing, and then we put a little button there. When they click it, it releases confetti on the page. So they get a dopamine hit and it’s like, yay, I completed the activity. You don’t have to have all of your content in place to be able to do testing, and identify early that you’ve got problems that you need to fix.
\n\n\n\n[00:18:02] Nathan Wrigley: It sounds almost like an overly complicated design is the enemy of usability. We are drawn towards beautiful, but sometimes maybe beautiful just is overwhelming. You know, there’s lots of colors on the page, the buttons get hidden, there’s just too much text on there. Looks great, but it might be sort of masking the thing that you’re really trying to show. And it feels like there’s this tight rope act of trying to balance one thing against the other. Yeah, that’s really interesting.
\n\n\n\nSo, with the wire frame thing, in that case, you are really just testing, can the person find the thing? But I’m guessing once you’ve move beyond the wire frame stage and you’ve got a website, it’s literally out on the internet, it’s functional. It’s exactly what we hope would be the perfect version, then you’re drilling into more detail. You know, can a person find this resource? Do they know that this button is what we are intending them to click? Those kind of things.
\n\n\n\n[00:18:49] Jo Minney: Yeah. So I think things like searchability and discoverability are much easier to test for in the early stages when you’re just doing, say, using like a wire frame or a prototype. And things like usability, you really do need to have the complete designed product to be able to test for them well. And I say that, there’s actually kind of four categories of the different types of tasks that we can do. I’ll give you the link to the blog post that I wrote that has all of this in detail because we do not have time to go deep into that today.
\n\n\n\nBut things like, does my search form work the way that I want it to? They’re the sorts of things that you do have to do some development to be able to get them working. So it’s not always practical to do that at the very early stages when you do want to start testing your navigation and stuff like that.
\n\n\n\nSomething that you can do is if you’ve only got enough budget, or enough time, to be able to do, say, five usability tests total, you could do two of them early, and then you could do three of them towards the end, after you have the majority of the design and the development work in place. Users are pretty forgiving when they’re doing a usability test. If you say, this is still a work in progress, there might be a couple of pages that look odd and aren’t quite ready to go live yet. If you get somewhere and you’re not sure, you can just go back, it’s okay.
\n\n\n\nIt’s not meant to be a perfect experience. The point is that you are getting their real time thoughts and feedback as they’re doing it. So it’s really important that you try and encourage them to follow the think aloud protocol, which is really outlining every single thing that goes through they’re head, just brain dump on me please. Like, I just want to hear all of your thoughts and thought processes.
\n\n\n\nAnd the only thing as the facilitator that I will say during a usability test is, tell me what you’re thinking. And other than that, I am completely silent. So even when it comes to giving them the activity, so if I’m asking you to do an activity like help somebody find a legal service that they can use in this particular state. I would actually send that task to you via the chat or something like that.
\n\n\n\nI would send the task to you via the chat, and then I would get you to read that task back to me, because I don’t want you to be thinking about how I’m saying it. I want you to be able to go back to that task and look at it, and think about it, and process everything inside your own head. But I want you to be telling me all of that.
\n\n\n\nSo often we’ll find people ask questions during that, like, what should I do next? And the answer to that is really hard to train yourself out of replying to them with anything other than, what would you do if I wasn’t here? And I think that’s the hardest thing about learning to facilitate a usability test.
\n\n\n\n[00:21:24] Nathan Wrigley: Yeah, and in a sort of an ideal scenario, you wouldn’t even be in the room. But in some strange way, you’d be able to just get into their head and say, okay, now I want you to do this, but every time you’ve got problem, just figure figure it out, and we’ll watch. But you have to be there because you have to be able to listen to what they’re saying and what have you. Yeah, that’s curious.
\n\n\n\n[00:21:40] Jo Minney: Yeah, and we do, at the end of each activity, we’ll then ask them for feedback on how they found it. If they had any suggestions or things that they didn’t say out loud while they were doing it that they wanted to share with us. How confident were they with the activity, and did they think that they were successful in it, which is a really good way of telling, I wasn’t really sure what the activity was meant to do. Or I wasn’t really sure if what I found really met the needs that I was looking for.
\n\n\n\nThen we ask them, how certain are you with the answer that you just gave? And if they’re like, three out of five, you’re like, alright, this person didn’t understand what it was that I was asking them to do in the first place. Maybe the problem is actually with my question and not with the website.
\n\n\n\n[00:22:18] Nathan Wrigley: Okay, so the whole process is, you’re not just asking for feedback about the website, there’s a whole process of asking for feedback about the process as well which is, that’s kind of curious. Meta, meta processing.
\n\n\n\n[00:22:27] Jo Minney: Very meta, for sure.
\n\n\n\n[00:22:29] Nathan Wrigley: We’re in an industry where at the moment everything is trying to be automated.
\n\n\n\n[00:22:32] Jo Minney: Is this the AI question?
\n\n\n\n[00:22:34] Nathan Wrigley: Well, no, this feels like it’s a very human thing. You need actual bodies on the ground. So it’s really a question of economics. Because I’m wondering if this often turns out to be a fairly expensive process. And because of that, I wonder if people push against it, because the budgets may not be there. If this is something that clients typically would say, well, okay, tell me how much that’s going to cost. It’s a nice idea but, okay, it’s going to cost us X thousand dollars because we’ve got to put five people in a room and we’ve got to pay for your time to moderate the event, and come up with the questions and so on.
\n\n\n\nHow do we manage that in an era of automation where everything is, the dollar cost of everything has got to be driven down. This feels like the dollar cost is going up because there’s humans involved.
\n\n\n\n[00:23:14] Jo Minney: Yeah, it’s a great question. Have you ever run a Google ad before?
\n\n\n\n[00:23:17] Nathan Wrigley: It’s expensive.
\n\n\n\n[00:23:18] Jo Minney: It’s very expensive. It’s very expensive to get a new lead. It’s a lot more cost effective to convert a lead than it is to get a new one. And the point of usability testing is to improve conversion of people being able to do the thing that you want them to do on the website.
\n\n\n\nSo my first answer to that would be, look at the cost benefit analysis. It’s worth it in most cases to do usability testing. Something that we’ve found with positioning of usability testing is that if we offer it as an add-on, then people don’t want to do it because they don’t want to pay for it. They see the value in it necessarily. However, we don’t offer it as an add-on.
\n\n\n\nWe actually have it just as part of our proposal right from the start where we’re like, this is part of the point of difference between what you get when you build with us versus when you build with someone else. They’ll tell you what they think is the best way to do something. If we are unsure about the best way to do something or we disagree on it, it’s not going to ultimately be me making a decision or you making a decision. We’re going to test and we’re going to get real evidence from customers.
\n\n\n\nAnd they’re the ones that are going to be developing it so you know that the final result that you get is going to be the best possible version of the website. And often we might be more expensive than our competitors, but people will go with us because we are not competing on price. We’re competing on offering a service that nobody else is offering. I asked today in the presentation who has done usability testing before and not a single person put their hand up.
\n\n\n\n[00:24:42] Nathan Wrigley: That would’ve been my assumption actually.
\n\n\n\n[00:24:44] Jo Minney: Yeah. And honestly, I don’t think any of the people that we’re competing against in the industry that I’m in are doing the same thing as what we’re doing. And so it is very much a point of difference. I think it’s not a well understood technique, but it’s so valuable that it is a really easy way to position yourself as being different, and really actually do a better job for your customers, for the people that you’re building websites for. Because ultimately you are going to have a better result at the end of it.
\n\n\n\n[00:25:12] Nathan Wrigley: The interesting thing there is, when I say usability testing, somehow in my head there is a connection between that and accessibility. And that’s not where I’m going with this question, but there’s just something about it being unnecessary. And I’m not binding that to the word accessibility. What I’m saying is clients often think, I don’t need to do that. Obviously, we’re moving into an era where legislation says otherwise. But I can just leave it over there. I don’t need to worry about that, usability testing, not for me.
\n\n\n\nHowever, the lever that you’ve just pulled, it completely changes the dynamic because you’ve pulled an economic lever, which is that if we can get everybody to follow this action, I don’t know, fill up the cart with widgets and then press the buy now button, and go through the checkout process. If that’s the thing that you’re usability testing, you’ve made direct line. You’ve joined up the dots of, okay, user, money.
\n\n\n\nSo it’s not just about it being a better website so that people can browse around it all day. It’s also about connecting the economics of it. So the usability is about people buying, converting, getting the resource. And so there might not be an economic transfer there, but it will be some benefit to your business. There might be downloading that valuable PDF that you want everybody to see or whatever.
\n\n\n\nSo that’s kind of interesting. That’s changed my thoughts about it a little bit. And it is more about that. It’s getting an understanding of what you want out the website, getting an understanding of what you think should be happening is actually possible and happening. Have I sort of summed that up about right?
\n\n\n\n[00:26:40] Jo Minney: Yeah, I think that’s a really good summary it. I think the only thing I would add there is that a lot of the times the conversation around accessibility and the conversation around usability do have a lot of crossover. They are fundamentally different, but one of my favorite examples is actually something that I think applies to both.
\n\n\n\nSo two of the common problems that we find very early on in design is often to do with colour. And so one of them is colour contrast and the other one is colourblind accessibility. And I think it’s a great way to get people to change their thinking, and their perception of the way we have these conversations is, if you have an e-commerce website, Nathan, what would you say if I said to you, I can instantly get you 8% more customers?
\n\n\n\n[00:27:23] Nathan Wrigley: Yeah, I’d say that’s great.
\n\n\n\n[00:27:24] Jo Minney: And I’d be like, cool, change your buttons so that colourblind people can read them, because 8% of men are colourblind. So actually it’s only 4% of people because assuming half of them are men, then you’ve actually only got 4%. But still 8% of men are colourblind, that’s a big percentage of the population. So if your button is red and green, then you’re going to have a problem. People are not going to be able to find the thing that you want them to click to give you their money.
\n\n\n\nLikewise, if you want people to be able to use your website when they’re outside and using their phone in sunlight, then you need to have good colour contrast on your website. So often this conversation is around, well, I don’t have people who are disabled, I’m not trying to cater to people that are using screen readers. It doesn’t matter because not very many people that are using my website are blind. And I’m like, well, I’m not blind but I still struggle when I’m looking at something where the text is too faint, and I’m looking at it on my phone, and I’m standing outside in the sun because we naturally don’t visualise as much contrast there.
\n\n\n\nSo I think being able to position it in a way where people can see the value to themselves. I want to use a website that has better contrast, and so it makes that conversation easier with a customer.
\n\n\n\n[00:28:32] Nathan Wrigley: I hadn’t really drawn the line between accessibility and usability, but it seems like they’re partner topics, basically. There’s like a Venn diagram, accessibility over here, usability over here, with a massive overlap somewhere in the middle.
\n\n\n\n[00:28:43] Jo Minney: A hundred percent. That’s why we always encourage having that sort of intersection between accessibility and usability in our testing pool. So we always try and have one person who experiences some kind of accessibility challenge, whether that’s being colourblind, hearing impaired, if we’ve got a lot of video on the site, for example. And I think that it can be a really valuable way of collecting multiple data points at one time.
\n\n\n\n[00:29:04] Nathan Wrigley: When you have a client that comes to you and they’ve obviously, by the time that they’ve signed the contract with you, usability is already part of the deal it sounds like. How do you decide, what’s the thing in round one that we’re going to pick up on? Is there sort of like a copy book that you go through? Is it like, I don’t know, buttons or the checkout or colour or? Where do you go first? And sort of attached to that question a little bit, this process never ends, right? In theory, you could do usability testing each month. But I was wondering if you did it like on an annual cycle or something, yeah.
\n\n\n\n[00:29:34] Jo Minney: If you’re not changing stuff super often, I would say, there’s probably more cost effective ways that you can collect information about it. Typically we encourage, long-term, have things like heat maps and stuff like that. They will help you identify if there is a problem. If you know that there is a problem, let’s say you’ve got a heat map and you’re like, why is nobody clicking on our buy now link? That is a good instance of where you would do some usability testing to figure out what the problem is.
\n\n\n\nBut if everything’s working and you’re getting conversions, then probably doing usability testing isn’t the most valuable thing that you can do. If you’re looking at making significant changes to the way that your website works, that’s another good time to introduce a round of usability testing. So we don’t do it just for the sake of doing it. We do it because we need to do it, and because there’s value in it for our customers.
\n\n\n\n[00:30:18] Nathan Wrigley: Do you keep an eye on your customer’s websites so that you can sort of get ahead of that, if you know what I mean? So let’s say that you put heat maps in, very often that would then get handed over to the client and it’s somebody in the client’s company’s job is to check the heat maps. Or do you keep an eye on that and, oh look, curiously, we’ve seen over the last 12 months, yeah, look at that. There’s not much going on over at that very important button over there. Let’s go back to the client and discuss that. That could be another round of usability testing.
\n\n\n\n[00:30:44] Jo Minney: Yeah, so I think we’re not uncommonly, a lot of agencies now do have some kind of retainer program where they will maintain communication and assistance for their clients. So we call them care plans. I know everyone has a different name for it. I think it’s pretty standard now in the WordPress ecosystem. It’s a very common thing to do.
\n\n\n\nAs part of our care plans we have scheduled meeting with our clients once every three months or six months or 12 months, depending on how big the site is. And one of the things that we’ll do at that time is review their analytics, review the heat maps, that sort of thing.
\n\n\n\nAsk them, have they experienced any problems? Have they noticed a downturn in the people signing up for the memberships? Or have they noticed, have they had any complaints from people about something? Is there anything that they’re not sure about? Are they going to be changing the way that they operate soon, and introducing something new into their navigation that we need to consider where does that fit in the grand scheme of things?
\n\n\n\nI find if we’re having those conversations early and we are the ones starting those conversations, then often we are coming to them with solutions instead of them coming to us with problems.
\n\n\n\n[00:31:46] Nathan Wrigley: I think that’s the key bit, isn’t it? If you can prove to be the partner that comes with, we’ve got this intuition that there’s something that we can explore here. You are proactive, you’re going to them not, okay, anything you want? Is there anything we can help you with, you know? And the answer to that is always, not really.
\n\n\n\nWhereas if you go and say, look, we’ve got this idea, based upon some data that we’ve seen, we’ve got heat maps and what have you, shall we explore that further? That seems much more credible. You are far likely, I think to have an economic wheel which keeps spinning if you adopt that approach, as opposed to the is there anything you want doing, kind of approach?
\n\n\n\n[00:32:18] Jo Minney: Absolutely. I think every developer’s worst nightmare is having a customer come back to them and say, I’ve just noticed that I haven’t had anyone send through anything in my contact form for the last three weeks. And I’ve just noticed, when I went and tested it, that the contact form’s not working anymore.
\n\n\n\nI’m sure I’ve had that nightmare at least once. And I think if you can avoid being in that situation where they’re coming to you with something like, oh my God, it’s broken, how do I fix it? If instead you can go to them and be proactive about it and just kind of keep your finger on the pulse.
\n\n\n\nYes, there’s a little bit of ongoing work, but like honestly, I jump on, I check all of the analytics maybe once every three months for my clients. I set aside one day to do it. Go and have a look through that. If I notice anything, I can usually fix it, make sure that we’re collecting the data again before it becomes a problem.
\n\n\n\nAnd then that way when there is an issue, we’ve got data that we can back up and we can start from there and go, okay, yes, we’ve identified, here’s where we need to do more research. And then we can apply something like usability testing to that.
\n\n\n\n[00:33:16] Nathan Wrigley: How much of your time on a monthly basis, let’s say as a percentage, do you spend on usability of existing clients? Is this something that is a lot of the work that you do? What I’m trying to figure out here is, for people listening, is this something that they can turn into a real engine of their business?
\n\n\n\nBecause you might get two days, three days work a week just on the usability of pre-existing clients. So in a sense, you’ve created interest and work out of thin air, because these clients already exist, they’re in your roster, but there’s a whole new thing that we can offer to them. So, how much do you spend doing it?
\n\n\n\n[00:33:50] Jo Minney: Yeah, so it’s a great question. I would say it’s cyclical. I couldn’t really say like, I always spend this much amount of time. There might be entire weeks that go by where my whole life is usability testing, and there might be a month that goes by where I don’t do any. And it really does often depend on where our projects are in the life cycle at any particular time.
\n\n\n\nSo we’re often working on projects that will span over years. And because of that, they might introduce a completely new part of their project. And that’s a good time to reintroduce that usability testing. As I said, like you don’t really want to do it just for the sake of doing it, but at the same time, if you can show that there will be value in making a change, if you can show that there is a lost opportunity somewhere, then a hundred percent you can sell that, the value to them of, hey, you could spend $1,000 now, but you could be earning $5,000 more every month for the next several years. That’s a no-brainer, right?
\n\n\n\nPeople are happy to make investment if they can see that there’s going to be a cost benefit for them in the future. Or if the thing that they’re trying to do is maybe their government website or something, and they’ve got a particular thing that they need to meet, they’ve got KPIs. If you can show that you are able to help them meet those KPIs, then they are going to invest in doing that thing that you’re trying to offer them.
\n\n\n\n[00:35:02] Nathan Wrigley: We talked about the Venn diagram of accessibility and usability, and the fact that there’s a lot of an overlap. In the year 2025, this is a year where, in Europe at least anyway, accessibility, the legal cogs are turning and the screw is getting tighter. So accessibility is becoming mandated in many respects.
\n\n\n\nAnd I was wondering about that, whether there was any kind of overlap in legislation on the usability side. The accessibility piece is obviously easier to sort of define in many ways, and it’s going to become less optional. But I was wondering if there was any usability legal requirements. I don’t know quite how that would be encapsulated.
\n\n\n\n[00:35:41] Jo Minney: Sort of. An example that comes to mind is that there are a lot of practices that historically have been really prevalent on the internet, and they’ve been identified as being really bad for usability. And they’ve actually now been identified as being so bad that they’re almost evil. And they’ve started to crack down on those.
\n\n\n\nAnd an example of that is, have you ever tried to unsubscribe from a gym? It’s basically impossible. And so now if you, at least in Australia, I know if you have a subscription on your site, you legally have to have a way of people being able to unsubscribe without having to call someone or send an email somewhere.
\n\n\n\nAnd that is an example where that is actually usability. And I think there are definitely things where we are picking up on stuff that is maybe a shady way of working, and a shady way of developing websites. And those things are starting, we’re starting to cut down on them.
\n\n\n\nI’m not sure if that is purely usability, or just like not being being a bad person. But I think that there is definitely, the only reason that we know that those things are a problem is because we have all had those bad experiences. And ultimately that’s all user experience is, it’s just how good or bad is experience of using a platform.
\n\n\n\n[00:36:49] Nathan Wrigley: I share your frustration with those kind of things because I’ve been through that process. Not just canceling a subscription but, I don’t know, something that you’ve got yourself accidentally into and you don’t want to be on that email list anymore. Seemingly no way to get off it.
\n\n\n\n[00:37:01] Jo Minney: They’ve changed the unsubscribe link so it doesn’t have the word unsubscribe in it. And now you just have to look for the word that’s not underlined, or highlighted in a different colour. That when you hover over it, something pops up and you’re like, oh, that’s the link. That thing that says manage preferences down the bottom, hidden in the wall of text. That is a shady practice. That is a poor user experience just as much as it’s just a bad thing to do.
\n\n\n\n[00:37:23] Nathan Wrigley: I think it’s got the label of deceptive design now. It used to be called dark patterns, didn’t it? But deceptive design. This notion of doing things in such a way to just deliberately confuse the user so that the green big button, which is the exact opposite of what you want to click, is the one which is visible. And then there’s this tiny little bit of greyed out text, which is the one which, clearly, you’ve ended up at this page, that’s the one you want. That’s the enemy of usability in a way. But for the business, it may be exactly what they want because it keeps the economic engine rolling.
\n\n\n\nYeah, that’s interesting. I wonder if there’ll be more legislation to tighten those things up so that they’re not allowed. Yeah, that’s fascinating.
\n\n\n\nLast question. We’re running out of time. Last question. And it refers to something that we talked about earlier. I’m guessing this really never ends. This is a journey which you begin, you tweak it, you do a little bit, you fix, and then you start again a little bit later and what have you. Is there ever a moment though where you go to a client and say, we did it? This site, as far as we’re concerned, is now perfect. Or is it never a goal? It’s a journey and never a destination.
\n\n\n\n[00:38:23] Jo Minney: I think you’ll probably agree with me here, Nathan, that it’s basically impossible to be perfect, because ultimately someone is always going to have a different opinion. Someone’s always going to think that your shade of purple is too dark. Someone is always going to dislike the font that you chose, because it’s not loopy enough, or it’s too loopy, right?
\n\n\n\nSo I don’t think there is such a thing as perfect. But through doing five usability tests, five people, you can pick up at least 85% of the potential problems with your design. And I’m not aiming for perfect, but I know that for me, if I can confidently say to my customers that I’ve been able to identify 85% of the potential problems that they might experience in their project, then they can confidently go away and say, hey, we’re pretty happy with what we’ve got.
\n\n\n\nWe can definitely improve on that over time. But that is a huge milestone to be able to hit. And being able to have enough data, and enough research to confidently say that, I think is a really big win both for us and for our customers.
\n\n\n\n[00:39:26] Nathan Wrigley: Sadly, Jo, time is the enemy, and I feel like we’ve just pulled back the lid a teeny tiny bit on the big subject of usability. Honestly, I reckon I could talk for another two hours on this at least. You know, because you’ve got into colours there and all sorts, and there’s just so many tendrils that we haven’t been able to explore. But we’ve prized it open a little bit, and so hopefully the listener to this has become curious. If they have, where would they find you? What’s a good place to discover you online?
\n\n\n\n[00:39:53] Jo Minney: Yeah, so I think the best place is to hit up my personal blog, jominney.com. So it’s J O M I N N E Y .com. And I have a lot of stuff on there about usability, usability testing. I have a blog post that I wrote specifically for this talk that shares all of the resources that I used to put together the slides and everything. The talk itself will be on WordCamp TV. If you’re on socials and you want to hit me up, pretty much the only platforms I’m active on nowadays are LinkedIn and Bluesky, and I’m Jo Minney on both of them.
\n\n\n\n[00:40:23] Nathan Wrigley: Jo Minney, thank you so much for chatting to me today. I really appreciate it.
\n\n\n\n[00:40:27] Jo Minney: You’re most welcome, Nathan. Thanks for having me again.
\nToday, I bring you the first in a mini series of podcasts I recorded in person at WordCamp Asia in Manila. This flagship WordPress event brought together hundreds of WordPress professionals, enthusiasts and all manner of interested parties under one roof for a three day event – one contributor day, and two days of presentations.
\n\n\n\nI tracked down several of the speakers and workshop organisers, and recorded them speaking about the subject they were presenting upon. I hope that you enjoy what they have to say.
\n\n\n\nSo on the podcast today we have the first of those conversations, and it’s with Jo Minney.
\n\n\n\nJo, based in Perth, Australia, is passionate about user experience, data-driven decision-making, cats, pockets and travel. She’s a small business founder, and works with organisations creating digital platforms with WordPress. She also freelances as a UX consultant. She volunteers with Mission Digital to address social issues using technology, and is an ambassador for She Codes Australia, promoting tech accessibility for women. Recognised as a 2023 Shining Star by Women in Technology Western Australia, Jo is an international speaker on topics like user experience, accessibility, and gender equality. She’s committed to ensuring a seamless user experience, and today shares her insights from practical, everyday usability testing.
\n\n\n\nJo’s presentation, entitled Budget-Friendly Usability Testing for WordPress helped attendees understand what usability testing is, x and clarified why it differs from other testing methods. She shares examples from her work, showing how small changes can significantly impact user experience, which is better for you, the website builder, and your client, the website owner.
\n\n\n\nWe also discuss how usability testing can transform a website’s effectiveness by improving conversions. Jo explains the importance of recruiting novice users for testing, and highlights how usability testing pushes for real, user-centered improvements.
\n\n\n\nTowards the end, Jo shares practical advice on when and how to integrate usability testing into your process, advocating for early and iterative testing to preemptively address potential issues.
\n\n\n\nIf you’re looking to gain a deeper understanding of usability testing and its benefits, this episode is for you.
\n\n\n\nJo’s WordCamp Asia 2025 presentation: Budget-Friendly Usability Testing for WordPress
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 Mar 2025 18:37:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:102:\"Do The Woo Community: Building Trust and Converting Sales with Simple UX Decisions with Marc McDougall\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93465\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:101:\"https://dothewoo.io/building-trust-and-converting-sales-with-simple-ux-decisions-with-marc-mcdougall/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:198:\"In this episode of Woo DevChat, hosts discuss UX design and CRO with Marc McDougall, who shares insights on common misconceptions, mistakes, and the evolving role of AI in enhancing user experience.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 Mar 2025 15:58:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:32;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"Do The Woo Community: Get Ready for the Atarim Web Agency Summit 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93450\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"https://dothewoo.io/blog/get-ready-for-the-atarim-web-agency-summit-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:359:\"The Atarim Web Agency Summit 2025, scheduled for April 7-11, is a free virtual event for web professionals. Featuring over 40 expert-led sessions, it offers actionable insights for agency growth, networking opportunities, and access to industry leaders. Registration is free, with replay options available, making it essential for anyone in the digital space.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 Mar 2025 15:08:27 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:33;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:135:\"HeroPress: With open arms – friendships in the WordPress community – Su atviromis rankomis – draugystės WordPress bendruomenėje\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=7820\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:180:\"https://heropress.com/essays/with-open-arms-friendships-in-the-wordpress-community/#utm_source=rss&utm_medium=rss&utm_campaign=with-open-arms-friendships-in-the-wordpress-community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:19273:\"Šį rašinį galima rasti ir lietuvių kalba.
\n\n\n\nTruth be told, unlike my husband, I have never been the most social person. At a party, you’ll usually find me talking to the dog (or cat). Throughout my life, I’ve only had a few close friends, and I’d rather be reading a book than going to a concert. While WordPress has been a huge part of the growth of my business, I’d like to take this opportunity to discuss something much more important – the friendships that I have formed through this wonderful community.
\n\n\n\n\n\n\n\n\nDue to WordPress, I have some truly spectacular friends in my life.
\n
While we may have started as strangers, we moved into attending each other’s weddings, laughing until we’re crying while packing hundreds of swag orders, holding hands in a hospital bed and being there for each other through thick and thin. Being a privacy lawyer, I won’t name any names here but you’ll probably be able to tell pretty quickly if I’m writing this about you.
\n\n\n\nWhen I was finishing up law school, I worked at a small web design agency in Chicago as their COO. I met my husband, Hans, who was the owner of a different agency when he came to buy us out. It was love at first sight (yes, really) and we have been inseparable ever since. We shared our struggles and annoyances over dinner one night – writing Privacy Policies for clients was monotonous for me and he had no idea what to do when a client asked him about website policies. So we created Termageddon – an auto-updating website policies solution for agencies and their clients. Since we started an agency partner program, we knew that we had to find agencies who would be willing to try our new product and that’s when we came across WordCamps and the WordPress community.
\n\n\n\nWordPress has a huge community and going to a large WordCamp such as WordCamp US when you don’t know anyone can be really scary (especially for an introvert like me) so we thought that we’d get our feet wet with a smaller WordCamp nearby. Enter WordCamp Jackson, Michigan.
\n\n\n\n\n\n\n\n\nDriving into the most adorable small city that we have ever visited, we were very nervous – what if no one wanted to talk to us?
\n
These fears were quickly dispelled when we walked into a room with about 30 friendly faces. Even the mayor was in attendance! During a break, we all sat on couches and our new friends helped us come up with the design for our very first swag item: a t-shirt with a pirate asking “Arrrr you compliant?”. I still smile every time I put it on. The next thing we know, the informative presentations are over and we’re all piling into cars and going to an escape room. The friendships formed during that event have lasted many years. In fact, one of our friends from that very first WordCamp helped us build our chicken coop.
\n\n\n\nA while later, my husband went to London and met a friend through a non-WordPress event and they truly hit it off (seriously, they have a standing call twice per month for five years now). A few months later, it was time for our first WordCamp US and our friend flew from the UK to Chicago to stay with us and our plan was to take a road trip and drive from our home to the WordCamp. Well, it just so happened that his other friend who was also going to WordCamp (someone we haven’t met before), missed his flight. Our friend called us to explain the situation and asked whether he could change his flight to Chicago, stay with us and join our road trip. We said “come on over!” Well, that missed flight led to the best trip of all time and a lifelong friendship.
\n\n\n\nI’ll always remember him walking me to the store to buy some tea on a cold evening, all of us posing for a picture next to the St. Louis arch, hanging out in various hotels and Airbnb’s throughout the years, sharing stories from our youth, marveling at the excitement and joy of growing families, and supporting each other’s business ventures. We’ve seen each other many times throughout the years on various trips and WordCamps and I think of us as our core group at these events – a safe space amidst all of the chaos.
\n\n\n\nWhen you start establishing yourself in an industry or a community, you may think of other people in the space as competitors. While it’s certainly not the best trait that humanity has to offer, I think that this happens more frequently than we would like to admit. When I was new in the WordPress community, there was an established privacy attorney who had been a part of that community for much longer than I have. Going to WordCamp US, I knew that she was going to be giving a speech on the California Consumer Privacy Act and how to comply with this privacy law. To be honest with myself and you, I was extremely nervous about meeting her. What if she thought that I was a competitor? What if she disliked me? What if there’s not enough room for two privacy lawyers at this event? Should I just hide throughout the entire event to make sure that she doesn’t see me?
\n\n\n\nIt’s true that we create these extreme scenarios in our minds but reality is usually much different (and less scary). We quickly bonded over the fact that we were the only two people there who knew what CCPA even is and, by the end of the night, we were jammed together in an Uber going to a bar. Throughout the years, we have supported each other’s projects, participated in long evenings of conversations, shared our struggles and wins. Due to her kindness and welcoming nature, we did not head towards competition but are able to enjoy the benefits of a wonderful symbiosis and a true friendship.
\n\n\n\nHanging out with your friends at WordCamps is fun but it’s even more fun when your friendship progresses to the point where your friends fly over to hang out at your home. Well, in this case, we only got to hang out for one day before my friend got very sick. Not the “I have the flu” kind of sick, the over a week in the ICU and months in the hospital kind of sick.
\n\n\n\nThroughout that time, we met her family, who stayed with us for a while as we live very close to the hospital. While this time was certainly grueling for everyone involved, it also shed a new perspective on how friends get through tough times. Whether it was rides to the hospital, sitting together, crying together, making home cooked meals, celebrating every win, no matter how small, the friendship, the community, and the knowledge that we were there for each other let us make it through this difficult time. The day that she got out of the hospital was truly miraculous.
\n\n\n\n\n\n\n\n\nAnd now, we are most certainly not just WordCamp friends, we’re family – for life.
\n
Up to this point in my life, I have been a part of many communities – from school, to dance groups, to attorney associations, to my local neighborhood, each community has had something special to offer. However, I have never been involved with another community that is as welcoming or that has led to the formation of so many wonderful friendships as WordPress. From sharing a beer (or a boot of beer), to attending our wedding through Zoom (2020), to making a flower crown, to eating so much sushi that I could barely walk back to the Airbnb, to corn mazes and petting zoos, and touring a submarine together, I am truly thankful that the WordPress community has welcomed me with open arms and I hope that I can do the same for others!
\n\n\nWe asked Donata for a view of her office this is what she sent!
\n\n\nHeroPress would like to thank Draw Attention for their donation of the plugin to make this interactive image!
\nTiesą sakant, kitaip nei mano vyras, niekada nebuvau pati socialiausia asmenybė. Vakarėlyje mane dažniausiai rastumėte kalbančią su šunimi (ar kate). Visą savo gyvenimą turėjau tik keletą artimų draugų, o knygos skaitymas man visada buvo malonesnis nei koncerto lankymas. Nors WordPress atliko didžiulį vaidmenį plėtojant mano verslą, norėčiau pasinaudoti šia proga ir pakalbėti apie kai ką daug svarbesnio – draugystes, kurias užmezgiau šioje nuostabioje bendruomenėje.
\n\n\n\n\n\n\n\n\nDėl WordPress turiu iš tiesų nuostabių draugų savo gyvenime.
\n
Nors pradėjome kaip svetimi, mes tapome tais, kurie dalyvauja vienas kito vestuvėse, juokiasi iki ašarų pakuodami šimtus reklaminių dovanų, laiko vienas kitam ranką ligonines lovoje ir būna kartu per storą ir ploną. Kadangi esu privatumo teisininkė, nemininesiu vardų, tačiau tikriausiai greitai suprasite, jei rašau apie jus.
\n\n\n\nKai baiginėjau teisės studijas, dirbau mažoje interneto dizaino agentūroje Čikagoje kaip COO. Ten sutikau savo vyrą Hansą, kuris buvo kitos agentūros savininkas, kai jis atvyko mus nupirkti. Tai buvo meilė iš pirmo žvilgsnio (taip, tikrai), ir nuo to laiko mes esame neatskiriami. Vieną vakarą dalinomės savo sunkumais ir nepasitenkinimais – man buvo nuobodu rašyti privatumo politikos dokumentus klientams, o jis net nežinojo, ką daryti, kai klientas paprašydavo interneto svetainės politikos. Taip gimė Termageddon – automatiškai atnaujinamas interneto svetainių politikos sprendimas agentūroms ir jų klientams. Kadangi pradėjome agentūrų partnerių programą, turėjome rasti agentūras, kurios būtų pasiruošusios išbandyti mūsų naują produktą, ir tada mes atradome WordCamps ir WordPress bendruomenę.
\n\n\n\nWordPress turi didžiulę bendruomenę, o vykstant į didelį WordCamp renginį, pavyzdžiui, WordCamp US, kai nieko nepažįsti, gali būti labai baisu (ypač tokiai intravertei kaip aš), todėl nusprendėme pradėti nuo mažesnio WordCamp netoli mūsų. Taip mes atsidūrėme WordCamp Jackson, Mičiganas.
\n\n\n\n\n\n\n\n\nVažiuodami į vieną mieliausių mažų miestelių, kokius tik esame matę, labai nervinomės – o kas bus jei niekas nenorės su mumis kalbėtis?
\n
Šios baimės greitai išnyko, kai įėjome į kambarį su maždaug 30 draugiškų veidų. Netgi miesto meras dalyvavo! Per pertrauką visi susėdome ant sofų, o naujieji draugai padėjo mums sukurti mūsų pirmojo reklaminių dovanų daikto dizainą: marškinėlius su piratu, klausiančiu “Arrrr you compliant?” (Ar esate atitinkantys?). Vis dar šypsausi, kai juos apsivelku. Nespėjome apsidairyti, o jau po naudingų pranešimų visi susėdome į automobilius ir vykome į pabėgimo kambarį. Draugystės, užmezgtos šio renginio metu, tęsiasi jau daugelį metų. Tiesą sakant, vienas iš mūsų draugų iš to pirmojo WordCamp padėjo mums pastatyti vištų tvartą.
\n\n\n\nKiek vėliau mano vyras išvyko į Londoną ir susipažino su draugu per ne-WordPress renginį, ir jie tikrai susidraugavo (rimtai, jie kalbasi kas dvi savaites jau penkerius metus). Po kelių mėnesių atėjo metas mūsų pirmajam WordCamp US, ir mūsų draugas nuskrido iš JK į Čikagą, kad apsistotų pas mus, o mūsų planas buvo keliauti automobiliu nuo namų iki WordCamp. Tačiau nutiko taip, kad jo kitas draugas, kuris taip pat vyko į WordCamp (mes jo dar nebuvome sutikę), praleido savo skrydį. Mūsų draugas paskambino mums, paaiškino situaciją ir paklausė, ar jo draugas gali pakeisti skrydį į Čikagą, apsistoti pas mus ir prisijungti prie mūsų kelionės. Mes pasakėme: “Užeikit!” Tas praleistas skrydis privedė prie geriausios kelionės gyvenime ir viso gyvenimo draugystės.
\n\n\n\nAš visada prisiminsiu, kaip jis lydėjo mane į parduotuvę nusipirkti arbatos šaltą vakarą, kaip visi kartu pozavome nuotraukai prie Saint Louis arkinio paminklo, kaip per daugelį metų leisdavome laiką įvairiuose viešbučiuose ir Airbnb, dalijomės jaunystės istorijomis, stebėjomės augančių šeimų džiaugsmu ir jauduliu bei palaikėme vieni kitų verslo sumanymus. Per daugelį metų matėmės daugybę kartų įvairių kelionių ir WordCamp renginių metu, ir aš mus laikau pagrindine grupe šiuose renginiuose – saugia vieta viso šurmulio apsuptyje.
\n\n\n\nKai pradedate įsitvirtinti tam tikroje pramonėje ar bendruomenėje, galite pagalvoti, kad kiti žmonės šioje srityje yra konkurentai. Nors tai tikrai nėra geriausia žmonijos savybė, manau, kad taip nutinka dažniau, nei norėtume pripažinti. Kai buvau naujokė WordPress bendruomenėje, buvo viena pripažinta privatumo teisininkė, kuri buvo šios bendruomenės dalis daug ilgiau nei aš. Važiuodama į WordCamp US, žinojau kad ji ketina skaityti pranešimą apie Kalifornijos vartotojų privatumo įstatymą (CCPA) ir kaip laikytis šio privatumo įstatymo. Būsiu atvira – man buvo labai neramu ją sutikti. O kas, jei ji manytų, kad esu konkurentė? O jei jai nepatikčiau? O jei šiame renginyje nepakaktų vietos dviem privatumo teisininkėms? Gal man geriau viso renginio metu slėptis, kad tik ji manęs nepastebėtų?
\n\n\n\nTiesa ta, kad dažnai kuriame kraštutinius scenarijus savo galvose, bet realybė dažniausiai būna visai kitokia (ir mažiau bauginanti). Greitai susidraugavome, nes supratome, kad esame vienintelės dvi moterys renginyje, kurios iš viso žinojo kas yra CCPA. Vakaro pabaigoje jau spraudėmės kartu į Uber važiuodamos į barą. Per tuos metus palaikėme viena kitos projektus, dalijomės ilgais pokalbiais vakarais, kartu išgyvenome sunkumus ir džiaugėmės pasiekimais. Dėl jos geranoriškumo ir svetingumo nepasukome konkurencijos keliu, o galėjome džiaugtis nuostabia simbioze ir tikra draugyste.
\n\n\n\nLeisti laiką su draugais „WordCamp“ renginiuose yra smagu, bet dar smagiau, kai draugystė tampa tokia stipri, kad draugai atskrenda pas jus tiesiog pabūti kartu. Na, šiuo atveju, mes spėjome pabūti tik vieną dieną, kol mano draugė labai susirgo. Ne „turiu gripą“ lygio susirgo, o taip, kad teko praleisti daugiau nei savaitę reanimacijoje ir kelis mėnesius ligoninėje.
\n\n\n\nTuo sunkiu metu susipažinome su jos šeima, kuri kurį laiką gyveno pas mus, nes gyvename labai arti ligoninės. Nors šis laikotarpis tikrai buvo alinantis visiems, jis taip pat suteikė naują perspektyvą, kaip draugai išgyvena sunkius laikus kartu. Nesvarbu, ar tai buvo kelionės į ligoninę, sėdėjimas kartu, verksmas kartu, naminiai patiekalai ar kiekvienos, net ir mažiausios pergalės šventimas – draugystė, bendruomenė ir žinojimas, kad esame vieni kitiems, padėjo mums išgyventi šį sunkų laikotarpį. Diena, kai ji išėjo iš ligoninės, buvo tikras stebuklas.
\n\n\n\n\n\n\n\n\nDabar mes tikrai ne tik WordCamp draugės – mes šeima visam gyvenimui.
\n
Iki šiol mano gyvenime buvo daugybė bendruomenių – nuo mokyklos, šokių grupių, teisininkų asociacijų iki mano vietinės kaimynystės – kiekviena bendruomenė turėjo ką nors ypatingo. Tačiau niekada nebuvau dalis kitos bendruomenės, kuri būtų tokia svetinga ir kuri būtų padovanojusi tiek daug nuostabių draugysčių kaip WordPress. Nuo alaus bokalo (arba alaus bato) dalijimosi, iki mūsų vestuvių stebėjimo per Zoom (2020 m.), iki gėlių vainikų pynimo, iki tiek daug sušio valgymo, kad vos galėjau pareiti atgal į „Airbnb“, iki kukurūzų labirintų ir gyvūnų ūkių lankymo, ir net povandeninio laivo ekskursijos – esu nuoširdžiai dėkinga, kad WordPress bendruomenė mane priėmė atviromis rankomis, ir tikiuosi, kad galėsiu padaryti tą patį kitiems!
\nThe post With open arms – friendships in the WordPress community – Su atviromis rankomis – draugystės WordPress bendruomenėje appeared first on HeroPress.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 Mar 2025 01:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"Donata Stroink-Skillrud\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:34;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"WordPress.org blog: WordPress 6.8 Release Candidate 1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18639\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/03/wordpress-6-8-release-candidate-1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9186:\"The first Release Candidate (“RC1”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC1 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC1 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC1 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-RC1 |
WordPress Playground | Use the 6.8 RC1 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since Beta 3, you can browse the following links:
\n\n\n\nWant to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:
\n\n\n\nWordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC1, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? You can help translate WordPress into more than 100 languages. This release milestone (RC1) also marks the hard string freeze point of the 6.8 release cycle.
\n\n\n\nMarch fades, nearly there,
Six-eight hums—a steady beat,
RC greets the world.
Thank you to the following contributors for collaborating on this post: @joemcgill @benjamin_zekavica @courane01 @mkrndmane @audrasjb @areziaal @ankit-k-gupta @krupajnanda @bph.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 25 Mar 2025 16:19:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"Do The Woo Community: A Continued Saga About the Life of Blog Posts\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93306\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://dothewoo.io/blog/a-continued-saga-about-the-life-of-blog-posts/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:225:\"BobWP chats about the importance of adding content instead of removing it, expressing commitment to producing more podcasts, videos, and blog posts despite claims of blog irrelevance, valuing audience engagement over metrics.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 25 Mar 2025 13:01:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:36;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"Do The Woo Community: On the Floor at CloudFest 2025 with Adam Weeks and Christian Taylor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93275\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://dothewoo.io/on-the-floor-at-cloudfest-2025-with-adam-weeks-and-christian-taylor/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:226:\"Adam Weeks and Christian Taylor explore CloudFest, assessing booth designs and marketing strategies. They discuss visual engagement, effective messaging, and the significance of interactive experiences in attracting attendees.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 25 Mar 2025 07:46:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:37;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"Do The Woo Community: How AI is Reshaping Enterprise WordPress in 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=91953\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://dothewoo.io/blog/how-ai-is-reshaping-enterprise-wordpress-in-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:191:\"AI is transforming enterprise WordPress through coding tools and personalization, but poses risks requiring careful integration and oversight amidst evolving challenges and security concerns.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 24 Mar 2025 11:40:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:111:\"Gutenberg Times: Get ready for WordPress 6.8, Source of Truth, a book, and code with AI — Weekend Edition 322\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=38031\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:115:\"https://gutenbergtimes.com/get-ready-for-wordpress-6-8-source-of-truth-a-book-and-code-with-ai-weekend-edition-322/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:21287:\"Hi, the spring is coming to Munich this weekend, or that’s what the forecast tells us. With temperatures around 18 °C / 64° F, I will spend a few hours outside on long walks in the Englisch Garden and possible get my bicycle working again. I am looking forward to getting away from the screens all together and having in-person conversations with my cousin and his wife. They are accomplished musicians and different kind of nerds.
\n\n\n \n\n\nYours, 💕
Birgit
PS: I just started my travel preparation for WordCamp Europe. Want to meet me? bit.ly/WCEUMeetBirgit
\n\n\n\nWordPress 6.8 Beta 3 was released on March 18, 2025, and it is ready for testing. If you need inspiration and instruction on how and what to test, the test team’s post is for you. Help Test WordPress 6.8.
\n\n\n\nJoe Dolson published the dev note on Changes to the .screen-reader-text class in WordPress 6.8 The .screen-reader-text
class replaces the deprecated clip
property with clip-path: inset(50%)
for modern browser compatibility and accessibility improvements. Focus styles remain unchanged to ensure visibility during keyboard navigation. Developers should update themes and plugins using .screen-reader-text
to align with these changes for future-proofing.
A group of contributors collaborated on the Source of Truth (WordPress 6.8). Learn everything about enhanced data views, query loops, and block interactions. Also about the more cohesive design experience through the Zoom Out editing approach, expanded style controls, and improved typography options. WordPress 6.8 is scheduled to be released on April 15, 2025
\n\n\n\nGeorge Mamadashvili released Gutenberg 20.5 and the changelog is available on GitHub. Among the updates you’ll find
\n\n\n\nTroy Chaplin published What’s new for developers? (March 2025) on the WordPress Developer blog. He covers Gutenberg 20.3 and 20.4 as well as updates around the WordPress 6.8 release cycle.
\n\n\n\nAs one of the first to cover the upcoming major release, Nithin Sreeraj at WP-Content posted WordPress 6.8 Expected Features and Changes.
\n\n\n\n🎙️ Latest episode: Gutenberg Changelog 116 – WordPress 6.8, Source of Truth, Field Guide, Gutenberg 20.5 and 20.6 with special guest JC Palmes, WebDev Studios
\n\n\n\nBhargav (Bunty) Bhandari takes building in public quite literally. This time he created a Poll block for WordPress. It allows you to create interactive polls directly within the WordPress Block Editor, with design tools, voting options and results in real time. The code is available on GitHub until he submits it to the WordPress repository.
\n\n\n\nJamie Marsland runs an always friendly and welcoming WordPress Gutenberg Facebook group! The description read: “A community for Gutenberg users to learn, share, and explore tips on building WordPress websites using the Blocks Editor.” It’s a private group, too. Marsland wrote: “Whether you need help with WordPress editing or want to share your knowledge, we’d love to have you.”
\n\n\n\nSome people like to learn via videos; other people prefer books.
\n\n\n\nKoji Kuno, a web developer from Japan and contributor to WordPress, published a book called Creating a Website with Twenty-Twenty-Five in late 2024. This book is designed for beginners who want to learn how to create websites using WordPress 6.7 and its newest theme, Twenty-Twenty-Five.
\n\n\n\nThe book starts by explaining the basics of WordPress, including how its block themes, block editor, and site editor work. Once readers understand these concepts, Kuno dives deeper into the Twenty-Twenty-Five theme. He provides a detailed overview of the theme’s files, layout structures, style options for blocks and fonts, and how templates and patterns connect to each other.
\n\n\n\nKuno also includes step-by-step guides for building two types of websites: a blog site and a coffee shop site. He uses clear explanations and helpful graphics to make everything easy to follow, even for beginners. While most of the instructions focus on using WordPress’s site editor, Kuno also touches on the underlying code for certain features, such as supporting post formats.
\n\n\n\nOverall, the book strikes a good balance between practical tutorials and technical insights. It’s an excellent resource for anyone looking to learn website design with WordPress in an approachable way.
\n\n\n\nElliot Richmond experimented with Cursor AI to build a Block Theme. You can follow along on YouTube and see he is using Cursor AI for refactoring and code generation, about the challenges and results of AI-generated block themes, and some lesson learned turned into best practices .
\n\n\n \n\n\nIn his post Additional Block Styles for Child Themes, Silvan Hagen shares how you can block styles by copying the relevant CSS file from the parent theme to the child theme and making adjustments. Hagen also provides a code snippet to append custom block styles from the child theme without overwriting the parent styles, by adding a function to the child theme’s functions.php
file that enqueues the custom styles.
“Keeping up with Gutenberg – Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. The previous years are also available: 2020 | 2021 | 2022 | 2023 | 2024
In his post, Local WordPress Development Workflows Using Studio , Nick Diego walks you through two development workflows using Studio by WordPress.com. He covers using Git Deployments to WordPress.com for your newly developed plugin or theme. In the second part of the article you’ll learn how to structure a complete website build, share a preview with clients and colleagues, and sync to a live site on WordPress.com.
\n\n\n\nMuhammad Muhsin, developer at Awesome Motive, used the WordPress Interactivity API to build a simple Stopwatch block. He is also working on a tutorial to go along with it. Meanwhile, you can study his code on GitHub next to the documentation of the Interactivity API.
\n\n\n\nIn this week’s live stream, How to build incredible WordPress Blocks with Cursor AI, Ryan Welcher and Nick Diego explored how AI can help you create great WordPress blocks. They shared useful tips and cool AI tools to improve your block-building skills and make things easier. Don’t miss this chance to discover new possibilities for your WordPress site!
\n\n\n\nThe @wordpress/data
package introduces a data layer to the WordPress Block Editor, enabling efficient state management and interaction with the editor’s ecosystem.
In two of his live streams, JuanMa Garrido embarked into the depth of the data package and discuss how to work with the data package. In Data in the Block Editor, part one, he explores the various stores, how to retrieve and update store data and dispatch actions. In Data In the Block Editor, part two, Garrido continues to work through the block editor documentation and the date layer course on learn.WordPress.org
\n\n\n \n\n\nIn his live stream, Ryan Welcher walked his viewers through the work necessary to add tests to his Advanced Query Loop plugin so developers who want to extend on the plugin can test custom hooks.
\n\n\n \n\n\nOn his video channel, Jon Bossenger streams on his adventure using AI for coding. You find out with him what works and what doesn’t. In his latest video Let’s Vibe, he wanted to find out what Vibe Coding is all about and if it actually can produce functional software.
\n\n\n \n\n\nNeed a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience
\n\n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
Featured Image: Garage door and wall with rectangles of various colors painted on them for decoration Photo by Marcus Burnette found on WordPress.org/photos
\n\n\n\nDon’t want to miss the next Weekend Edition?
\n\n\n\n\n\nI was interviewed by Inc magazine for almost two hours where we covered a lot of great topics for entrepreneurs but almost none of it made it into the weird hit piece they published, however since both the journalist and I had recording of the interview I’ve decided to adapt some parts of it into a series of blog posts, think of it as the Inc Article That Could Have Been. This bit talks about some of the meta-work that myself and the Bridge team at Automattic do.
At Automattic, the most important product I work on is the company itself. I’ve started referring to it as the “Automattic Operating System.” Not in the technical sense like Linux, but the meta layer the company runs on. The company isn’t WordPress.com or Beeper or Pocket Casts or any one thing. I’m responsible for the culture of the people who build those things, building the things that build those things. It’s our hiring, our HR processes, our expenses, the onboarding docs; it’s all of the details that make up the employee experience — all the stuff that shapes every employee’s day-to-day experience.
Take expense reports. If you’ve got to spend two hours taking pictures of receipts and something like that, that’s a waste of time. You’re not helping a customer there. We switched to a system where everyone just gets a credit card. It does all the reporting and accounting stuff automatically. You just swipe the card and it just automatically files an expense report. Sometimes there’s an exception and you have to work with the accounting rules, but it just works and automates the whole process most of the time.
\n\n\n\nAnother commonly overlooked detail is the offer letter. We think so much about the design of our websites and our products. We have designers work on that and we put a lot of care and thought into it. But I realized we didn’t have the same attention to detail on our offer letter. When you think about it, getting an offer letter from a company and deciding to take it is a major life decision, something you only do a handful of times in your life. This is one of the things that determines your life path. Our offer letter was just made by attorneys and HR. No designer had looked at it right. We hadn’t really thought about it from a product experience point of view. And so it was just this, generic document with bad typography and not great design. But it’s important, so one of the things we did was redesign it. Now it has a nice letterhead, great typography, and it’s designed for the end user.
I realized that the salary and stuff was buried in paragraph two. It was just a small thing in the document! Well, what’s key when you’re deciding whether to take a job? Start date, salary, you know, that sort of thing, so we put the important parts at the very top.
And then there’s the legal language. All the legal stuff, which is different in every country. We have people in 90 countries, so there’s all the legal stuff that goes in there. And then it has this nudge inspired by the behavioral economics book, Predictably Irrational.
There’s the story about how, if you have an ethics statement above where you sign the test or something, people cheat less. So I thought, well, what’s our equivalent of that? We have the Automattic Creed. It’s an important part of our culture. So we put the creed in, it says
\n\n\n\n\nI will never stop learning. I won’t just work on things that are assigned to me. I know there’s no such thing as a status quo. I will build our business sustainably through passionate and loyal customers. I will never pass up an opportunity to help out a colleague, and I’ll remember the days before I knew everything. I am more motivated by impact than money, and I know that Open Source is one of the most powerful ideas of our generation. I will communicate as much as possible, because it’s the oxygen of a distributed company. I am in a marathon, not a sprint, and no matter how far away the goal is, the only way to get there is by putting one foot in front of another every day. Given time, there is no problem that’s insurmountable.
\n
It’s not legally binding, but it’s written in the first person, you read it and you kind of identify with it and then you sign below that. We want people who work at the company who identify with our core values and our core values really are in the creed.
\n\n\n\nThese sorts of things are key to our culture. And they’re universal. Again, we have people from over 90 countries. These are very different cultures, yes, and very different historical backgrounds and cultural makeups. But what’s universal? We have our philosophies that we apply every day regardless of where you were born or where you work.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 21 Mar 2025 22:15:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:40;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:64:\"Gravatar: Digital Business Card Examples With Professional Flair\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"http://blog.gravatar.com/?p=3083\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"https://blog.gravatar.com/2025/03/21/digital-business-card-examples/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:19747:\"Looking for digital business card examples that actually work? Networking has changed, but the need to make a strong first impression hasn’t, and business cards are a big part of it. So, if you’re looking for inspiration, we’ll show you real digital business cards from various industries that successfully blend professional presentation with practical functionality.
\n\n\n\nOur list includes sleek corporate profiles and creative designs for artists and freelancers, each a great example of how to make your information accessible while maintaining your personal brand.
\n\n\n\nBy the end of this article, you’ll have actionable ideas for creating your own digital business card. And the best part? You can set up a free, customizable digital business card in minutes using Gravatar – no coding or design skills required.
\n\n\n\nLooking at my Gravatar profile, you can see how it functions as a complete digital business card that travels with me across the web. I’ve personally included a professional headshot, custom banner image, some interesting images, and verified links to all my social profiles. These sections are completely customizable, and what you include depends entirely on your goals.
\n\n\n\nWhat makes this especially useful for networking is the QR code functionality. When meeting someone at a conference or event, I can quickly pull up my Gravatar profile QR code from my phone’s digital wallet. With one quick scan, my new contact instantly has access to all my professional information.
\n\n\n\nAnyone who scans my QR code can immediately connect with me through multiple channels – they can view my contact details, send me money, or browse through my featured photos for a more personal touch. No more fumbling with paper cards or manually typing contact info into phones.
\nAs a technical professional, my Gravatar profile is quite literally the foundation of my online presence. When I contribute to GitHub, post on Stack Overflow, or communicate through Slack, my Gravatar profile appears automatically, helping me build a more recognizable personal brand.
\n\n\n\nThe best part? I only need to update my information in one place. If I change roles or add new contact methods, updating my Gravatar profile instantly refreshes my presence across all integrated platforms – saving time and ensuring consistency.
\n\n\n\nWant to create your own universal digital business card? Sign up at Gravatar.com using just your email address. It takes minutes to set up but provides lasting professional benefits everywhere you go online.
\n\n\n\nReal estate agents face unique networking challenges – they need to connect instantly with potential buyers and showcase properties efficiently. Digital business cards can help in this process by offering scannable QR codes that provide immediate connections with house hunters.
\n\n\n\nTake Liz Nitz’s digital business card as an example.
\n\n\n\nAs a Bozeman-based real estate agent, her Gravatar profile functions as a powerful lead generation tool. When potential clients scan her QR code, they gain instant access to her contact information plus direct links to her real estate website, where current property listings are just a tap away. This approach eliminates friction in the buying process – no typing long URLs or searching for contact details.
\n\n\n\nThe benefits go beyond real estate into technical fields where showing your expertise is extremely important. Tech professionals use digital business cards to highlight their portfolios, technical skills, and ongoing projects.
\n\n\n\nSimon Willison, founder of Datasette, demonstrates this approach effectively through his GitHub profile.
\n\n\n\nHis presence includes links to his technical blog and personal projects, creating a comprehensive snapshot of his expertise. Visitors can easily contact him while exploring his work samples – all from a single profile.
\n\n\n\nWhat makes this especially powerful for tech professionals is GitHub’s integration with Gravatar. When developers update their Gravatar profile picture, those changes automatically appear on GitHub and ensure a consistent, professional presence without requiring multiple updates.
\n\n\n\nFor many industries, digital business cards eliminate the limitations of paper while adding dynamic elements like direct portfolio access, property listings, and instant contact options – turning a simple introduction into a potential business opportunity.
\n\n\n\nFor creative professionals, first impressions matter tremendously. Digital business cards give artists and freelancers a powerful advantage – the ability to showcase their actual work during initial meetings rather than just talking about it.
\n\n\n\nJonathan H. Kantor’s digital business card perfectly demonstrates this advantage.
\n\n\n\nAs an illustrator at Talking Bull Games, his Gravatar profile displays samples of his artwork directly on the card itself. New contacts can immediately see his illustration style and quality before clicking through to his full portfolio website. This visual introduction creates an instant connection that paper cards simply cannot match.
\n\n\n\nSimilarly, Shannon Cutts uses her digital business card to establish her credibility as a freelance writer.
\n\n\n\nHer profile links directly to her writing samples and service pages, allowing potential clients to quickly assess her style and expertise. This immediate access to her work helps her stand out in competitive pitching situations.
\n\n\n\nBoth Jonathan and Shannon have enhanced their cards with integrated QR codes connected to payment systems. This smart addition means that when someone appreciates their work, they can commission or purchase it on the spot by sending payment directly to the artist’s designated eWallet. No invoicing delays or payment friction – just a seamless transaction from introduction to sale, all through a digital business card.
\n\n\n\nCorporate professionals require business cards that convey expertise, professionalism, and comprehensive information. Thomas McCorry’s digital business card exemplifies this approach perfectly.
\n\n\n\nHis Gravatar profile is like a mini-CV, with a detailed bio section outlining his professional history and accomplishments. The card includes direct links to his personal website, portfolio of work, and LinkedIn profile – all organized in a clean, accessible format alongside professional photographs.
\n\n\n\nThis structured approach gives potential clients and contacts an immediate sense of Thomas’s experience and capabilities at a glance. Rather than trying to cram limited information onto a paper card, his digital version provides depth without overwhelming the viewer. Someone meeting Thomas can quickly understand his background and then access more detailed supporting materials about specific projects or expertise areas with a single tap.
\n\n\n\nCharles Leisure takes corporate networking a step further by connecting a QR code to his digital business card.
\n\n\n\nThis practical addition allows him to instantly share his complete professional profile during meetings or conferences by simply opening the QR code stored in his Apple or Google Wallet. Contacts can scan the code with their smartphone and immediately have all his information saved – eliminating the traditional business card exchange and ensuring his information never gets lost in a pocket or briefcase.
\n\n\n\nCreating a professional digital business card doesn’t require design skills or technical expertise. Anyone can set up a functional, customizable card like the examples showcased in this article by signing up for a free Gravatar profile.
\n\n\n\nGetting started takes just minutes, and the process is straightforward:
\n\n\n\nWith these seven simple steps, you’ll have a professional digital business card that works across platforms and makes networking more efficient and effective.
\n\n\n\nGravatar offers extensive customization options that let you create a truly personalized digital business card:
\n\n\n\nPrivacy is also thoughtfully integrated into the design system. Gravatar gives you control over which information remains public (like your avatar and display name) and which stays private (such as phone numbers or birth dates).
\n\n\n\nWhen a new site or app requests access to your non-public information, Gravatar will ask for your confirmation first.
\n\n\n\nThis privacy-first approach highlights one of Gravatar’s main strengths – functioning as a universal profile. Update your information once, and those changes instantly sync across all integrated platforms like WordPress, GitHub, and Slack, making your digital business card both customizable and remarkably efficient.
\n\n\n\nA free Gravatar profile offers the perfect solution for professionals seeking to establish a consistent online presence. More than just a digital business card, it functions as your unified identity across the web, appearing automatically on compatible platforms whenever you interact.
\n\n\n\nGetting started takes just minutes. Visit Gravatar.com, enter your email address, and follow the simple verification steps to create your profile. Add a professional photo, customize your information, and start connecting your social accounts. The process is straightforward and designed for users of all technical skill levels.
\n\n\n\nWhat truly sets Gravatar apart is its automatic synchronization capability. Once set up, your digital business card will appear seamlessly across WordPress.com, GitHub, Stack Overflow, and numerous other integrated platforms.
\n\n\n\nStart building your professional digital presence with Gravatar today!
\n\n\n\nIt’s so funny that my random re-engagement with Radiohead re-emergence coincides with them doing a new entity that might mean something. I did a poll on Twitter and people preferred OK Computer to Kid A 78%!
\n\n\n\nGrok told me: “The band has recently registered a new limited liability partnership (LLP) named RHEUK25, which includes all five members—Thom Yorke, Jonny Greenwood, Colin Greenwood, Ed O’Brien, and Philip Selway. This move is notable because Radiohead has historically created similar business entities before announcing new albums, tours, or reissues.”
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 Mar 2025 23:06:02 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:47;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:98:\"Do The Woo Community: Tara Claeys on the Benefits of Niching Down to School and Nonprofit Websites\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=92779\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"https://dothewoo.io/tara-claeys-on-the-benefits-of-niching-down-to-school-and-nonprofit-websites/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:230:\"In this episode of WP Agency Tracks, hosts Marcus Burnett and Cami MacNamara discuss the benefits and challenges of niching down with guest Tara Claeys, emphasizing her focus on schools and nonprofits for greater business success.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 Mar 2025 14:04:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:94:\"Do The Woo Community: Ronnie Burt Chats About Gravatar’s Evolution and CloudFest Experiences\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93052\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:90:\"https://dothewoo.io/ronnie-burt-chats-about-gravatars-evolution-and-cloudfest-experiences/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:189:\"At CloudFest, Ronnie Burt discusses Gravatar\'s history, its integration with WordPress, recent spikes in usage from platforms like ChatGPT, and the importance of digital identity ownership.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 Mar 2025 10:30:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:49;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"Do The Woo Community: The Winners of the CloudFest Hackathon 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93009\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://dothewoo.io/blog/the-winners-of-the-cloudfest-hackathon-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:210:\"The CloudFest Hackathon 2025 celebrated innovation in open-source development, featuring diverse awards and emphasizing inclusivity within the tech community, with Accessible Infographics as the overall winner.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 Mar 2025 15:57:07 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:48:\"WpOrg\\Requests\\Utility\\CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Wed, 09 Apr 2025 23:13:38 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:13:\"last-modified\";s:29:\"Wed, 09 Apr 2025 23:00:29 GMT\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:16:\"content-encoding\";s:2:\"br\";s:7:\"alt-svc\";s:19:\"h3=\":443\"; ma=86400\";s:4:\"x-nc\";s:9:\"HIT ord 1\";}}s:5:\"build\";i:1744240221;s:21:\"cache_expiration_time\";i:1744283618;s:23:\"__cache_expiration_time\";i:1744283618;}','off'), +(152,'_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1744283618','off'), +(153,'_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1744240418','off'), +(154,'_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b','1744283618','off'), +(155,'_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b',' ','off'), +(156,'wp-graphql_allow_tracking','yes','auto'), +(157,'wp-graphql_tracking_notice','hide','auto'), +(158,'wp-graphql_tracking_last_send','1744240419','auto'), +(159,'_site_transient_timeout_popular_importers_968d0fadeded9636c5b63190aaec278f','1744413228','off'), +(160,'_site_transient_popular_importers_968d0fadeded9636c5b63190aaec278f','a:2:{s:9:\"importers\";a:7:{s:7:\"blogger\";a:4:{s:4:\"name\";s:7:\"Blogger\";s:11:\"description\";s:54:\"Import posts, comments, and users from a Blogger blog.\";s:11:\"plugin-slug\";s:16:\"blogger-importer\";s:11:\"importer-id\";s:7:\"blogger\";}s:9:\"wpcat2tag\";a:4:{s:4:\"name\";s:29:\"Categories and Tags Converter\";s:11:\"description\";s:71:\"Convert existing categories to tags or tags to categories, selectively.\";s:11:\"plugin-slug\";s:18:\"wpcat2tag-importer\";s:11:\"importer-id\";s:10:\"wp-cat2tag\";}s:11:\"livejournal\";a:4:{s:4:\"name\";s:11:\"LiveJournal\";s:11:\"description\";s:46:\"Import posts from LiveJournal using their API.\";s:11:\"plugin-slug\";s:20:\"livejournal-importer\";s:11:\"importer-id\";s:11:\"livejournal\";}s:11:\"movabletype\";a:4:{s:4:\"name\";s:24:\"Movable Type and TypePad\";s:11:\"description\";s:62:\"Import posts and comments from a Movable Type or TypePad blog.\";s:11:\"plugin-slug\";s:20:\"movabletype-importer\";s:11:\"importer-id\";s:2:\"mt\";}s:3:\"rss\";a:4:{s:4:\"name\";s:3:\"RSS\";s:11:\"description\";s:30:\"Import posts from an RSS feed.\";s:11:\"plugin-slug\";s:12:\"rss-importer\";s:11:\"importer-id\";s:3:\"rss\";}s:6:\"tumblr\";a:4:{s:4:\"name\";s:6:\"Tumblr\";s:11:\"description\";s:53:\"Import posts & media from Tumblr using their API.\";s:11:\"plugin-slug\";s:15:\"tumblr-importer\";s:11:\"importer-id\";s:6:\"tumblr\";}s:9:\"wordpress\";a:4:{s:4:\"name\";s:9:\"WordPress\";s:11:\"description\";s:96:\"Import posts, pages, comments, custom fields, categories, and tags from a WordPress export file.\";s:11:\"plugin-slug\";s:18:\"wordpress-importer\";s:11:\"importer-id\";s:9:\"wordpress\";}}s:10:\"translated\";b:0;}','off'), +(162,'_site_transient_update_plugins','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1744240431;s:8:\"response\";a:0:{}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:3:{s:9:\"hello.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:25:\"w.org/plugins/hello-dolly\";s:4:\"slug\";s:11:\"hello-dolly\";s:6:\"plugin\";s:9:\"hello.php\";s:11:\"new_version\";s:5:\"1.7.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/hello-dolly/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/hello-dolly.1.7.3.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855\";s:2:\"1x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:67:\"https://ps.w.org/hello-dolly/assets/banner-1544x500.jpg?rev=2645582\";s:2:\"1x\";s:66:\"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.6\";}s:41:\"wordpress-importer/wordpress-importer.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:32:\"w.org/plugins/wordpress-importer\";s:4:\"slug\";s:18:\"wordpress-importer\";s:6:\"plugin\";s:41:\"wordpress-importer/wordpress-importer.php\";s:11:\"new_version\";s:5:\"0.8.4\";s:3:\"url\";s:49:\"https://wordpress.org/plugins/wordpress-importer/\";s:7:\"package\";s:67:\"https://downloads.wordpress.org/plugin/wordpress-importer.0.8.4.zip\";s:5:\"icons\";a:2:{s:2:\"1x\";s:63:\"https://ps.w.org/wordpress-importer/assets/icon.svg?rev=2791650\";s:3:\"svg\";s:63:\"https://ps.w.org/wordpress-importer/assets/icon.svg?rev=2791650\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:72:\"https://ps.w.org/wordpress-importer/assets/banner-772x250.png?rev=547654\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.2\";}s:25:\"wp-graphql/wp-graphql.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:24:\"w.org/plugins/wp-graphql\";s:4:\"slug\";s:10:\"wp-graphql\";s:6:\"plugin\";s:25:\"wp-graphql/wp-graphql.php\";s:11:\"new_version\";s:5:\"2.1.1\";s:3:\"url\";s:41:\"https://wordpress.org/plugins/wp-graphql/\";s:7:\"package\";s:53:\"https://downloads.wordpress.org/plugin/wp-graphql.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-256x256.png?rev=3111985\";s:2:\"1x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-128x128.png?rev=3111985\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:66:\"https://ps.w.org/wp-graphql/assets/banner-1544x500.png?rev=3111985\";s:2:\"1x\";s:65:\"https://ps.w.org/wp-graphql/assets/banner-772x250.png?rev=3111985\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"6.0\";}}s:7:\"checked\";a:3:{s:9:\"hello.php\";s:5:\"1.7.2\";s:41:\"wordpress-importer/wordpress-importer.php\";s:5:\"0.8.4\";s:25:\"wp-graphql/wp-graphql.php\";s:5:\"2.1.1\";}}','off'), +(163,'_site_transient_wp_plugin_dependencies_plugin_data','a:0:{}','off'), +(164,'recently_activated','a:1:{s:41:\"wordpress-importer/wordpress-importer.php\";i:1744240487;}','off'), +(165,'wp_calendar_block_has_published_posts','1','auto'), +(166,'category_children','a:0:{}','auto'); +/*!40000 ALTER TABLE `wp_options` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_postmeta` +-- + +DROP TABLE IF EXISTS `wp_postmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_postmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `post_id` (`post_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_postmeta` +-- + +LOCK TABLES `wp_postmeta` WRITE; +/*!40000 ALTER TABLE `wp_postmeta` DISABLE KEYS */; +INSERT INTO `wp_postmeta` VALUES +(1,2,'_wp_page_template','default'), +(2,3,'_wp_page_template','default'), +(5,6,'_edit_last','1'), +(6,6,'_pingme','1'), +(7,6,'_encloseme','1'), +(8,7,'_wp_page_template','default'), +(9,8,'_wp_page_template','default'), +(10,10,'_pingme','1'), +(11,10,'_encloseme','1'), +(12,10,'_edit_last','1'), +(13,1,'_wp_trash_meta_status','publish'), +(14,1,'_wp_trash_meta_time','1744240453'), +(15,1,'_wp_desired_post_slug','hello-world'), +(16,1,'_wp_trash_meta_comments_status','a:1:{i:1;s:1:\"1\";}'); +/*!40000 ALTER TABLE `wp_postmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_posts` +-- + +DROP TABLE IF EXISTS `wp_posts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_posts` ( + `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, + `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content` longtext NOT NULL, + `post_title` text NOT NULL, + `post_excerpt` text NOT NULL, + `post_status` varchar(20) NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) NOT NULL DEFAULT 'open', + `ping_status` varchar(20) NOT NULL DEFAULT 'open', + `post_password` varchar(255) NOT NULL DEFAULT '', + `post_name` varchar(200) NOT NULL DEFAULT '', + `to_ping` text NOT NULL, + `pinged` text NOT NULL, + `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content_filtered` longtext NOT NULL, + `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `guid` varchar(255) NOT NULL DEFAULT '', + `menu_order` int(11) NOT NULL DEFAULT 0, + `post_type` varchar(20) NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) NOT NULL DEFAULT '', + `comment_count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`ID`), + KEY `post_name` (`post_name`(191)), + KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), + KEY `post_parent` (`post_parent`), + KEY `post_author` (`post_author`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_posts` +-- + +LOCK TABLES `wp_posts` WRITE; +/*!40000 ALTER TABLE `wp_posts` DISABLE KEYS */; +INSERT INTO `wp_posts` VALUES +(1,1,'2025-04-09 23:13:13','2025-04-09 23:13:13','\nWelcome to WordPress. This is your first post. Edit or delete it, then start writing!
\n','Hello world!','','trash','open','open','','hello-world__trashed','','','2025-04-09 23:14:13','2025-04-09 23:14:13','',0,'http://localhost:8888/?p=1',0,'post','',1), +(2,1,'2025-04-09 23:13:13','2025-04-09 23:13:13','\nThis is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:
\n\n\n\n\n\n\n\nHi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)
...or something like this:
\n\n\n\n\n\n\n\nThe XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.
As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!
\n','Sample Page','','publish','closed','open','','sample-page','','','2025-04-09 23:13:13','2025-04-09 23:13:13','',0,'http://localhost:8888/?page_id=2',0,'page','',0), +(3,1,'2025-04-09 23:13:13','2025-04-09 23:13:13','\nSuggested text: Our website address is: http://localhost:8888.
\n\n\nSuggested text: When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.
\n\n\nAn anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.
\n\n\nSuggested text: If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.
\n\n\nSuggested text: If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.
\n\n\nIf you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.
\n\n\nWhen you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.
\n\n\nIf you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.
\n\n\nSuggested text: Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.
\n\n\nThese websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.
\n\n\nSuggested text: If you request a password reset, your IP address will be included in the reset email.
\n\n\nSuggested text: If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.
\n\n\nFor users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.
\n\n\nSuggested text: If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.
\n\n\nSuggested text: Visitor comments may be checked through an automated spam detection service.
\n\n','Privacy Policy','','draft','closed','open','','privacy-policy','','','2025-04-09 23:13:13','2025-04-09 23:13:13','',0,'http://localhost:8888/?page_id=3',0,'page','',0), +(4,1,'2025-04-09 23:13:37','0000-00-00 00:00:00','','Auto Draft','','auto-draft','open','open','','','','','2025-04-09 23:13:37','0000-00-00 00:00:00','',0,'http://localhost:8888/?p=4',0,'post','',0), +(6,1,'2025-04-09 18:29:34','2025-04-09 18:29:34','\nWelcome to WordPress. This is your first post. Edit or delete it, then start writing!
\n','Hello world!','','publish','open','open','','hello-world-2','','','2025-04-09 18:29:34','2025-04-09 18:29:34','',0,'http://localhost:8888/?p=1',0,'post','',1), +(7,1,'2025-04-09 18:29:34','2025-04-09 18:29:34','\nThis is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:
\n\n\n\n\n\n\n\nHi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)
...or something like this:
\n\n\n\n\n\n\n\nThe XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.
As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!
\n','Sample Page','','publish','closed','open','','sample-page-2','','','2025-04-09 18:29:34','2025-04-09 18:29:34','',0,'http://localhost:8888/?page_id=2',0,'page','',0), +(8,1,'2025-04-09 18:29:34','2025-04-09 18:29:34','\nSuggested text: Our website address is: http://localhost:8888.
\n\n\nSuggested text: When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.
\n\n\nAn anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.
\n\n\nSuggested text: If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.
\n\n\nSuggested text: If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.
\n\n\nIf you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.
\n\n\nWhen you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.
\n\n\nIf you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.
\n\n\nSuggested text: Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.
\n\n\nThese websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.
\n\n\nSuggested text: If you request a password reset, your IP address will be included in the reset email.
\n\n\nSuggested text: If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.
\n\n\nFor users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.
\n\n\nSuggested text: If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.
\n\n\nSuggested text: Visitor comments may be checked through an automated spam detection service.
\n\n','Privacy Policy','','draft','closed','open','','privacy-policy','','','2025-04-09 18:29:34','2025-04-09 18:29:34','',0,'http://localhost:8888/?page_id=3',0,'page','',0), +(9,1,'2025-04-09 18:29:56','2025-04-09 18:29:56','','Navigation','','publish','closed','closed','','navigation','','','2025-04-09 18:29:56','2025-04-09 18:29:56','',0,'http://localhost:8888/navigation/',0,'wp_navigation','',0), +(10,1,'2025-04-09 20:45:15','2025-04-09 20:45:15','\nSample content here!
\n\n\n\n\n','Sample Post','','publish','open','open','','sample-post','','','2025-04-09 20:45:15','2025-04-09 20:45:15','',0,'http://localhost:8888/?p=7',0,'post','',0), +(11,1,'2025-04-09 23:14:13','2025-04-09 23:14:13','\nWelcome to WordPress. This is your first post. Edit or delete it, then start writing!
\n','Hello world!','','inherit','closed','closed','','1-revision-v1','','','2025-04-09 23:14:13','2025-04-09 23:14:13','',1,'http://localhost:8888/?p=11',0,'revision','',0); +/*!40000 ALTER TABLE `wp_posts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_term_relationships` +-- + +DROP TABLE IF EXISTS `wp_term_relationships`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_term_relationships` ( + `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_order` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`object_id`,`term_taxonomy_id`), + KEY `term_taxonomy_id` (`term_taxonomy_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_term_relationships` +-- + +LOCK TABLES `wp_term_relationships` WRITE; +/*!40000 ALTER TABLE `wp_term_relationships` DISABLE KEYS */; +INSERT INTO `wp_term_relationships` VALUES +(1,1,0), +(6,1,0), +(6,3,0), +(10,2,0), +(10,3,0); +/*!40000 ALTER TABLE `wp_term_relationships` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_term_taxonomy` +-- + +DROP TABLE IF EXISTS `wp_term_taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_term_taxonomy` ( + `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, + `parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_taxonomy_id`), + UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), + KEY `taxonomy` (`taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_term_taxonomy` +-- + +LOCK TABLES `wp_term_taxonomy` WRITE; +/*!40000 ALTER TABLE `wp_term_taxonomy` DISABLE KEYS */; +INSERT INTO `wp_term_taxonomy` VALUES +(1,1,'category','',0,1), +(2,2,'category','This is a sample category!',0,1), +(3,3,'post_tag','All posts with sample data in them!',0,2); +/*!40000 ALTER TABLE `wp_term_taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_termmeta` +-- + +DROP TABLE IF EXISTS `wp_termmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_termmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `term_id` (`term_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_termmeta` +-- + +LOCK TABLES `wp_termmeta` WRITE; +/*!40000 ALTER TABLE `wp_termmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_termmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_terms` +-- + +DROP TABLE IF EXISTS `wp_terms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_terms` ( + `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', + `term_group` bigint(10) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_id`), + KEY `slug` (`slug`(191)), + KEY `name` (`name`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_terms` +-- + +LOCK TABLES `wp_terms` WRITE; +/*!40000 ALTER TABLE `wp_terms` DISABLE KEYS */; +INSERT INTO `wp_terms` VALUES +(1,'Uncategorized','uncategorized',0), +(2,'Category 1','category-1',0), +(3,'Sample Data','sample-data',0); +/*!40000 ALTER TABLE `wp_terms` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_usermeta` +-- + +DROP TABLE IF EXISTS `wp_usermeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_usermeta` ( + `umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`umeta_id`), + KEY `user_id` (`user_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_usermeta` +-- + +LOCK TABLES `wp_usermeta` WRITE; +/*!40000 ALTER TABLE `wp_usermeta` DISABLE KEYS */; +INSERT INTO `wp_usermeta` VALUES +(1,1,'nickname','admin'), +(2,1,'first_name',''), +(3,1,'last_name',''), +(4,1,'description',''), +(5,1,'rich_editing','true'), +(6,1,'syntax_highlighting','true'), +(7,1,'comment_shortcuts','false'), +(8,1,'admin_color','fresh'), +(9,1,'use_ssl','0'), +(10,1,'show_admin_bar_front','true'), +(11,1,'locale',''), +(12,1,'wp_capabilities','a:1:{s:13:\"administrator\";b:1;}'), +(13,1,'wp_user_level','10'), +(14,1,'dismissed_wp_pointers',''), +(15,1,'show_welcome_panel','1'), +(16,1,'session_tokens','a:1:{s:64:\"fd7f1ace0a81c5447d651384e7bceb859b5687f3efa8e19e3d22b041f1b34512\";a:4:{s:10:\"expiration\";i:1744413216;s:2:\"ip\";s:12:\"192.168.65.1\";s:2:\"ua\";s:117:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36\";s:5:\"login\";i:1744240416;}}'), +(17,1,'wp_dashboard_quick_press_last_post_id','4'), +(18,1,'community-events-location','a:1:{s:2:\"ip\";s:12:\"192.168.65.0\";}'); +/*!40000 ALTER TABLE `wp_usermeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_users` +-- + +DROP TABLE IF EXISTS `wp_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_users` ( + `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_login` varchar(60) NOT NULL DEFAULT '', + `user_pass` varchar(255) NOT NULL DEFAULT '', + `user_nicename` varchar(50) NOT NULL DEFAULT '', + `user_email` varchar(100) NOT NULL DEFAULT '', + `user_url` varchar(100) NOT NULL DEFAULT '', + `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `user_activation_key` varchar(255) NOT NULL DEFAULT '', + `user_status` int(11) NOT NULL DEFAULT 0, + `display_name` varchar(250) NOT NULL DEFAULT '', + PRIMARY KEY (`ID`), + KEY `user_login_key` (`user_login`), + KEY `user_nicename` (`user_nicename`), + KEY `user_email` (`user_email`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_users` +-- + +LOCK TABLES `wp_users` WRITE; +/*!40000 ALTER TABLE `wp_users` DISABLE KEYS */; +INSERT INTO `wp_users` VALUES +(1,'admin','$P$BqQESVUhlVKQME6eMG0K5xLr1dmB861','admin','wordpress@example.com','http://localhost:8888','2025-04-09 23:13:13','',0,'admin'); +/*!40000 ALTER TABLE `wp_users` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*M!100616 SET NOTE_VERBOSITY=@OLD_NOTE_VERBOSITY */; + +-- Dump completed on 2025-04-09 23:15:01 diff --git a/examples/astro/template-hierarchy-data-fetching-urql/wp-env/setup/.htaccess b/examples/astro/template-hierarchy-data-fetching-urql/wp-env/setup/.htaccess new file mode 100644 index 00000000..fd77845f --- /dev/null +++ b/examples/astro/template-hierarchy-data-fetching-urql/wp-env/setup/.htaccess @@ -0,0 +1,15 @@ +# BEGIN WordPress +# The directives (lines) between "BEGIN WordPress" and "END WordPress" are +# dynamically generated, and should only be modified via WordPress filters. +# Any changes to the directives between these markers will be overwritten. +The third release candidate (“RC3”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC3 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC3 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-RC3 |
WordPress Playground | Use the 6.8 RC3 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts leading up to next week’s release for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC2, you can browse the following links:
\n\n\n\nWordPress is open source software made possible by a passionate community that collaborates and contributes to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users. For more details on developer-related changes in 6.8, please review the WordPress 6.8 Field Guide.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC3, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本? हिन्दी? मराठी? বাংলা? You can help translate WordPress into more than 100 languages.
\n\n\n\nThe launch draws closer,
Six-eight sings through RC3,
Almost time to shine.
Thank you to the following contributors for collaborating on this post: @audrasjb, @mamaduka, @krupajnanda, @benjamin_zekavica, @narenin, @joedolson, @courane01, @joemcgill, @marybaum, @kmgalanakis, @umeshsinghin, @wildworks, @mkrndmane.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18673\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"WordPress 6.8 Release Candidate 2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/04/wordpress-6-8-release-candidate-2/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Apr 2025 15:53:20 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18662\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:367:\"The second Release Candidate (“RC2”) for WordPress 6.8 is ready for download and testing! This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site. Reaching this phase […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8739:\"\nThe second Release Candidate (“RC2”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC2 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC2 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update –version=6.8-RC2 |
WordPress Playground | Use the 6.8 RC2 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC1, you can browse the following links:
\n\n\n\nWant to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:
\n\n\n\nWordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC2, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ? You can help translate WordPress into more than 100 languages. This release milestone (RC2) also marks the hard string freeze point of the 6.8 release cycle.
\n\n\n\nTesting, 1, 2, 3
It’s almost April fifteenth
Squashing all the bugs
Thank you to the following contributors for collaborating on this post: @michelleames, @tacoverdo, @jopdop30, @vgnavada, @jeffpaul.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18662\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"WordPress 6.8 Release Candidate 1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/03/wordpress-6-8-release-candidate-1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 25 Mar 2025 16:19:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18639\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:267:\"WordPress 6.8 RC 1 is ready for download and testing! The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing over the next three weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:9280:\"\nThe first Release Candidate (“RC1”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC1 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC1 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC1 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-RC1 |
WordPress Playground | Use the 6.8 RC1 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since Beta 3, you can browse the following links:
\n\n\n\nWant to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:
\n\n\n\nWordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC1, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? You can help translate WordPress into more than 100 languages. This release milestone (RC1) also marks the hard string freeze point of the 6.8 release cycle.
\n\n\n\nMarch fades, nearly there,
Six-eight hums—a steady beat,
RC greets the world.
Thank you to the following contributors for collaborating on this post: @joemcgill @benjamin_zekavica @courane01 @mkrndmane @audrasjb @areziaal @ankit-k-gupta @krupajnanda @bph.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18639\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 6.8 Beta 3\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2025/03/wordpress-6-8-beta-3/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 Mar 2025 15:35:14 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18634\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:289:\"WordPress 6.8 Beta 3 is ready for download and testing! The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing Beta and RC versions over the next four weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5627:\"\nWordPress 6.8 Beta 3 is now ready for testing!
\n\n\n\nThis beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it is recommended you evaluate Beta 3 on a test server and site.
\n\n\n\nYou can test WordPress 6.8 Beta 3 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the Beta 3 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-beta3 |
WordPress Playground | Use the 6.8 Beta 3 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup. |
The current target date for the final release of WordPress 6.8 is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for more information.
\n\n\n\nCatch up on what’s new in WordPress 6.8: Read the Beta 1 and Beta 2 announcements for details and highlights.
\n\n\n\nYour help testing the WordPress 6.8 Beta 3 version is key to ensuring everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.8.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nBetween Beta 1, released on March 4, 2025, and the final Release Candidate (RC) scheduled for April 8, 2025, the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nWordPress 6.8 Beta 3 contains more than 3 Editor updates and fixes since the Beta 2 release, including 16 tickets for WordPress core.
\n\n\n\nEach beta cycle focuses on bug fixes; more are on the way with your help through testing. You can browse the technical details for all issues addressed since Beta 3 using these links:
\n\n\n\nBeta three refines,
WordPress shapes with steady hands,
Code grows into form.
Props to @benjamin_zekavica @krupajnanda @ankit-k-gupta @joemcgill for proofreading and review.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18634\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 6.8 Beta 2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2025/03/wordpress-6-8-beta-2/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 11 Mar 2025 15:46:13 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18619\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:289:\"WordPress 6.8 Beta 2 is ready for download and testing! The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing Beta and RC versions over the next five weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5940:\"\nWordPress 6.8 Beta 2 is now ready for testing!
\n\n\n\nThis beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, you should evaluate Beta 2 on a test server and site.
\n\n\n\nYou can test WordPress 6.8 Beta 2 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.) |
Direct Download | Download the Beta 2 version (zip) and install it on a WordPress website. |
Command Line | Use this WP-CLI command: wp core update --version=6.8-beta2 |
WordPress Playground | Use the 6.8 Beta 2 WordPress Playground instance to test the software directly in your browser. No setup is required–just click and go! |
The current target date for the final release of WordPress 6.8 is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for more information.
\n\n\n\nCatch up on what’s new in WordPress 6.8: Read the Beta 1 announcement for details and highlights.
\n\n\n\nYour help testing the WordPress 6.8 Beta 2 version is key to ensuring everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.8.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nBetween Beta 1, released on March 4, 2025, and the final Release Candidate (RC) scheduled for April 8, 2025, the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nWordPress 6.8 Beta 2 contains more than 14 Editor updates and fixes since the Beta 1 release, including 21 tickets for WordPress core.
\n\n\n\nEach beta cycle focuses on bug fixes; more are on the way with your help through testing. You can browse the technical details for all issues addressed since Beta 1 using these links:
\n\n\n\nSecond wave refines,
Lines of code like rivers flow,
WordPress finds its form.
Props to @ankitkumarshah @vgnavada @krupajnanda @michelleames @audrasjb @marybaum @ecgan for proofreading and review.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18619\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 6.8 Beta 1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2025/03/wordpress-6-8-beta-1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 04 Mar 2025 17:09:45 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:3:\"6.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:11:\"development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:8:\"releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18582\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:288:\"WordPress 6.8 Beta 1 is ready for download and testing! The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing Beta and RC versions over the next six weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:10596:\"\nWordPress 6.8 Beta 1 is ready for download and testing!
\n\n\n\nThis beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, set up a test environment or a local site to explore the new features.
\n\n\n\nYou can test this beta release in any of the following ways:
\n\n\n\nWordPress Beta Tester Plugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. Select the “Bleeding edge” channel and “Beta/RC Only” stream. |
Direct Download | Download the Beta 1 version (zip) and install it on a WordPress website. |
Command Line (WP-CLI) | Use this WP-CLI command: wp core update --version=6.8-beta1 |
WordPress Playground | Use a 6.8 Beta 1 WordPress Playground instance to test the software directly in your browser. No setup required–-just click and go! |
The scheduled final release date for WordPress 6.8 is April 15, 2025. Your help testing Beta and RC versions over the next six weeks is vital to ensuring the final release is everything it should be: stable, powerful, and intuitive.
\n\n\n\nTesting for issues is a critical part of developing any software, and it’s a meaningful way for anyone to contribute—whether or not you have experience. Details on what to test in WordPress 6.8 are here.
\n\n\n\nIf you encounter an issue, please share it in the Alpha/Beta area of the support forums. If you are comfortable submitting a reproducible bug report, you can do so via WordPress Trac. You can also check your issue against this list of known bugs.
\n\n\n\nCurious about testing releases in general and how to get started? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nWordPress 6.8 will include many new features that were previously only available in the Gutenberg plugin. Learn more about Gutenberg updates since WordPress 6.7 in the What’s New in Gutenberg posts for versions 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20.0, 20.1, 20.2, 20.3, and 20.4.
\n\n\n\nThis is a polish release, with user enhancements throughout incorporated into the latest Gutenberg updates. WordPress 6.8 brings a luster and gloss that only a polish release can.
\n\n\n\nWordPress 6.8 Beta 1 contains over 370 enhancements and 520 bug fixes for the editor, including design improvements, polishing the query loop, and more than 230 tickets for WordPress 6.8 Core. Here’s a glimpse of what’s coming:
\n\n\n\nEasier ways to see your options in Data Views, and you can opt to ignore sticky posts in the Query Loop. Plus you’ll find lots of little improvements in the editor!
\n\n\n\nThe Style Book now features a structured layout so you can preview site colors, typography, and block styles more easily. You can use the Style Book in classic themes with editor-styles or a theme.json file and includes clearer labels, and you can find them under Appearance > Design
.
WordPress 6.8 introduces native support for speculative loading, leveraging the Speculation Rules API to improve site performance with near-instant page loads. This feature prefetches or prerenders URLs based on user interactions, such as hovering over links, reducing load times for subsequent pages.
\n\n\n\nBy default, WordPress 6.8 applies a conservative prefetching strategy, balancing performance gains with resource efficiency. Developers can customize speculative loading behavior using new filters, since the API does not include UI-based controls. The existing Speculative Loading feature plugin will adapt to the core implementation, allowing deeper customization. Please test this feature in supported browsers (currently Chrome 108+ and Edge 108+, with more browsers evaluating) and provide feedback on #62503 to help refine its implementation.
\n\n\n\nWordPress 6.8 will use bcrypt for password hashing, which significantly hardens WordPress. Other hashing is getting hardened, too, throughout the security apparatus. You won’t have to change anything in your daily workflow.
\n\n\n\nThe features included in this first beta may change before the final release of WordPress 6.8, based on what testers like you find.
\n\n\n\nGet an overview of the 6.8 release cycle and check the Make WordPress Core blog for 6.8-related posts in the next few weeks for further details.
\n\n\n\nDue to an update made to the upgrade routine during this release, (see r59803), any upgrade from versions older than 5.1 will fail. Folks are working to resolve this specific issue, so please hold off on reporting on this while testing the Beta 1 release.
\n\n\n\nThe WordPress community sponsors a monetary reward for reporting new, unreleased security vulnerabilities. This reward doubles during the period between Beta 1 on March 4, 2025 and the final Release Candidate (RC) scheduled for April 15, 2025. Please follow responsible disclosure practices as detailed in the project’s security practices and policies. You can find those on the HackerOne page and in the security white paper.
\n\n\n\nMarch winds shift the tide.
Hands unite in open source;
WordPress moves ahead.
Props to @audrasjb @marybaum @mamaduka @michelleames @bph @jorbin @joemcgill @krupajnanda @desrosj @benjamin_zekavica @lysyjan87 for reviewing and collaborating on this post!
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18582\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:38:\"Shaping Tomorrow at WordCamp Asia 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://wordpress.org/news/2025/02/shaping-tomorrow-at-wordcamp-asia-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 22 Feb 2025 15:04:04 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:6:\"Events\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"WordCamp\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18515\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:394:\"Over 1,400 attendees from 71 countries gathered at the Philippine International Convention Center in Manila, and nearly 15,000 more joined online, for WordCamp Asia 2025. It’s the people. It’s the friendships and the stories. Matt Mullenweg, WordPress Cofounder The flagship WordPress event started with a dedicated Contributor Day, followed by two days of engaging talks, […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:17:\"Nicholas Garofalo\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:56717:\"\nOver 1,400 attendees from 71 countries gathered at the Philippine International Convention Center in Manila, and nearly 15,000 more joined online, for WordCamp Asia 2025.
\n\n\n\nIt’s the people. It’s the friendships and the stories.
Matt Mullenweg, WordPress Cofounder
The flagship WordPress event started with a dedicated Contributor Day, followed by two days of engaging talks, panels, hands-on workshops, and networking. Notable guests included WordPress Cofounder Matt Mullenweg and Gutenberg Lead Architect Matías Ventura, who were joined by a diverse lineup of speakers and panelists.
\n\n\n\nThroughout the event, the sponsor hall buzzed with activity as companies from across the WordPress ecosystem showcased their latest products, engaged with attendees, and offered live demos and giveaways. Each day, attendees refueled with diverse food offerings featuring Filipino favorites, turning meals into a prime networking opportunity where new connections were made and ideas were exchanged.
\n\n\n\nThis year’s event introduced several new programs to the schedule:
\n\n\n\nWordCamp Asia kicked off with an incredible Contributor Day, bringing together almost 800 contributors, many of them new, to collaborate, share knowledge, and give back to WordPress. With 37 dedicated table leads and 16 experts from the Human Library guiding the way, participants of all experience levels engaged in meaningful discussions, tackled important tasks, and made a lasting impact on the WordPress project.
\n\n\n\nKey contributions included resolving a critical media bug, advancing vertical text editing in Gutenberg, and refining the editing experience with dozens of issue closures. Performance optimizations and accessibility improvements abounded, joined by seven fresh patterns, and over 44,000 newly translated strings.
\n\n\n\nNew tools and workflows were explored to enhance testing and development. The day also saw meaningful conversations between hosting providers and users, improvements to event organizing processes, and hands-on training.
\n\n\n\nWith innovative ideas, new faces, and significant progress across multiple areas, Contributor Day reinforced the spirit of open source collaboration that drives WordPress forward.
\n\n\n\nOn the first full conference day, attendees gathered to celebrate the power of open source collaboration and innovation. Opening remarks from global and local event leads reflected on the incredible journey of WordCamp Asia, tracing its roots back to the first Southeast Asian WordCamp in Manila in 2008. This full-circle moment underscored how the WordPress community has flourished over the years, driven by shared knowledge and a commitment to an open web. The excitement continued with a highly anticipated opening keynote from Matías Ventura, who shared insights into the future of Gutenberg and WordPress, inspiring attendees to embrace the next wave of innovation and creativity in content publishing.
\n\n\n\nThe day then began in earnest. Talks highlighted new ways to integrate WordPress with external applications, opening possibilities for more interactive and scalable digital experiences. Simultaneously, content strategists and marketers explored evolving best practices in SEO, learning how to optimize their sites for visibility, engagement, and long-term growth. These sessions emphasized the importance of adaptability in a constantly evolving digital landscape, ensuring that WordPress users stay ahead of industry trends.
\n\n\n\nWorkshops throughout the day provided hands-on learning experiences tailored to a wide range of skill levels. Developers refined their expertise, gaining practical knowledge they could apply to their own projects. Accessibility advocates led discussions on designing for inclusivity, showcasing strategies to make WordPress-powered websites more navigable and user-friendly for people of all abilities.
\n\n\n\nAs the conference continued into the afternoon, conversations expanded to performance optimization and emerging technologies shaping the future of WordPress. A dedicated session explored AI-driven workflows, demonstrating how artificial intelligence can enhance site performance, automate repetitive tasks, and create more personalized user experiences. These discussions showcased the evolving role of WordPress as a versatile platform that extends beyond traditional publishing.
\n\n\n\nThe first day culminated in a thought-provoking keynote panel, WordPress in 2030, where industry leaders explored the future of the platform. The discussion covered the expanding open source community, emerging technologies, and the role of education and mentorship. Panelists shared their perspectives on the opportunities and challenges ahead, encouraging attendees to actively shape the future of WordPress by contributing, innovating, and advocating for an open web.
\n\n\n\nReturning for the final day of WordCamp Asia 2025, attendees explored a new set of sessions designed to push the boundaries of web development and strategy. Technical discussions on advanced Gutenberg block development highlighted innovative ways to build more dynamic and interactive content experiences, while another session examined performance optimization strategies to enhance site speed, accessibility, and overall user engagement. Content creators and marketers gained valuable insights into audience growth, effective storytelling, and data-driven content strategies to maximize impact.
\n\n\n\nThe final sessions of the conference reinforced WordPress’s adaptability and innovation, equipping attendees with new skills and strategies.
\n\n\n\nAs the final day drew to a close, Matt shared historic photos from WordCamp Davao 2008 in the Philippines, and then answered questions from the audience.
\n\n\n\nQuestions covered a variety of topics, incluiding: publishing on the open web, AI, headless WordPress, education, and Matt’s personal motivations. It was clear throughout the Q&A that the future of WordPress is as bright as the island-themed attire at the event’s after-party.
\n\n\n\nThank you to all the hard-working organizers who made this event possible, the speakers who took the stage, the visitors who ventured to Manila, and everyone who tuned in from around the world. Our hope is that every WordCamp attendee leaves with new knowledge, new friends, and new inspiration to build a better web.
\n\n\n\nBe sure to mark your calendars for other major WordPress events in 2025: WordCamp Europe (Basel, Switzerland) and WordCamp US (Portland, Oregon, USA). Then join us in Mumbai, India for WordCamp Asia 2026!
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18515\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:25:\"Report: WordPress in 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"https://wordpress.org/news/2025/02/wordpress-in-2025-report/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 15 Feb 2025 03:19:09 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"General\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18475\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:379:\"This year is set to be transformative for WordPress, yet many decision-makers risk overlooking the immense opportunities ahead. Our new “WordPress in 2025” report highlights why WordPress should be a cornerstone of your long-term strategy. Stay ahead of the curve—read the report now to see how WordPress can drive growth and innovation for your business in the […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"Noel Tock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:3721:\"\nThis year is set to be transformative for WordPress, yet many decision-makers risk overlooking the immense opportunities ahead. Our new “WordPress in 2025” report highlights why WordPress should be a cornerstone of your long-term strategy. Stay ahead of the curve—read the report now to see how WordPress can drive growth and innovation for your business in the years to come.
\n\n\n\nSome of the key points we explore:
\n\n\n\nDownload the full WordPress in 2025 (PDF) report directly to learn more.
\n\n\n\nSave your spot at our free event, WP:25, exploring the future of WordPress and featuring key people working with many of the ideas discussed in the report.
\n\n\n\nAbout the report’s author, Noel Tock — Having built his first website back in 1995, Noel has long been watching the evolution of the CMS space. As a co-owner at one of the leading enterprise WordPress agencies, Human Made, his belief in the power of open source is as great as ever. Human Made is a WordPress VIP Gold Partner specializing in DXP, headless, AI and more.
\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18475\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"WordCamp Asia 2025: Manila Magic\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2025/02/wordcamp-asia-2025-manila-magic/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 14 Feb 2025 16:04:45 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:6:\"Events\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"WordCamp\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18482\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:409:\"The first major WordCamp of the year is here! WordCamp Asia 2025 lands in Manila, Philippines, from February 20-22, bringing together open source enthusiasts, developers, and WordPress professionals from across the region—and the world. With three packed days of learning, networking, and collaboration, this year’s event promises fresh insights, dynamic discussions, and plenty of opportunities […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Bernard Meyer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:4844:\"\nThe first major WordCamp of the year is here! WordCamp Asia 2025 lands in Manila, Philippines, from February 20-22, bringing together open source enthusiasts, developers, and WordPress professionals from across the region—and the world.
\n\n\n\nWith three packed days of learning, networking, and collaboration, this year’s event promises fresh insights, dynamic discussions, and plenty of opportunities to connect.
\n\n\n\nThroughout the conference days, multiple presentations will focus on the solutions provided by our amazing sponsors. This is a great opportunity to learn more about their initiatives and solutions.
\n\n\n\n \n\n\n\nThe main conference, which will be held on February 21-22, will feature a lineup of notable keynote speakers, including digital innovation leaders and open-source advocates. Attendees can expect diverse sessions on business strategy, development of best practices, and technical advancements.
\n\n\n\nFor those looking to sharpen their skills, presentations will dive deep into topics like SEO for WordPress, performance optimization, and AI-powered content creation. Plus, don’t miss the electrifying WordPress Speed Build Battle, where developers race to create stunning sites in record time.
\n\n\n\nOn February 22, WordCamp Asia 2025 will host YouthCamp, a pre-registered event designed to introduce young minds to WordPress and its endless possibilities. This initiative aims to engage the next generation of WordPress users, developers, and contributors through hands-on activities and interactive sessions
\n\n\n\nWordPress Cofounder Matt Mullenweg will wrap up the event with a live Q&A session on February 22. Whether attending in person or tuning in online, you can catch his insights live on the WordPress YouTube channel at 4:00 p.m. Philippine Time (08:00 UTC).
\n\n\n\nAs the sun sets on WordCamp Asia 2025, the excitement continues with the After Party (theme: Island Vibe)! Get ready to experience the vibrant spirit of the Philippines with a lively gathering at The Forum at PICC. Expect a night filled with great conversations, music, and a celebration of the WordPress community.
\n\n\n\nAs always, be part of the conversation! Whether you’re attending in Manila or following along online, share your experiences using #WCAsia and #WordPress.
\n\n\n\nManila is calling—see you at WordCamp Asia 2025!
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18482\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WordPress 6.7.2 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2025/02/wordpress-6-7-2-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 11 Feb 2025 16:52:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18445\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:371:\"WordPress 6.7.2 is now available! This minor release includes 35 bug fixes, addressing issues affecting multiple components including the block editor, HTML API, and Customize. WordPress 6.7.2 is a short-cycle release. The next major release will be version 6.8 planned for April 15, 2025. If you have sites that support automatic background updates, the update […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Aaron Jorbin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8487:\"\nThis minor release includes 35 bug fixes, addressing issues affecting multiple components including the block editor, HTML API, and Customize.
\n\n\n\nWordPress 6.7.2 is a short-cycle release. The next major release will be version 6.8 planned for April 15, 2025.
\n\n\n\nIf you have sites that support automatic background updates, the update process will begin automatically.
\n\n\n\nYou can download WordPress 6.7.2 from WordPress.org, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”. For more information on this release, please visit the HelpHub site.
\n\n\n\nThis release was led by Aaron Jorbin.
\n\n\n\nWordPress 6.7.2 would not have been possible without the contributions of the following people. Their asynchronous coordination to deliver maintenance fixes into a stable release is a testament to the power and capability of the WordPress community.
\n\n\n\nAaron Jorbin, Alex Lende, Alexandre Buffet, Andreas Pedersen, Andrew Ozz, Ankit Kumar Shah, apermo, Benedikt Ledl, bernhard-reiter, Brian Alexander, Carlos Bravo, Carolina Nymark, Cyrille, Daniel Post, darerodz, David Calhoun, David Smith, Dennis Snell, dhewercorus, Dion Hulse, Doug Wollison, Ella, Eshaan Dabasiya, Fabian Kägy, Fabian Todt, Felix Arntz, Felix Renicks, Francis Cabusas, Frank B., George Mamadashvili, ghinamt, Glynn Quelch, Greg Ziółkowski, James Koster, Jarda Snajdr, Jb Audras, jdnd, jeryj, Joe Dolson, Joe McGill, Jon Surrell, Jonathan Desrosiers, juanwp22, Juliette Reinders Folmer, Karthick, Kazuto Takeshita, Kelly Choyce-Dwan, Ketan Niruke, Lena Morita, levskipg, Maciej Ma?kowiak, Mario Santos, Matthew Boynes, Mayank Tripathi, Michal Czaplinski, Miguel Fonseca, Mitchell Austin, mreishus, Mukesh Panchal, Nadir Seghir a11n, Narendra Sishodiya, Naresh Bheda, neotrope, Nick Diego, Olga Gleckler, Parth vataliya, Pascal Birchler, paullb, Peter Wilson, Pitam Dey, redkite, Rishav Dutta, robertstaddon, rvoigt, Sagar Tamang, Sainath Poojary, seanlanglands, Sergey Biryukov, Scott Reilly, Shyam Kariya, smerriman, Stephen Bernhardt, Sukhendu Sekhar Guria, TobiasBg, Tonya Mork, Vishy Moghan, Weston Ruter, wongjn, Yogesh Bhutkar, zaoyao
\n\n\n\nTo get involved in WordPress core development, head over to Trac, pick a ticket, and join the conversation in the #core and #6-8-release-leads channels. Need help? Check out the Core Contributor Handbook.
\n\n\n\nProps to @joedolson, @joemcgill and @audrasjb for proofreading.
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18445\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}s:27:\"http://www.w3.org/2005/Atom\";a:1:{s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:4:\"href\";s:32:\"https://wordpress.org/news/feed/\";s:3:\"rel\";s:4:\"self\";s:4:\"type\";s:19:\"application/rss+xml\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:44:\"http://purl.org/rss/1.0/modules/syndication/\";a:2:{s:12:\"updatePeriod\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"\n hourly \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:15:\"updateFrequency\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"\n 1 \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:4:\"site\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"14607090\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:48:\"WpOrg\\Requests\\Utility\\CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:12:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Wed, 09 Apr 2025 09:53:18 GMT\";s:12:\"content-type\";s:34:\"application/rss+xml; charset=UTF-8\";s:4:\"vary\";s:37:\"Accept-Encoding, accept, content-type\";s:25:\"strict-transport-security\";s:12:\"max-age=3600\";s:6:\"x-olaf\";s:3:\"⛄\";s:13:\"last-modified\";s:29:\"Tue, 08 Apr 2025 16:13:35 GMT\";s:4:\"link\";s:63:\"The third release candidate (“RC3”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC3 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC3 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-RC3 |
WordPress Playground | Use the 6.8 RC3 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts leading up to next week’s release for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC2, you can browse the following links:
\n\n\n\nWordPress is open source software made possible by a passionate community that collaborates and contributes to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users. For more details on developer-related changes in 6.8, please review the WordPress 6.8 Field Guide.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC3, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本? हिन्दी? मराठी? বাংলা? You can help translate WordPress into more than 100 languages.
\n\n\n\nThe launch draws closer,
Six-eight sings through RC3,
Almost time to shine.
Thank you to the following contributors for collaborating on this post: @audrasjb, @mamaduka, @krupajnanda, @benjamin_zekavica, @narenin, @joedolson, @courane01, @joemcgill, @marybaum, @kmgalanakis, @umeshsinghin, @wildworks, @mkrndmane.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Apr 2025 15:54:49 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"Do The Woo Community: Our Final Wrap of CloudFest 2025 with Robert, Zach and Carl\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=94070\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"https://dothewoo.io/our-final-wrap-of-cloudfest-2025-with-robert-zach-and-carl/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:205:\"In this episode of Dev Pulse, hosts discuss CloudFest 2025, highlighting unique event experiences, innovative hackathon projects, networking opportunities, and a preview of upcoming CloudFest USA in Miami.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Apr 2025 12:32:39 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:96:\"Do The Woo Community: Four Practical Steps Towards Inclusion for Content Creators and Developers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=85966\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"https://dothewoo.io/blog/four-practical-steps-towards-inclusion-for-content-creators-and-developers/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:305:\"In a past podcast our host Anne provided practical advice for content creators and developers to foster an inclusive environment. They are simple and to the point. Key suggestions included: You can hear the full episode here Exploring Accessibility and Neurodiversity in WordPress with Anne Mieke Bovelett\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Apr 2025 09:55:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"Do The Woo Community: Do the Woo v5.1 Changelog\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93974\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"https://dothewoo.io/blog/do-the-woo-v5-1-changelog/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:27:\"Four new co-hosts and more.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 07 Apr 2025 13:07:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:99:\"Do The Woo Community: Michelle Frechette Joins the Do the Woo Hosting Team for WordPress Event Talk\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93984\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:98:\"https://dothewoo.io/michelle-frechette-joins-the-do-the-woo-hosting-team-for-wordpress-event-talk/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"BobWP announces Michelle Frechette as the new host for WordPress Event Talk.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 07 Apr 2025 09:42:17 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"Gravatar: What is Gravatar? Basics for WordPress and Beyond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"http://blog.gravatar.com/?p=3019\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://blog.gravatar.com/2025/04/06/what-is-gravatar/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:17132:\"Have you ever noticed how your profile picture magically appears on some blogs, forums, or websites without needing to upload it each time? That’s the power of Gravatar. Since 2004, we have been quietly revolutionizing online identity, offering a consistent way to represent yourself across the open web.
\n\n\n\nGravatar stands for Globally Recognized Avatar. It’s a free profile for the web that uses your email address as its core identification system. This clever approach lets you maintain a single avatar and profile that follows you across major platforms like WordPress, Slack, and GitHub.
\n\n\n\nThe concept is simple but powerful. Instead of creating separate profiles on dozens of websites, Gravatar centralizes your online identity. With over 8.6 billion avatar requests served daily, it’s become an essential part of the online experience for millions of users.
\n\n\n\nIn recent years, Gravatar has expanded beyond just avatars Now, integrated websites can pull complete profile information from your Gravatar account. This improves the profile creation and onboarding processes, saving time and reducing friction when joining new platforms.
\n\n\n\nAt its core, Gravatar uses your email address as a unique identifier. When you comment on a blog or join a platform that supports Gravatar, the system looks up your email to find your profile information.
\n\n\n\nDon’t worry about privacy concerns. Gravatar doesn’t simply expose your email address to every website. Instead, it converts your email into a secure hash – essentially a one-way code that protects your actual address while still creating a consistent identifier. This technical conversion ensures your email stays private while allowing the system to recognize you across different sites.
\n\n\n\nAnother one of Gravatar’s most powerful features is its synchronization capability. Update your profile once, and the change instantly reflects across millions of integrated websites through the Gravatar API. This eliminates the hassle of updating dozens of separate profiles when you change your photo or information.
\n\n\n\nFor professionals, this creates an efficient way to build and maintain a consistent online persona. Want separate identities for work and personal activities? Simply create different Gravatars using different email addresses. This separation gives you complete control over how you present yourself in various contexts.
\n\n\n\nImagine never having to repeatedly upload profile pictures or maintain consistent information across multiple platforms. That’s the advantage Gravatar provides – centralized profile management that simplifies your online presence while maintaining your privacy.
\n\n\n\nEach time you visit a new website that supports Gravatar, your profile information automatically appears – no duplicate accounts, no forgotten passwords, and no inconsistent branding. Your carefully crafted online identity follows you seamlessly across the web.
\n\n\n\nAnd the best part? Claiming your Gravatar is completely free. Let’s walk through how to set one up.
\n\n\n\nThe process takes just a few minutes, but the benefits last for years. Once configured, your Gravatar becomes your digital passport, making it faster to join new communities and ensuring consistent recognition across the web.
\n\n\n\nRemember that your profile is publicly visible by default, so only include information you’re comfortable sharing.
\n\n\n\nNow that you’ve set up your basic Gravatar account, let’s look at ways to enhance its effectiveness.
\n\n\n\nIn the general settings, you can choose to hide your public avatar, make your profile private, or discourage search engines from indexing your profile. This flexibility lets you balance visibility with privacy.
\n\n\n\nAs you can see, you only need a little bit of effort, and you can end up with a well-optimized Gravatar profile that helps you:
\n\n\n\nGravatar has been deeply integrated with WordPress since 2007, when it was acquired by Automattic (WordPress.com’s parent company). This acquisition created a strong connection between these platforms that continues to benefit users today.
\n\n\n\nWhen someone with a Gravatar profile comments or posts on a WordPress site, the system automatically pulls their Gravatar profile to display as the author.
\n\n\n\nThis creates a consistent visual identity across WordPress blogs without requiring users to set up separate profiles on each site they visit. Your professional image follows you throughout the WordPress ecosystem, helping readers recognize you across different blogs and publications.
\n\n\n\nSite owners can easily customize how avatars appear on their WordPress sites through the dashboard under Settings > Discussion. This section allows administrators to enable or disable avatars, select maximum ratings (G, PG, R, X), and choose default avatars for users without Gravatars. Options range from generic silhouettes to generated patterns based on email addresses.
\n\n\n\nBut Gravatar extends well beyond WordPress. Major platforms like GitHub, Slack, and OpenAI also use Gravatar to provide consistent user images across their services. This widespread adoption means your professional identity remains cohesive across much of the web.
\n\n\n\nThe greatest benefit comes from Gravatar’s central management approach: Update your profile once, and those changes sync across all connected platforms. Whether you’ve changed jobs, updated your headshot, or refined your bio, you only need to make these changes in one place. This saves valuable time and ensures your brand presentation remains consistent no matter where your online activities take you.
\n\n\n\nGravatar gives you strong privacy controls to manage your digital identity. You can choose exactly which profile details to share publicly and which to keep private, so you always know who can see your data. Besides the settings you can adjust for yourself, Gravatar uses industry-standard measures like HTTPS to keep your data safe as it travels across the web.
\n\n\n\nHowever, even with these protections, it’s still a good idea to maintain separate profiles for work and your personal life. Using different email addresses for your work and personal Gravatars creates a helpful separation that prevents people from connecting different parts of your life. This approach also lets you customize privacy settings for each email address – keeping your professional presence polished while maintaining personal privacy.
\n\n\n\nOne of Gravatar’s key benefits is that it helps minimize your overall digital footprint. Instead of creating and managing accounts across dozens of websites and platforms (each with potential security vulnerabilities), you only need to update your personal information in one central location. This reduces your exposure to data breaches while ensuring your public-facing information remains accurate and up-to-date across the web.
\n\n\n\nReady to claim your digital identity? Getting started with Gravatar takes just a few minutes but establishes your online presence across thousands of websites instantly.
\n\n\n\nHere’s how to get your Gravatar profile up and running:
\n\n\n\nWith this single action, you’ll join millions of users on WordPress.com, GitHub, Slack, and other major platforms with your new globally recognized avatar. Your professional image will automatically appear whenever you comment, contribute, or interact across the web.
\n\n\n\nNo more maintaining separate profiles on dozens of websites. With Gravatar, you create one central identity that follows you across the internet, saving time while ensuring a consistent, professional presence everywhere you go.
\n\n\n\nCreate your free Gravatar profile today!
\n\n\n\nBirgit Pauli-Haack and JC Palmes talked about WordPress 6.8, Source of Truth, Field Guide, Gutenberg 20.5 and 20.6.
\n\n\n\nAdd a summary/excerpt here
\n\n\n\n\n\n\n\nShow Notes
\n\n\n\nZoom Out: Disabled when show template disabled #69777
\n\n\n\n\n\n\n\nStay in Touch
\n\n\n\nTranscript
\n\n\n\nBirgit Pauli-Haack: Welcome to our 116th episode of the Gutenberg Changelog Podcast. In today’s episode we will talk about WordPress 6.8, The Source of Truth, the Field Guide, Gutenberg 20.5 and Gutenberg 20.6, and a few other things, little things in between.
\n\n\n\nI’m your host, Birgit Pauli-Haack, curator at the Gutenberg Times, and a developer advocate working for Automattic. And it’s a great privilege for me to have with me, JC Palmes, who is the engineering manager at Web Dev Studios, again on the show. JC was also the local co-lead of this year’s WordCamp Asia in the Philippines, and it was a great WordCamp. So, congratulations. So glad you made it today, JC, how are you?
\n\n\n\nJC Palmes: I’m doing great. And, actually, my role changed since we’ve last had this. Yeah, so I’m now the principal technical manager at Web Dev Studios.
\n\n\n\nBirgit Pauli-Haack: Congratulations.
\n\n\n\nJC Palmes: Thank you. But yeah, I’m happy to be back. And things have been good, very busy, but the good kind. I’ve been deep in block themes again, so I’m excited about this episode. So, I’ve seen there’s a lot of cool stuff in 6.8 in the recent Gutenberg release I think developers like me will appreciate, especially those who are building for clients and working with starter themes.
\n\n\n\nBirgit Pauli-Haack: Yeah, absolutely. So, the first time you were on the show was last September in Episode 108, and you had just released the first version of the WSD, W-
\n\n\n\nJC Palmes: WDS-BT.
\n\n\n\nBirgit Pauli-Haack: … WDS-BT, yes, I’ll get it right, block starter theme, and we discussed it on the show. And after using it for half a year now, how are you doing with it, and what have you learned?
\n\n\n\nJC Palmes: Yeah, so it’s been a great journey since then. After six months, was it really just six months, of using and refining WDS-BT in real client projects, I’ve learned a lot about what engineers need from a starter theme, especially when working with the site editor.
\n\n\n\nAnd we’ve recently released Version 1.1, and most of the updates were based on feedback from our team, lessons from actual use in client sites, and one of the biggest things we focused on was making it easier to generate blocks and patterns consistently using our internal script, which is now part of BT as well.
\n\n\n\nSo, it’s all documented in the README if any developers out there want to try it out. So, this really helps streamline development for everyone. And we also have a demo site so that clients and internal teams and Sales can preview how the theme behaves out of the block. It’s been really helpful for onboarding and for setting clear expectations early on.
\n\n\n\nBirgit Pauli-Haack: Yeah, I can imagine that, yes, and with the scripts now. So, you just said you had two scripts. One is to create custom blocks, and the other one to patterns. That’s the first time that I’ve heard about it.
\n\n\n\nJC Palmes: Oh, sorry. Well, not… So, we have an internal script. So, BT is part of our other repo that helps us create a client site from scratch. And what that does is, there’s a script that I’ve added in where we can create a theme based on WDS-BT in five minutes, and it goes through all the process in the terminal, and then, after that, you have a full website theme working, a block theme working as is.
\n\n\n\nAnd the other one, which is part of BT, is in creating scaffolding blocks. So, BT comes with a block theme template that is baked into our custom webpack config. That webpack config is defaulting on WordPress config still, but we did add in a bit more flavor to it based on our use case.
\n\n\n\nBirgit Pauli-Haack: Oh, of course, yeah, that’s what it’s for, yeah, to adopt it, yeah. So, wonderful. So, dear listeners, we will share the links, one is to the theme, and also, to the demo site, in the show notes so you can test it out and see if it could also be your starter theme for your clients, and at least gives you…
\n\n\n\nJC Palmes: Yeah, that would be awesome.
\n\n\n\nBirgit Pauli-Haack: … and gives you some inspiration for that. And I’m always looking for inspiration about how people approach a topic, so I’m glad that you and your company share so much online and build it in public, and also, shared quite a few blog posts about it, not only about your theme, but also your approach on getting clients work from a classic theme, and then, gradually go block-based.
\n\n\n\nAnd I just listened to Brad Williams on the Press blog with Steve Birch. He interviewed him. So, I share that video as well in the show notes, and it starts out with what the approach is or how they approach it in terms of guiding clients through a block-based journey there when they were so happy with the other thing, yeah. And it starts at 20 minutes to get really into that. So, that was a really good conversation as well, with Steve Birch.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: So, we don’t have any announcement or listener questions today, but we have a few things that are community contributions or that I’ve selected, and one is pretty much the same topic. Kevin Devon and Mark Wilkinson from Highrise Digital, an agency in UK, shared their theme-building strategy for a school project at the London WordPress meetup.
\n\n\n\nAnd it was really insightful to see how these experienced theme creators use the site editor to build a theme, and then, let the client fully customize, also, their sites. They actually go pretty deep and show what block that they hide from the school, what block variations on the embeds that they hide, and how to do that. They even shared some code.
\n\n\n\nSo, it was quite fast-paced, but video, you can just stop it and listen to it again, and all that. Yeah, so it’s called Building a Block-based WordPress Site with FSE. Yeah, they also went pretty detailed in what kind of custom blocks they did.
\n\n\n\nAnd they actually didn’t program them themselves, they used ACF because of the data entry screens as well. So, they only did two. The rest was all core stuff, yeah. So, it’s really cool to see how that works out.
\n\n\n\nJC Palmes: I’ll have to check it out.
\n\n\n\nBirgit Pauli-Haack: Yeah, they do some great work at Highrise Digital as well. And I have three more videos, so to speak, or tasks for you, dear listeners. So, three well-known developers in the community continue with their live streams. They started either this year or long before, but Jonathan Bossenger, many know from the developer courses at Learn WordPress, has been learning working with AI, and he shares it, be it wins or losses, on the live stream.
\n\n\n\nAnd this week he tried to find out, can AI fix my Plugin Check issues? So, Plugin Check is a plugin that you install on your site when you develop a plugin, and then run through all the checks that the plugin review team has built so you are ahead of the curve when you submit it to the WordPress repository.
\n\n\n\nBut it’s not only good for when you submit it to the repository, it definitely helps you, also, with your own, even if you just give it to your clients also to beef up, check out some of the issues that are always problems.
\n\n\n\nYeah, so I cannot say because that’s a secret. No, you need to check it out themselves, how good he was, how good it worked for him. And the second one is JuanMa Garrido, he is from Spain, and is also a developer advocate at Automattic, and he shared live stream sessions in Spanish and English, not at the same time, of course.
\n\n\n\nJC Palmes: Okay.
\n\n\n\nBirgit Pauli-Haack: … me speaking Spanish, but no, he has one week he does this in Spanish, and the next week he does something else in English. So, that’s quite a good thing for the Spanish community as well.
\n\n\n\nAnd he recently livestreamed going through the Data Layers Course on Learn.WordPress and built the app in public, and goes through, not all lines of code, but he explains the concepts behind that, even…
\n\n\n\nWell, sometimes you need somebody to walk you through things so it actually clicks in your mind a bit, and that’s what JuanMa Garrido did. And then, Ryan Welcher is the pioneer of livestreaming…
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: … in WordPress, and he’s done it for, I think, almost three years, if not longer. And he livestreams every Thursday at 2:30 PM, UTC, on Thursdays, unless he’s on a meetup or at a WordCamp or on holiday. And he has been, recently, working on adding user profiles and user interactions to his Block Developer Cookbook, which is the base of all his workshops where he has a few recipes that he walks through.
\n\n\n\nIn live events or in-person events like WordCamps, people can vote on which recipe should be talked about. And so, it was quite interesting to see at the workshop at WordCamp Asia last year and this year, because every event is different, yeah.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: So…
\n\n\n\nJC Palmes: I missed that one. I wanted to be there, but with being a local lead organizer for WordCamp Asia, you can’t really be on the sessions that you want to be just because there’s a lot going on on the, you know?
\n\n\n\nBirgit Pauli-Haack: Yeah. And unfortunately, workshops are not recorded, as far as I can tell.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … because they’re also too long, yeah, and they are not a… So, a talk, when it’s recorded, it’s, most of the time, fast-moving because you only have 30 minutes or something like that, but when you have a workshop that is 75 minutes, it is a lot of downtime in the end. It’s moving at a glacial pace when you sit at home at YouTube. So, I totally get it.
\n\n\n\nBut you can check it out. We’ll share the Block Developer Cookbook repo in the site, in the show notes. So, you can definitely check it out. And maybe you want to get on the live stream with Ryan or JuanMa or Jonathan.
\n\n\n\nJC Palmes: Yeah, we’ll see what we can do about that.
\n\n\n\nBirgit Pauli-Haack: So, JC, what are the places that you watch for learning new stuff?
\n\n\n\nJC Palmes: Yeah, so I usually keep an eye on a few key places. The Make WordPress Core blog is, of course, a go-to because it’s where most of the important updates and demos get posted first, officially.
\n\n\n\nAnd I also follow what’s happening on the Gutenberg and WordPress GitHub repos, because the discussions there give a good sense of what’s being built and why certain decisions are made. There’s a lot there.
\n\n\n\nAnd of course, I check Learn WordPress pretty regularly, too, especially the developer workshops. I also stay actively lurking in Slack, mostly in Core Editor and Design. I try to catch Ryan’s live stream, always, when I have time, when I can, but I usually end up just going through the recorded ones on YouTube.
\n\n\n\nBirgit Pauli-Haack: Yeah?
\n\n\n\nJC Palmes: But yeah, they’re really great for seeing how things work in practice. And I read a lot of blogs, too. I can’t give you the list of the blogs that I read just because I don’t have a particular list. I just try to search for something that’s interesting based on the conversations in GitHub, and then, read through all the things.
\n\n\n\nBirgit Pauli-Haack: Yeah, excellent. Well, thank you so much for walking us through that. Yeah, I found the good with Gutenberg GitHub repo, really, there is so much there that it’s really hard to zone in on or zero in on the things that you, right now, need or wanted to explore.
\n\n\n\nSo, tracking issues are really good, and there is now a label that says Tracking Issues so you can see the history of a feature, how it worked out, or what’s in the pipeline. Of course, with the contributions being reduced, it’s going to be a little shorter…
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … or less features coming in, but sometimes it’s a good thing that there is a slower pace so everybody can catch up where they are. And I feel the same, yeah. I get the opportunity to dive a little deeper in all the things, although I was already, I have been quite deep into it, yeah. But if you don’t practice the skills to… it’s just superficial, yeah.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: But talking about the Make Core blog, WordPress 6.8 is in Release Candidate 2, and it’s only about 11 days away from final release. So, if you haven’t tested 6.8, now it’s really time, and you need to carve out a few hours to make sure that your themes and plugins actually work at the sites, work with it.
\n\n\n\nAnd that, of course, helps when you have a standardized system so you only have to check, mostly, one site, and then, some exceptions. But yeah, go and test it a bit. The Field Guide has the whole list of it, but it’s also a little bit overwhelming.
\n\n\n\nBut we can go through some of the dev notes that are in there, and we also have a link to The Source of Truth for the details on the block editor. So, the list of dev notes, I only had three or four stars in there. Now, you have all the stars in there. That’s cool.
\n\n\n\nSo, to explain that to our listeners, I had the list of dev notes, and I put an emoji star to it and said, “Okay, JC, let me know which one you want to talk about, and then we’ll kind of have…” And she checked all of them. It’s really cool.
\n\n\n\nJC Palmes: I did add in the smiley face to the ones that I think are really nice.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, I think that one of the major features coming on 6.8, I don’t know you how you feel about it, but for me it’s the speculative loading in 6.8, and it has such a great history because it comes out of a feature plugin that already had 50,000 installs in the last couple of years. So, what is it?
\n\n\n\nSo, speculative loading leads to near-instant page load times by loading the URLs that users might navigate to them already in the background. And the feature relies on an API that is now supported by many browsers.
\n\n\n\nIt’s called the Speculation Rules API, and it’s a platform feature so you can define the rules for which kinds of URL to pre-fetch or pre-render, and how early such speculative loading should occur. So, that’s in a nutshell, and has a lot of technical implications.
\n\n\n\nJC Palmes: I’m looking forward to this. This is one of the features that I really like, because I’ve been testing. So, for those who are using block themes, if you’re not, you should, speculative loading is already, it’s helping your site feel faster. You don’t have to enable anything, it’s just built in.
\n\n\n\nSo, just to add into what you mentioned about speculative loading, what it does is preload pages users are likely to visit next based on how they interact with the site. So, when they actually click the page, the next page is ready and it loads almost instantly.
\n\n\n\nBirgit Pauli-Haack: Yeah, it speeds up, yeah.
\n\n\n\nJC Palmes: Yeah. What I really like about it is that it improves performance without adding too much complexity. There’s no JavaScript to manage, no extra setup. It just quietly does its job in the background. And it’s one of those features that makes the experience better for users while keeping it very simple for developers, which I really like. Always a win in my book.
\n\n\n\nBirgit Pauli-Haack: Yes, yes, absolutely.
\n\n\n\nJC Palmes: Make it easy for me, yes, please.
\n\n\n\nBirgit Pauli-Haack: Yeah, yeah, it’s a win for you, but it’s also a win for the clients because their visitors are benefiting from that without any additional investment.
\n\n\n\nJC Palmes: Exactly.
\n\n\n\nBirgit Pauli-Haack: So, that’s the beauty of a WordPress open source system, that a lot of people work on it, and a few things just come with an update without costing a whole lot of money.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: But let’s go a little bit back to the block editor. The first thing is that the global styles are now actually available from the left side of the screen, yeah. So, you have everything that you need reachable from the black navigation bar, and you don’t have to switch from one side to the next. Yeah, you can all do it in there, which is really cool.
\n\n\n\nJC Palmes: That always trips me up. Having to go from left to right when having it on one side just makes total sense.
\n\n\n\nBirgit Pauli-Haack: Yes. Yeah. And what also started to, from in there, is that you can now also get the style book from there. And it’s a little bit more intuitive because when you click on the typography, you see, in the style book, all the blocks that have text in them.
\n\n\n\nAnd if you go to images or, what is it, no, color, then you know all the blocks that have color settings in them, which are quite a few now, but it’s easier to zero down on a problem or on a concern, kind of, “Let’s look at our images,” or, “Let’s look at our paragraphs,” or, “What are the styles for it,” and all that. So, it’s all there.
\n\n\n\nAnd the user can actually change some of the global styles to switch out for their sites. If they don’t like the green of the button, they can make it darker or make it blue or make it pink, and make it for the whole site. So, it’s an instant replacement there. So, I really like the global styles to be a little bit more accessible for my brain. Speaking of a style book, it’s now also available for classic themes…
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: … which was a long time coming, or when the style book came to block themes, it was an early request from theme developers to get it also for the classic theme, and that finally comes with WordPress 6.8.
\n\n\n\nJC Palmes: Yeah, that’s one of the features that I added a smiley on, because that’s big. So, having classic themes or hybrid themes able to access the style book is going to help a lot for those who are still on the fence about going full block, although they should, but it gives them that experience.
\n\n\n\nBirgit Pauli-Haack: Right, yeah. And also, the controls, yeah.
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: So, it’s an easing into the modern WordPress world, although there’s nothing wrong with staying on classic themes, but it’s so much nicer to work with a block editor, yeah. So, one of the confusions that has surfaced with the block theme is the confusion that, am I editing, now, a template, or am I adding a content page or grading a content page?
\n\n\n\nAnd it took about, I think, a couple of years to figure out, and I am not there yet, we are not there yet, but to make that easier too, because the whole concept of templates was something that WordPress users, before, had no touch points. It was all in code and it was all for the developer.
\n\n\n\nAnd unless the theme developer had a customizer, there was no need to think about templates, all that. But now, that concept has arrived at the user, and to get this right in the brain, it’s sometimes really hard. And now, they have added a switch to show the template in the editor or not.
\n\n\n\nSo, what that gives you is, when you grade a post and you click on the Show Template, you see where the featured image is and all the post content areas, and know, okay, when you click on the preview, it will show you, also, the whole page. Not only when you go to preview, but already in the editor, you see the whole page with header and footer and featured image and all that shows up. It takes the surprise out of it.
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: And the same with pages.
\n\n\n\nJC Palmes: If you say there’s a switch that just gets toggled on when you see everything outlined for you, because that just makes things less confusing. So, this is a good move.
\n\n\n\nBirgit Pauli-Haack: Yeah. And the switch is in the preview tab, in the top toolbar, when you click on the preview, then you see that tab has changed, it has additional features now. So, plugin developers, your email newsletter person plugin can see the email from your post if you needed to, and there is also the show template off and on. It’s just a check mark. And it’s really nice, yeah. And it goes together with a Zoom Out view. The Zoom Out view is nothing new with 6.8.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: It has been introduced to WordPress through 6.7, very rudimentary, but when you add a pattern to your page, it goes automatically to Zoom Out. So, you see more of it and you see the whole composition of it. Now, in the toolbar of that particular section or pattern that you just added, you can change the styles, if there are any, from the theme, and you can change the design.
\n\n\n\nSo, if you have a call-to-action pattern, clicking on Change Design gives you the other patterns that are call-to-actions, or in the same category, and if you click that little drop that’s in the toolbar…
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … yeah, you can browse through the styles for that particular call-to-action. And then, the Twenty-Twenty-Five theme, that’s actually quite nicely done. So, the developers of Twenty-Twenty-Five made a real good design system so you can just go through the color patterns for a particular section. It’s really nice.
\n\n\n\nAnd the option gives you only a few block options. So, in the tool block toolbar you see those two features, and in the dropdown of the three dots, you only get four options, that’s copy, cut, duplicate, and delete. There’s nothing else to do there.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah. I found, yeah, it’s still a discussion if it’s a bug or not. For me, it’s a bug, but other people find it, well, maybe it should be like that is, when you switch off the show template-
\n\n\n\nJC Palmes: Mm-hmm?
\n\n\n\nBirgit Pauli-Haack: … it also switches off the possibility of zoom view, because the zoom view is on a certain element in the template, the main element, and if that’s not there, the zoom view does not show. So, if you are waiting for the zo…m view to come in because you added a pattern, you need to just check Show Template…
\n\n\n\nJC Palmes: Check Show Template.
\n\n\n\nBirgit Pauli-Haack: … yeah, switch on Show Template, and then you get it back. Or you could use… Oh no, that’s the wrong one. I thought that was a shortcut, but the shortcut is not for the template, it’s for the Zoom Out view, and it’s shift + control + 0 to get the Zoom Out view, but only when Show Template is checked.
\n\n\n\nJC Palmes: Yes. That sounds like a bug.
\n\n\n\nBirgit Pauli-Haack: Yes. And I’m sharing that bug with you all so you can chime in. It’s an interesting discussion. Because it’s two different things. In my brain it’s two different things, and they shouldn’t be covered.
\n\n\n\nJC Palmes: Yeah, completely two different things.
\n\n\n\nBirgit Pauli-Haack: Yes.
\n\n\n\nJC Palmes: They’re not the same.
\n\n\n\nBirgit Pauli-Haack: Thank you. Well, the design tools, well, then 6.6 they started, and then, 6.7, they continued with it, and 6.8, I think, is pretty far that every block has all the design tools it needs. So, color options, border options, dimensions are now available for almost every block.
\n\n\n\nAnd there’s a dev note called the Roster of Design Tools per block, and you get a table with all the blocks in the list and which kind of feature they have and not have so you can…
\n\n\n\nJC Palmes: Oh, that’s nice.
\n\n\n\nBirgit Pauli-Haack: … a fast check, yeah. But it could use a few more features, like, the header comes down, but with the theme right now, it’s not possible.
\n\n\n\nJC Palmes: We have a pretty sweet table style in DEL, BT.
\n\n\n\nBirgit Pauli-Haack: Oh, okay. Well, I’ll see if I can replicate the full table and put it somewhere where I have access to plugins, because on the Make blog, yeah, there’s not a whole lot of…
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … the plugins all need to be tested and approved, and all that. So, did you get a chance to look at the Details block, changes there? Detail blocks was introduced, I think, in 6.7, I think, yeah.
\n\n\n\nJC Palmes: Yeah, I’ve been using the Details block mostly as an accordion FAQs…
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: … but this time around, I have not played around with the Details block when I was testing in 6.8.
\n\n\n\nBirgit Pauli-Haack: So, there are three different features that… So, one is that, if you have a list of the same things that you want to be controlled together, then you can give each one of the items, each Details block, so you have a set of three Details blocks and they’re all FAQs, for instance, so you can give them, in the the Advanced section, there is a Name Attributes field, and if you give them the name attribute, each one of them the same, then via CSS, you can control those at the same time.
\n\n\n\nAnd what also happens is that, when one opens, the other one closes, and vice versa. So, it feels more like a unit for that. And you see it that the FAQ thing, oh, I used FAQ here in the example, in the Source of Truth, and you see that it’s then attached in the CSS in the name field. So, they’re identically named, and then they’ve…
\n\n\n\nJC Palmes: That is a good one. So, we’ve usually added in a script to handle opening and closing the Details block as an accordion. So, having this baked in is big.
\n\n\n\nBirgit Pauli-Haack: Yes. And you can actually do it with a… a content creator can do this. So, the same developer can… yeah. So, this is really nice.
\n\n\n\nJC Palmes: This is nice.
\n\n\n\nBirgit Pauli-Haack: Yeah. Then, what’s also nice is that the summary content, like the question for an FAQ, for instance, is then also shown in the list view of the block editor so you can identify which one you’re working with. That’s so nice because that helps quite a bit.
\n\n\n\nJC Palmes: Yep.
\n\n\n\nBirgit Pauli-Haack: And then, you can also create anchor links for each block so you can separately link to them from other places, and developers have a chance to modify the Allow blocks attribute to make sure that only the right blocks are used in a Details block.
\n\n\n\nSo, there are quite a few things in there that makes it… I think that’s one of the biggest changes for WordCamp 6.8. When I was testing, I said, “Oh, this is neat. Oh, this is neat,” kind of thing.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: So, I like that, yeah.
\n\n\n\nJC Palmes: I like that one.
\n\n\n\nBirgit Pauli-Haack: And then, the other things, some of the changes on the blocks are minimal, but still, quality of life changes. So, the Gallery block now has one link, or one way to put the link to open bigger…
\n\n\n\nJC Palmes: Yes, because having to…
\n\n\n\nBirgit Pauli-Haack: … and not for every…
\n\n\n\nJC Palmes: … do it on every single image when you’ve had more than 10 images there is not nice.
\n\n\n\nBirgit Pauli-Haack: I would have said two, I would have said two images. If you have more than two, you don’t want to do this for every image, but yeah.
\n\n\n\nJC Palmes: I’m a bit patient with galleries just because, but know 10 is my max, so…
\n\n\n\nBirgit Pauli-Haack: Yeah. No, but that is really good that you, just going through the tool while make sure they have the gallery parent, select it, go in the toolbar, and then you can select the Enable click to expand. The image block now has a feature, has a way from the blocks settings that you can, when you load it into your post, that you can say, “Okay, make this image my featured image,” and you don’t have to delete it and then load it again.
\n\n\n\nYou still need to delete it if you don’t want it doubling up on your post. When you display featured images with a single post template, then you have that image in twice. But yeah, kicking out or deleting a block is easy.
\n\n\n\nJC Palmes: Yeah. But that update is a subtle but powerful workflow update because there’s no need to switch context, just to set a featured image. That saves time if you have to do it more than twice.
\n\n\n\nBirgit Pauli-Haack: Yeah. If you do two posts a day for every day, you’re really happy about that type of saver, yeah. And you don’t have to think for it so much, yeah. Because a lot of people have a website that does really nice things with featured image, but it falls down when they forget the featured image there.
\n\n\n\nThat is something that they might… It prevents that people post something without the featured image. And then, the image block also has some handling. You can crop things and you can, well, mostly crop, or what else can you do with an image block, I forgot.
\n\n\n\nJC Palmes: Mostly crop.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: Resize.
\n\n\n\nBirgit Pauli-Haack: And now, you actually know that things happen because there are little notifications on the bottom of the screen that, “Oh, yes, we had to crop this,” yeah.
\n\n\n\nJC Palmes: Yes. That always trips me up because when you crop an image, I always have to double-check, “Was it really cropped?”
\n\n\n\nBirgit Pauli-Haack: “Did it work,” yeah. And I hate that question, “Did this work,” or, “What happened,” yeah.
\n\n\n\nJC Palmes: Yeah. You just know it works when you look at the URL.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: It actually looks different.
\n\n\n\nBirgit Pauli-Haack: Yeah, it does, yeah. So, the Query Loop block, have you seen what’s coming in with that?
\n\n\n\nJC Palmes: So, this Query Loop block change is actually something that we, I guess, this is something that we wanted to fix way back. So, that is, that hasn’t been part of WDS-BT. It’s fixing WDS-BT, but with 6.8 having the same fix, I will have to remove that fix so that we’ll have the default one.
\n\n\n\nBirgit Pauli-Haack: Yeah. Which feature are you…
\n\n\n\nJC Palmes: It’s a long time coming. The sticky post for a Query Loop block where it’s adding in not being counted when you set a…
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah, there are two things. One was already in there. It excludes the sticky posts. But now, there’s a new…
\n\n\n\nJC Palmes: They ignore one.
\n\n\n\nBirgit Pauli-Haack: They ignore one, yeah, where you can… And that means that the sticky part of that post is ignored, and it will behave like the other filters.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Like, if you do it by date or you do it by category or by tag, or something like that, it’s not sticking up on top on any of those sites. So, it’s a little hard. So, “excluding” means, none of the sticky posts are showing, and “ignore the sticky post” doesn’t mean ignore the sticky post, it ignores the sticky part.
\n\n\n\nJC Palmes: It’s having them go back to just a usual post not being counted as sticky, because sticky is sticky, it sticks to the front.
\n\n\n\nBirgit Pauli-Haack: Yeah, or the top, or whatever.
\n\n\n\nJC Palmes: Yeah, at the top.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, there’s also a sorting option by page. So, for pages, you now can order by page order, in ascending order or in descending order. So, if you have pages and have parents, and then you have that, or have it in a certain order, the Query Loop can be sorted by that.
\n\n\n\nSo, when you want to show them in a… Why would you do that? Oh, if you’re in navigation, or something like that, or it’s some pages and you want it all in the same, in a real good order there. So, that’s certainly something that’s new.
\n\n\n\nJC Palmes: Yeah, that is new. Usually, when we need to do that same order by, we usually do it custom just so we’re able to do it that way. So, this is huge.
\n\n\n\nBirgit Pauli-Haack: Yeah. I really like it because I had, often, use cases where they had a parent page about a certain topic, and then, sub-pages that go deeper into it, and they all needed to be on one page, and had featured images so you can really do nice grids, but if they’re in a different order, it… So, you really want them in the right order.
\n\n\n\nYeah, get everybody confused. And then, there is another feature in there that comes out of the Zoom Out view, but it’s the button in the toolbar for the Query Loop, for the group block that holds everything together so you can change the design.
\n\n\n\nSo, if you grab a pattern for the Query Loop, and after thinking about it for two minutes you don’t like it, you don’t have to throw it out again. You just click on Change Design, and then, you get a another list of the other possibilities how you can put it together.
\n\n\n\nJC Palmes: Yeah, I like the Change Design link.
\n\n\n\nBirgit Pauli-Haack: Yeah, very cool.
\n\n\n\nJC Palmes: It’s a game changer. You don’t have to… Again, it’s a quality of life…
\n\n\n\nBirgit Pauli-Haack: Absolutely, yeah. And you can now get the Query Loop for pages for all levels. Yeah, so you can say, “Okay, on the main page, I only want the sub-pages to show, but not the main page,” kind of thing. Yeah. And so, it’s really interesting.
\n\n\n\nAnd The Source of Truth as well as the PR, they had an example query, so you can test it out, a pattern there. So, you can go through that. Yeah, that was the Query block, right? So, next thing is the new block, the Query Total block.
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: And it just shows the number of posts or pages in that particular query, and you can also add it to the pagination, or something like that, 10 of 12 kinds of things you get there as well. And it’s quite nice.
\n\n\n\nJC Palmes: One functionality that I need to recheck to see how that…
\n\n\n\nBirgit Pauli-Haack: Recheck on your theme, yes.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah, I can imagine, yeah.
\n\n\n\nJC Palmes: That is built in as well. There’s a lot of updates in 6.8 that we fixed in BT that we have now to retest…
\n\n\n\nBirgit Pauli-Haack: Remove.
\n\n\n\nJC Palmes: … and remove as needed, which is quite nice, because it’s all going to be default functionality now. You don’t have to fight against the system.
\n\n\n\nBirgit Pauli-Haack: Yeah. And you have somebody else maintaining that part of the code?
\n\n\n\nJC Palmes: Right now it’s me and whoever is available at the moment.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nBut it’s the whole set of contributors that-
\n\n\n\nJC Palmes: Oh, yeah, of course.
\n\n\n\nBirgit Pauli-Haack: … maintain that.
\n\n\n\nJC Palmes: Exactly.
\n\n\n\nBirgit Pauli-Haack: Yeah. And you don’t have to think about, “Oh, we had a customization there, so let’s figure that out.”
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: Okay.
\n\n\n\nBirgit Pauli-Haack: So, while that was all going on in the release cycle and I was talking about things, I got a question that people who had a hard time finding or making sure that the Query Total block shows up, they couldn’t find it, it only shows up when you’re inside the Query Loop. It’s similar to the pagination. So, if you’re outside the Query Loop in your canvas, it doesn’t show up in the inserter because it has nowhere to go.
\n\n\n\nJC Palmes: Yeah, it has nowhere to connect to.
\n\n\n\nBirgit Pauli-Haack: Right, yeah. Well, you and I know that, but it’s not an easy concept for people.
\n\n\n\nJC Palmes: Oh, yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: I have to always think about that because…
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: … sometimes I just think in the developer mindset. So, it’s a switch.
\n\n\n\nBirgit Pauli-Haack: Yeah. Yeah, and sometimes it’s just surprising what is clear to me or others in the field. A new user or another content creator says, “How does that go? How does that work? I can’t find it.”
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, the Social icon has minimal changes, but one is that it now also has the Discord icon. So, if you want to link to your Discord profile or Discord server, you can do this in the Social icons block, and it now also has, you can use the arrow keys to navigate to the link. You don’t have to go twice on adding the URL to whatever new Social icon you added.
\n\n\n\nJC Palmes: Yes.
\n\n\n\nBirgit Pauli-Haack: So, it’s really streamlining the process. Oh, I’ve just skipped over it. The Separator block can be, now, really expanded because you can add a different tag for it. The Separator block has only an HR tag until now…
\n\n\n\nJC Palmes: The HR, yeah.
\n\n\n\nBirgit Pauli-Haack: … the horizontal line. And now, you can actually replace it in the advanced HTML element section of the block and make it a diff. So, then, all the CSS that you can do with any other diff, you can now apply to the Separator block, and makes it a nice, it can be a nice decorative tool for your theme and for your site.
\n\n\n\nSo, I think that transformation really helps with all that setting. Additional setting helps, really, with styling, adding more styling possibilities. I was just saying transformation…
\n\n\n\nJC Palmes: I guess we’ll be using the Separator block more?
\n\n\n\nBirgit Pauli-Haack: Yeah, it can be interesting breaking up the wall of text when you have some decorative stuff there. I can see that, for instance, the little pattern things that you had in WordPress Asia website, that they could be a little bit more [inaudible 00:41:53] instead of just an image, or something like that, yeah.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: I was talking about transformation there, but I was just reading Transformation. What you now can also do is transform a Separator block into a Spacer block. So, yeah, there’s also one of the workflow improvements that come with 6.8. I don’t know if we have to go through the editor changes, all of them?
\n\n\n\nI think there are two new commands. One is, Add a New Page, and the other one is, I totally forgot. My God. Open the Site Editor. When you are somewhere in pages or something like that and you want to just go back, you don’t have to click 15 times to get back to the design tools.
\n\n\n\nNo, you just do Open Site Editor, CTRL + K, and then, start with Site Editor, and it gives you the option already in the command palette that flows on top of your screen.
\n\n\n\nJC Palmes: Oh, keyboard shortcuts too.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: There are two new ones, right?
\n\n\n\nBirgit Pauli-Haack: Yeah, it’s the…
\n\n\n\nJC Palmes: Pace, block styles with Command Control, and option…
\n\n\n\nBirgit Pauli-Haack: Oh, good.
\n\n\n\nJC Palmes: We didn’t… Yeah, that one. That set’s going to get heavy use.
\n\n\n\nBirgit Pauli-Haack: Yes.
\n\n\n\nJC Palmes: From me at least.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: And then, that shortcut, you can now paste block styles.
\n\n\n\nBirgit Pauli-Haack: Right, yes.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: You can copy-paste block styles over. That’s fast. You can really do that. So, the next thing, what I really like is, the Starter Content is now available for… You can switch that off. That’s the first thing. So, if you add a new page, it automatically comes with Starter Content, if the theme provides them, in a modal.
\n\n\n\nThat gets in the way to get started with what you want to do. Some people like it and some people don’t like it. It’s the 50-50 thing. But some people… So, you can switch it off. So, you can toggle that Show Starter Content Patterns off, and you can also change it in the Preferences.
\n\n\n\nBut you can also find them in the categories of your patterns. It says Starter Content. So, if you do want to see them, you can just go there and get a list of the starter content for that particular post type.
\n\n\n\nJC Palmes: Yeah, that one I have not tested yet, but that will be useful for clients who have very particular styles for a custom post type. With the toggling on and off of that feature, is that available per custom post type or is that a global setting?
\n\n\n\nBirgit Pauli-Haack: It’s a global setting. Show Starter Content Patterns, that’s a global setting, but Starter Content, until 6.8, wasn’t available for other custom post types.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah, but now it is. So, you can, if you’re just in the header of the pattern, you say that’s also for your custom post types, when you do add new custom post type, it also shows the starter content, which wasn’t available before.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: So, that’s really cool.
\n\n\n\nJC Palmes: Yeah, that’s cool.
\n\n\n\nBirgit Pauli-Haack: Yeah, that’s definitely a good feature request for an enhancement to at least provide a filter for theme developers to switch it off for certain post types, and on for other posts. And speaking of theme developers, now you could have your patterns in different folders so it’s not all in the patterns folder, like, Twenty-Twenty-Five has, I don’t know, 80 patterns in one folder?
\n\n\n\nJC Palmes: A lot.
\n\n\n\nBirgit Pauli-Haack: Now, you can… And I had to do, with the name of the file, I had to sort it, like, H or CTA, dot, dot, dot. Now, you can have folders like Patterns, CTAs, and I’ll put them all in there, or Patterns and Testimonials, or something like that, yeah.
\n\n\n\nSo, it’s a little bit more organized in your theme folder, and I really like that, yeah, because I’m also a fan to having separate style folders. So, I have styles for blocks and a style for other things.
\n\n\n\nJC Palmes: Yeah, that’s what we do with BT as well. So, styles are there included in folders if it’s words. I forgot what I was going to say. Yeah, just making sure that you have styles in the block folder.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: And being able to do that for patterns is…
\n\n\n\nBirgit Pauli-Haack: Pretty organized, yeah.
\n\n\n\nJC Palmes: … yeah, that’s going to make things a lot more organized, because we don’t need more than 80 patterns in one single folder.
\n\n\n\nBirgit Pauli-Haack: Yeah. Maybe you don’t need any patterns, period, but some people actually, then, need them for a larger site…
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: … and then, you can sort it out through the folders, yeah. Because you have the categories, and if you make the categories also be your folders…
\n\n\n\nJC Palmes: Your folders.
\n\n\n\nBirgit Pauli-Haack: … yeah, it helps. So, that was what I wanted to… Well, we talked a lot about the block editor kind of thing, but I really like that because it’s such a neat tool, and we need to dive in, sometimes, really deeper into the features.
\n\n\n\nNow, for the developers, the Field Guide is out, and I definitely urge you to look at that and skim it at least for things that are interesting to you. There have been a ton of accessibility improvements, and Joe Dawson, the team rep of the Accessibility team has done a fine job putting that together so you can really see what has changed and what has been improved upon.
\n\n\n\nThere are also some developer-related changes for the block editor in the miscellaneous block editor dev note. I think George Mamadashvili did that. He was also the editor tech lead for the release, or is, yeah. It’s not out yet.
\n\n\n\nAnd it definitely also deals with deprecations of being experimental, coming stable, or deprecated kind of thing. So, you definitely want to check that out to make sure that you have that on your radar when things get deprecated.
\n\n\n\nJC Palmes: Yeah, I always make sure that I check that because you can’t have deprecated machines, especially in client sites.
\n\n\n\nBirgit Pauli-Haack: Yeah. And when they’re announced through the console… So, sometimes clients tell me, “Okay, I get this yellow… What does it mean?” I said, “You have to ignore it.”
\n\n\n\nJC Palmes: It’s for styling. Just ignore it.
\n\n\n\nBirgit Pauli-Haack: And then, there is a post about the interactivity API best practices by Felix Arntz, and also, Avoiding Deprecation Warnings is part of the headlines there. But definitely, if you are working with the interactivity API, definitely check it out. It gives you quite a few interesting pointers there.
\n\n\n\nOh, there is a more efficient block-type registration. This is also from Felix, yes. Now, you can register multiple blocks in one function so it doesn’t have to be called over and over again, which is definitely a performance improvement, and also, you don’t have so much code in it then. Check that out.
\n\n\n\nJC Palmes: Yeah, I’ll check that out, because I’ve added in another custom function that allows us to do that just in one function.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: You don’t have to call it out multiple times.
\n\n\n\nBirgit Pauli-Haack: Yeah, right, yeah. So, anything in the WordPress 6.8 that you wanted to talk about that we skipped here?
\n\n\n\nJC Palmes: Definitely, the new filter, because that’s going to be…
\n\n\n\nBirgit Pauli-Haack: Oh, the Should Load Block Asset on Demand.
\n\n\n\nJC Palmes: On Demand, yes…
\n\n\n\nBirgit Pauli-Haack: Yeah, explain that to me.
\n\n\n\nJC Palmes: Yeah. So, with that new filter, it really just allows developers to make sure that blocks will only load their assets, the styling, and the scripts for that block when it’s actually on a page.
\n\n\n\nBirgit Pauli-Haack: Oh.
\n\n\n\nJC Palmes: When it’s used on a page. So, that was available for core blocks before. Let me just… There’s one other filter, I think, that is part of that.
\n\n\n\nBirgit Pauli-Haack: Should Load Separate Core Blocks
\n\n\n\nJC Palmes: Should Load Separate Core Block Assets, that one we are using on BT, just handled differently. Again, custom function because we do have custom blocks that I would want to not load, because by default, that loads, right? So, with BT, that only loads when it’s actually used.
\n\n\n\nI would have to change to this new filter because this one is more efficient. It just does it out of the box. So, with Should Load Separate Core Block Assets, it does two things, it loads the core blocks, and then, with the Total Block library script, with all of the styling and stuff, and then, the scripts and the style sheet for that particular block, what this new filter does is, it loads, yeah, I mentioned that, it only loads the script and the styles for that block, not the entire thing.
\n\n\n\nBirgit Pauli-Haack: So, like…
\n\n\n\nJC Palmes: So, that’s going to be a lot of improvement. We do that already, which means I have to change that function to this new filter, which is amazing.
\n\n\n\nBirgit Pauli-Haack: Yeah. You were definitely ahead of your time.
\n\n\n\nJC Palmes: Because we need to fix things when WordPress is not yet ready to fix it because we need that function right away.
\n\n\n\nBirgit Pauli-Haack: Right.
\n\n\n\nJC Palmes: We can’t just wait. But glad that what we’ve done for BT is being done by default now.
\n\n\n\nBirgit Pauli-Haack: Yeah, you can rip it out. All right, my dears, dear listeners, we are all through the 6.8 release so far, and I hope you find some really good things in there. Now, we’re coming to Gutenberg 20.5.
\n\n\n\nAnd don’t be alarmed, and we have 20.6, but there are not a whole lot of new things or mentionable enhancements that we want to mention here. So, we’ll still, probably, stay within the time of our podcast, although there is no time. It takes as long as it takes, like many other things in life.
\n\n\n\nJC Palmes: Because there’s a lot.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, 20.5 Gutenberg Plugin, it has the updated edit site link for the admin bar that now goes, actually, back to the site editor and not to the page that you were actually on or the template that you were on.
\n\n\n\nSo, that confused a lot of people because every time you clicked on it, you were on a different page. So, sure, every time you click on it, to go to the same page. So, that is really good.
\n\n\n\nThe Create Block Package now supports blocks manifests and the relevant core APIs by default. That needed a little bit of bug fix in there, but that is now… It also has to do with the multiple blocks, right?
\n\n\n\nJC Palmes: Mm-hmm.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: So, this one, I think, is a huge deal because having it aligned better with core and the support manifests by default means there’s less guesswork and just better starting point for custom blocks.
\n\n\n\nBirgit Pauli-Haack: Yes. Yeah, absolutely, yeah. So, the Block button, if it’s used in the navigation bar, now also has… So, when you’re in a navigation bar and you add another link, if it’s a custom page link, it offers you creating a new page, but not with a button. So, now, when you add a button to it, also gives you the capability to draft a new page, which is really nice. So, you can use those buttons more.
\n\n\n\nWhat else is in there? So, the Data View Actions, as a plugin developer, you can use a modal to do whatever the action is. And now, you also have the possibility that you can control the size of the modal so it’s not the same size every time.
\n\n\n\nAnd you have a lot of white space there, or you can focus on certain things. Now, you can actually control the size through props. That’s developer speak, but you will appreciate that.
\n\n\n\nJC Palmes: Of course. There are a couple of updates there that make me smile.
\n\n\n\nBirgit Pauli-Haack: Which one?
\n\n\n\nJC Palmes: The Trailing Period Cleanup and the Defaulting Back To, the 100 PX Spacer Block default.
\n\n\n\nBirgit Pauli-Haack: Oh. Yeah.
\n\n\n\nJC Palmes: These are really just petty things for me, but I’m glad that people find them weird as well. So, they’re fixing it and adding it back, thank you.
\n\n\n\nBirgit Pauli-Haack: Good, yeah. So, there’s a change in the Data Views, which comes on par with the WPA, the old page things where you have the pages listed in the admin as a sub-page if you have sub-pages like… So, hierarchical kind of dimension there.
\n\n\n\nJC Palmes: Yeah, hierarchical and not a flat thing. And that helps.
\n\n\n\nBirgit Pauli-Haack: And that now came, also, to the Data Views. So, you have a cluster, the way you actually designed it or put them together. So, I’m sorry, there’s a little…
\n\n\n\nJC Palmes: I’m also reading through.
\n\n\n\nBirgit Pauli-Haack: Yeah, I need to read through that.
\n\n\n\nJC Palmes: Oh, the mobile one.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: So, when I test VT, I always test on multiple interfaces, like you should, and that also includes editing.
\n\n\n\nBirgit Pauli-Haack: Oh, yeah, editing on mobile, yes.
\n\n\n\nJC Palmes: Editing on mobile is a lot easier.
\n\n\n\nBirgit Pauli-Haack: Oh, now, yeah. That’s good, yeah. What else do we have? That’s pretty much for 20.5.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Yeah. There’s also the documentation about the WP scripts with the build blocks manifest has been updated as well. So, you can read up about it. And the Color Experimental Duotone has been removed from core blocks, but I hope they’ll keep it in. That is stabilized now. So, it’s called Filter Duotone instead of Color Experimental Duotone.
\n\n\n\nSo, it’s just a rewording of things, and also, to make it stable so people are more inclined to use it in their custom blocks as well, because some people shy away from experimental stuff because they don’t know how it will turn out.
\n\n\n\nJC Palmes: Usually, they change their name, which is going to be the case here. I don’t think we have… So, for our client projects, we usually do shy away from the experimental stuff just so… It needs to be as stable as it should be-
\n\n\n\nBirgit Pauli-Haack: Well, that makes total sense.
\n\n\n\nJC Palmes: … in my personal projects still, yeah. I do use that in my… Well, I play around with all of the experimental stuff on my own theme.
\n\n\n\nBirgit Pauli-Haack: Yeah, it’s fun, right?
\n\n\n\nJC Palmes: You end up seeing all the things that get broken on the next update, which is fun.
\n\n\n\nBirgit Pauli-Haack: Or you at least can start prognosis, like, “Which one gets broken first,” kind of thing.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: Makes begging easier. So, that was Gutenberg 20.5.
\n\n\n\nWe are now coming to Gutenberg 20.6, and there are additional features in there that are not coming to 6.8, except for the Enabling the Startup Pattern for all post types. That was back-ported to 6.8, but the others are…
\n\n\n\nI don’t think that the keyboard shortcut to paste styles is actually in 6.8. I think that’s in the Gutenberg plugin, and it doesn’t have the, yeah, it does not come to 6.8.
\n\n\n\nJC Palmes: That’s sad.
\n\n\n\nBirgit Pauli-Haack: That’s sad. Oh, so sad.
\n\n\n\nJC Palmes: I liked that.
\n\n\n\nBirgit Pauli-Haack: Yeah. So, they’re adding support for more granular controls for the Table of Content block, which also hasn’t made it to Core yet because it needs a little bit more finessing.
\n\n\n\nJC Palmes: Yeah.
\n\n\n\nBirgit Pauli-Haack: But if you use it in your private sites, or while some people, like me, are brave or are stupid, depending on the perspective, they use Gutenberg.
\n\n\n\nJC Palmes: They use it on…
\n\n\n\nBirgit Pauli-Haack: Yeah, Gutenberg production.
\n\n\n\nJC Palmes: Yes. But this Table of Content block controls things that I love.
\n\n\n\nBirgit Pauli-Haack: Yeah.
\n\n\n\nJC Palmes: But again, it’s one of those almost-there blocks.
\n\n\n\nBirgit Pauli-Haack: Yeah, yeah. And what we are talking about right now is that you can select the heading levels. So, if you want all the H2s in there, then you can say that, oh, you want all H1 to H2 to H6 in there, you can say that too, or anything in between.
\n\n\n\nSo, it’s a nice setting on the sidebar for the Table of Content. And I think I tweeted out a little video to show that off, but… When I was testing it, I said, “Oh, this is nice.” Yeah. Then, whereas the navigation bar has…
\n\n\n\nJC Palmes: Navigation, yeah.
\n\n\n\nBirgit Pauli-Haack: … it gets a transparency slider for the sub-menus background, which is highly appreciated. But also, that is not yet in. It just came in in 20.6.
\n\n\n\nJC Palmes: Just began in 6.8 too.
\n\n\n\nBirgit Pauli-Haack: So, that is out. So, 6.8, just so, if you want to go back and look at things, 6.8 has Gutenberg plugins from 19.4 to 20.4. So, with 2020. And most of the time, only bug fixes get back-ported to the current version, but then, new enhancements are not going to make it there.
\n\n\n\nIn 20.6 Gutenberg Plugin, you also get a new option for opening the links in a new tab for the RSS block. And that is something that a lot of people wanted, and now, we have it. Now you can shortcut for pasting styles. Was that the 20.6 already?
\n\n\n\nJC Palmes: Yeah, that’s the 20.6…
\n\n\n\nBirgit Pauli-Haack: Yeah, it was a small release because most of the Gutenberg developers like George Mamadashvili, Fabian Kägy, Akiyama Anu, and a few others, they were all really, in the release cycle, occupied with that. So, yes. But that’s it. We are almost at the end of our show.
\n\n\n\nWell, thank you, dear listeners, and thank you, JC, for sticking it out with me and having a discussion on that. It was wonderful to chat with you about the things. And dear listener, as always, the show notes will be published on Gutenbergtimes.com/podcast.
\n\n\n\nThis is Episode 116, and if you have questions and suggestions or news you want us to include the next time, just send them to changelog@gutenbergtimes.com, that’s changelog@gutenbergtimes.com. So, this is it.
\n\n\n\nThank you, JC, thank you, all, listeners, for being with us again. And hello, all the new ones that we gathered, new listeners we gathered on all the different podcast apps. Well, I wish you a great weekend, everyone. Well, the weekend will be over when you get to read this. So, I wish you a nice weekend, JC.
\n\n\n\nJC Palmes: Thank you.
\n\n\n\nBirgit Pauli-Haack: And until the next time, thank you.
\n\n\n\nJC Palmes: Thank you.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 06 Apr 2025 09:21:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:120:\"Gutenberg Times: WordCamp Europe, New Chart block, GitHub Deployment, and can AI fix my plugins? — Weekend Edition 324\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=38289\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:123:\"https://gutenbergtimes.com/wordcamp-europe-new-chart-block-github-deployment-and-can-ai-fix-my-plugins-weekend-edition-324/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:22695:\"Hi there,
\n\n\n\nHow is your block theme knowledge coming along? The slower pace of Gutenberg development is a blessing in disguise. I will take the opportunity to dive deeper into block themes, styles, block and section styles, and block development. I definitely also see a need to skill up my CSS. What is it that you need to learn?
\n\n\n\nIt sounds funny coming from me, as I’ve been knee-deep in Gutenberg development all this time. Still, if I don’t actually practice the skills I acquired, I lose them. That’s why I decided to tackle the migration of the Gutenberg Times website to a block theme. A step was long overdue. I’ll post about my progress.
\n\n\n\nAnd now it’s time to see what others created, and I discovered during the week.
\n\n\n\nEnjoy your weekend and get some rest.
\n\n\n\nYours, 💕
Birgit
WordCamp Europe will take place June 5 – 7, 2025 in Basel, Switzerland. This week organizers announced that they already sold over 1,000 tickets, already. They also published the program schedule. It’s a great mixture of many topics and perspectives.
\n\n\n\nAt first glance, here are my top sessions.
\n\n\n\nBonus: Two Playground sessions:
\n\n\n\nSpecial treat: Mythbusting and Q&A about appearing in Google Search with Danny Sullivan, Google.
\n\n\n\nWant to meet me in Basel? Send me the link to your calendar or use mine bit.ly/WCEUMeetBirgit.
\n\n\n\nThere is a new kid on the block. In his post, WPCoven: Introducing A New Voice Covering the WordPress Ecosystem, Alex de Borba, CEO at Atmostfear Entertainment, introduced a publication. WPCoven will cover developments related to the Block Editor. It will also share best practices for its applications within the WordPress & WooCommerce community. 👋 Sending a hearty “Welcome to the space” to WPCoven. I will certainly watch the feed.
\n\n\n\nMary Hubbard posted the takeaways from a meeting with Core Committers and Matt Mullenweg. You can read the full meeting recap in Dotorg Core Committers Check In. The TL;DR about releases is:
\n\n\n\nI also expect, we will read more about canonical plugins in the future.
\n\n\n\nGeorge Mamadashvili released Gutenberg 20.6 version.
\n\n\n\nrel
attribute. (69641)JC Palmes, Principal Technical Manager at WebDev Studios, living in the Philippines, and I chatted about the Gutenberg releases 20.5 and 20.6. We covered WordPress 6.8 extensively, too and discussed the starter theme WebDev Studio has built. It was a great joy to chat with JC Palmes again.
\n\n\n\n🎙️ Latest episode: Gutenberg Changelog 116 – WordPress 6.8, Source of Truth, Field Guide, Gutenberg 20.5 and 20.6 with special guest JC Palmes, WebDev Studios
\n\n\n\nThe editorial team at Codeable published a tutorial titled Easy Ways to Edit Your WooCommerce Product Page Design. You learn how to change the WooCommerce product page without altering core WordPress files by creating a new plugin. This method lets developers change the layout, design, and functionality using filters or hooks. Developers can make changes by focusing on specific parts like the product image, description, price, and currency. This approach avoids disrupting other sections of the page. This strategy keeps code clean and ensures functionality. It’s advised to use a child theme for WooCommerce plugin modifications to prevent conflicts.
\n\n\n\nBud Kraus‘s latest tutorial teaches How to make block content hide or appear in WordPress. He helps website owners learn to use the Block Visibility plugin, which is often misunderstood and underused. By installing the plugin, Kraus demonstrates how to hide specific blocks in a page or post. This provides more flexibility. It also allows for further customization. This method allows website owners to create dynamic layouts, improve user experience, and boost performance.
\n\n\n\nNick Schäferhoff walks you through the steps on How to Build a One-Page Website with WordPress . He explains how these single-page sites can be super effective for modern websites. They allow users to easily navigate. Users can find what they need quickly. Schäferhoff also shares some tips on how to make the site visually appealing. He advises on ensuring it is user-friendly. This makes it easy to get started with this trendy web design approach. The instructions detailed, and you also find excellent screenshots so you won’t get lost.
\n\n\n\nA new Chart block plugin has arrived at the WordPress plugin repository. It was created by the folks at BdThemes, a WordPress product company from Bangladesh. The plugin is called Advanced Charts for Gutenberg Blocks Editor. Give it your data via CSV file and it assists create a visualization for it. It has many customization and design tools.
\n\n\n\nIf you only need basic chart tooling and designs, SB Chart Block by Herb Miller is ideal. From the block Inserter in the editor, search for “Chart” and you can install it right from within the editor.
\n\n\n\nAt the WordPress Meetup in London, Keith Devon and Mark Wilkinson, Highrise Digital, presented their theme building process. They demonstrated this process for a school project. I found it quite interesting to listen to the long-time theme builders. They approach building a theme with the site editor and offer the full range of editing tools to their clients. Here is the recording: Building a Block-Based WordPress Site with FSE
\n\n\n \n\n\nBenjamin Intal and his crew at Stackable are super excited to share the New Stackable Global Design System! This update is designed to make life easier for developers. It helps them create consistent and cool designs across different websites. You’ll find loads of ready-made components, typography, colors, and more to play with. It’s crafted to simplify the design process and cut down on the usual headaches for developers. Or so they claim.
\n\n\n\n “Keeping up with Gutenberg – Index 2025”
A chronological list of the WordPress Make Blog posts exists. It includes contributions from various teams involved in Gutenberg development. These teams are Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. The past years are also available: 2020 | 2021 | 2022 | 2023 | 2024
Jonathan Bossenger livestream about his question: Can AI fix Plugin Check issues? He recently adopted a WordPress plugin that was closed due to security flaws and other code issues. Can AI help him resolve these issues faster than he could himself? Let’s find out.
\n\n\n \n\n\nJuanMa Garrido continued his series Data in the Block Editor with @wordpress/data. He presented Part 3 of building the app. This part is from the course Using the WordPress Data Layer. This course aims to get you comfortable with the WordPress data layer. It’s a JavaScript library used throughout the WordPress editor to read and write data. You can catch up on Part 1 and Part 2 of the series via YouTube.
\n\n\n \n\n\nRyan Welcher has been live-streaming on Twitch every Thursday at 14:30 UTC. Over the last two weeks, he focused on adding user profiles to the Block Developer Cookbook. He worked on Part 1 and Part 2. You’ll learn how to create an Author Archive template. You’ll also learn how to create an Author page layout while handling user metadata for display. Part of the experience of Welcher’s livestream is also method on debugging code and code review.
\n\n\n \n\n\nIn his latest video, Nick Diego introduced you to an awesome developer tool: How to use GitHub Deployments on WordPress.com. “Whether you’re building custom themes, plugins, or managing full-site deployments, integrating GitHub with WordPress.com offers a powerful and efficient approach to code management. In this video, you’ll learn how to connect a GitHub repository to your WordPress.com site using GitHub Deployments.”
\n\n\n \n\n\nFor the latest episode of the WPTavern Jukebox podcast, 163 – Birgit Pauli-Haack on the Magic of the WordPress Playground, I joined Nathan Wrigley. We talked about my experiences with the WordPress Playground. I shared how I created complex and interactive demos using the Playground. I even brought them online as fully functional websites. We discussed the power of storytelling in web development. You can use the Playground to experiment and learn new things.
\n\n\n \n\n\nNeed a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience
\n\n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
Featured Image: Image by ta98mori from Pixabay
\n\n\n\nDon’t want to miss the next Weekend Edition?
\n\n\n\n\n\nMarcus Burnette over at TheWP.World recently made a swag store and very kindly created some HeroPress swag!
\n\n\n\n$5 of each sale goes to support ongoing operation at HeroPress, so we appreciate your support!
\n\n\n\nHere’s what’s available:
\n\n\nSo be sure to stop by the HeroPress swag store!
\nThe post HeroPress Swag! appeared first on HeroPress.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 04 Apr 2025 14:00:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"Do The Woo Community: Do the Woo Friday Shares, April 4, 2025 v13\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93923\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://dothewoo.io/blog/do-the-woo-friday-shares-april-4-2025-v13/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"Shares from the WooCommerce, WordPress and Open Web Community.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 04 Apr 2025 13:44:29 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:10;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:115:\"Do The Woo Community: The Power of Photography, Translation and Contributing with V Gautham Navada and Bigul Malayi\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93848\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:113:\"https://dothewoo.io/the-power-of-photography-translation-and-contributing-with-v-gautham-nevada-and-bigul-malayi/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:210:\"In this episode, guests V Gautham Navada, and Bigul Malayi discuss contributions to WordPress, highlighting the significance of photography and translation in enhancing community engagement and business growth.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 03 Apr 2025 14:17:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:11;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:94:\"Do The Woo Community: Why User Feedback and Internal Testing Drive Smarter Feature Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93508\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:98:\"https://dothewoo.io/blog/why-user-feedback-and-internal-testing-drive-smarter-feature-development/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:206:\"User-centric development by involving support teams in feature planning and conducting beta tests. The approach leverages internal tools and data-driven insights to enhance product functionality and design.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 03 Apr 2025 10:07:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:12;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"WPTavern: #163 – Birgit Pauli-Haack on the Magic of the WordPress Playground\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=193436\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"https://wptavern.com/podcast/163-birgit-pauli-haack-on-the-magic-of-the-wordpress-playground\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:52923:\"Transcript[00:00:00] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case what the WordPress Playground is, and how it’s transforming the scope of WordPress.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you or your idea featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.
\n\n\n\nSo on the podcast today, we have Birgit Pauli-Haack. Birgit is a longtime WordPress user, an influential voice in the WordPress community. She’s known for her role as the curator at the Gutenberg Times, and host of the Gutenberg Changelog podcast, and she brings her wealth of experience as a Core contributor to WordPress as well.
\n\n\n\nShe joins me today for an in-person conversation recorded at WordCamp Asia in the Philippines, and we are discussing Playground, a remarkable development that’s set to redefine the WordPress development landscape.
\n\n\n\nPlayground allows users to launch a fully functional WordPress instance directly in their browser, without the necessity of a server, database, or PHP, playground breaks down barriers, offering developers, product owners, educators, and everyone in between a new way to interact with WordPress.
\n\n\n\nWe explore how this technology not only simplifies the testing and development process, but also sets the stage for more interactive and immediate web experiences.
\n\n\n\nWe explore the concept of Blueprints within Playground, tailored configurations that enables a bespoke user experience by preloading plugins, themes, and content. This feature helps developers to present their work in a controlled environment, offering users an insightful hands-on approach that can significantly enhance understanding and engagement, and it’s all available with just one click. It really does eliminate the traditional hurdles associated with installing WordPress.
\n\n\n\nIf you’re curious about how the WordPress Playground is set to usher in a new era of friction free web development, this episode is for you.
\n\n\n\nIf you’re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you’ll find all the other episodes as well.
\n\n\n\nAnd so without further delay, I bring you Birgit Pauli-Haack.
\n\n\n\nI am joined on the podcast by Birgit Pauli-Haack. Hello Birgit.
\n\n\n\n[00:03:28] Birgit Pauli-Haack: Oh, hey Nathan.
\n\n\n\n[00:03:29] Nathan Wrigley: We’re actually looking at each other, not through a screen.
\n\n\n\n[00:03:32] Birgit Pauli-Haack: Yes. It’s a total different feeling.
\n\n\n\n[00:03:34] Nathan Wrigley: Yeah. Birgit And I chat a lot on various other channels, and it’s a pleasure having you right in front of me. That’s lovely.
\n\n\n\n[00:03:39] Birgit Pauli-Haack: Yeah, same here. I’m always glad we meet at a WordCamp.
\n\n\n\n[00:03:42] Nathan Wrigley: Yeah, thank you. So that’s the introduction then because here we are, we’re at WordCamp Asia, in the Philippines. It’s the first day of the conference in general. We had the Contributor Day yesterday, and we’ve got another day tomorrow.
\n\n\n\nAnd we’re going to have a chat with Birgit who is going to be talking to us today about Playground, because you’ve got a slot at the event all about creating a demo in Playground. And we’ll get onto that in a minute. But first of all, for those people who don’t know who you are, just a few moments for your potted bio. Tell us about yourself.
\n\n\n\n[00:04:09] Birgit Pauli-Haack: So I’m the curator at the Gutenberg Times and I’m the host on the Gutenberg Changelog podcast. And I also am a Core contributor to WordPress, and I work for Automattic. I live in Munich and I’m married, 37 years.
\n\n\n\n[00:04:22] Nathan Wrigley: There we go. That is a very potted bio. Thank you, I appreciate that.
\n\n\n\nSo here we are, we’re going to talk about Playground. And I figured the best place to start is answering the question, what is Playground? And just before we hit record, it was pretty obvious that both you and I are very excited about this. And so I want to encourage people to really pay attention because this genuinely, for me is one of the most exciting developments, not just now, but ever, in WordPress. It truly is a transformational technology. But for those who don’t know what it is, just tell us what Playground is.
\n\n\n\n[00:04:54] Birgit Pauli-Haack: I’m totally with you there on the magic, yeah. And it’s not just for WordPress, it’s for web development. So WordPress Playground is a WordPress instance in your browser. Yeah, you go there, put in playground.wordpress.net. You get a full WordPress instance in your browser, and you can add plugins, you can themes, you can content. Test it out. Whatever you do with that and want to learn with Playgrounds, you don’t need a server, you don’t need a database, you don’t need PHP installed or something like that. So it’s just there.
\n\n\n\nAnd for someone who has been in the web development for many, many years, it’s like magic. Because before you’re always kind of, oh, where do I host things? What’s with the database? What’s with the server? And it’s all gone. Yeah, so it’s really cool.
\n\n\n\n[00:05:43] Nathan Wrigley: I think probably it’s best on this particular podcast to avoid the technicalities, but I would point the listener to a podcast that I did on the WP Tavern with Adam Zielinski several months ago now, where Adam came on and tried, in an audio form, it’s very hard to do, but explained in an audio form exactly what the underpinnings are.
\n\n\n\nAnd the only words I can use to describe it are, it’s voodoo. It is literal magic. Just two or three years ago, if you’d have said that Playground was possible, I honestly would’ve thought that you were talking nonsense. It could not happen. That will never happen.
\n\n\n\n[00:06:18] Birgit Pauli-Haack: Snake oil.
\n\n\n\n[00:06:18] Nathan Wrigley: Yeah, exactly. And yet Adam managed to pull it off. And so just to re-explain what Birgit just said, it’s all in the browser. When you go to playground.wordpress.net, there is no server. Just say it again, there’s no server. There’s no PHP that you need to install on your local machine. It all happens inside the browser. Close the browser down, it goes away. We’ll come to that. Maybe that’s changed.
\n\n\n\nBut the idea is it’s happening in the browser, and so you can have any combination of website that you like immediately inside of Playground, and it really is remarkable.
\n\n\n\nI liken to the moment that the iPhone got the App Store. The iPhone was a very useful thing to have. You know, it did phone calls and it looked beautiful, and you could upload music to the phone with a cable. And then along came the App Store, and suddenly a thousand, a million, different developers could get their hands on it and tell you, here’s a different way you can use the iPhone. And here’s another way, and here’s another thing that you can do. And it feels a bit like Playground is WordPress’ moment like that. You know, it just suddenly prizes the lid open, and makes developers able to show you what they’ve got in a heartbeat.
\n\n\n\n[00:07:25] Birgit Pauli-Haack: Yeah. And that’s pretty much, that’s a very good analogy because we also have a Blueprints gallery that could be something like an app store where you can learn how you can assemble it. So the core technologies is not not, I don’t know any of the technology that’s underlying. It’s based on Web Assembly. And that has been around for about 10 years, trying to get a lot of different programming languages talk to each other in the browser.
\n\n\n\nAnd then it’s based, not on MySQL, but on SQLite database. And then Service Workers and worker Threads API, that are browser APIs. For storage, for instance, yeah, or for sending commands to other different applications. But that’s all I know, yeah. I have never worked with Web Assembly, yeah. And MySQL, I know that, just really amazing.
\n\n\n\nSo you can use that. Many people use it to spin up a fully functional WordPress and demo that. So you can use it in educational settings. You don’t have to download a whole lot of stuff. You don’t have to, as a teacher, you don’t have to set up, talk to your IT department to set up a server for all the students. You can just point them to the Playground and then give them instructions on how to work with that.
\n\n\n\nIt’s a sandbox environment. It could be, yeah, if you want to. You can upload your content and then see what else can you change with it without messing with your live site. You can integrate it with your development. There is a WP now, VS Code extension where you can, so when you’re working on your plugin and you click on the button, it loads up a local Playground for you with the plugin that you’re working on already installed, and that’s really cool.
\n\n\n\nSame with the theme. The training team has been working on interactive demos in terms of having code examples on one side, and then you make changes to the code and you see it in the right hand side. How it changes the website. So that’s really cool.
\n\n\n\n[00:09:20] Nathan Wrigley: I think one of the things that you said there, you’ve got an understanding of some of the underlying technologies, but you were stressing that, basically you don’t need to understand them. Having a knowledge of them is fun, you know, it’s interesting. But a bit like I don’t have the faintest idea how to build an iPhone app, but I can still use an iPhone. And I can still benefit from this application, the maps, navigation app. I don’t need to understand how that’s built, but I can use it, it works.
\n\n\n\nAnd really that’s, I think the purpose. The developers over there, thank you so much, but most people are never probably going to want to get into the weeds of that. They just want to click the button and see what happens.
\n\n\n\nAnd just to be clear on this, if you’ve never done that, I, at my home, have a fairly good internet connection, so I don’t know if I’m in a sort of slightly privileged position, but when I click the button at playground.wordpress.net, I’m imagining it’s somewhere in the order of three to four seconds before that website is ready to go. Basically it’s the length of time it takes me to blink and grab the mouse again. It’s in a heartbeat. So there’s literally no friction.
\n\n\n\nBut if you go to playground.wordpress.net and click the button, what you’re going to get there is a vanilla version of WordPress, which is fine. Then you can do whatever you like with that, put plugins in, what have you. But wouldn’t it be interesting, wouldn’t it be great if somebody came up with, oh, I don’t know, let’s call them Blueprints or something like that, where you could pre-build something that then somebody else could use.
\n\n\n\nSo this is the App Store, isn’t it? You know, somebody’s built the maps navigation app. Somebody’s built the note taking app. Somebody’s built the whatever. This feels like what the Blueprints are. But I want to make sure that you are describing it and not me because I am not sure that I’ve encapsulated it perfectly.
\n\n\n\n[00:11:00] Birgit Pauli-Haack: No, you did. But in opposite to the App Store, you actually can look at other people’s Blueprints and steal them. Blueprints are written in JSON has nothing to do with Jason. It’s JSON. It’s a data format for JavaScript. And there is a schema for it, so when you put it into your code editor, it gives you signals, yeah, that you formatted right.
\n\n\n\nAnd then you have two different ways of configuring your Playground instance. One is to do settings. So you could do which PHP you want to use? Which WordPress version do you want to use? Also, do you want to have network enabled? And most of the time you want it enabled because you want to import and install themes or something like that. Those are the settings.
\n\n\n\nAnd then you have steps. And those steps are also just formulated in JSON format. For instance, you can log in. Automatically log in the person in the Playground. Or you can say, I have a landing page that should land, so when somebody uses that blueprint, when Playground is ready to completely load it, you should land in the block editor, for instance. And you should have that particular block plugin already active on that post, so you can really play with blocks. Nick Diego with his plugin Block Visibility has done a great way for a live preview of his block from the repository.
\n\n\n\nAnother way is to, so install a plugin, add content to it. Use WP-CLI to instantly load up new versions, add new pictures, or use an export from another website, an XML file from another website and load it into the Playground instance.
\n\n\n\nBut sometimes you have, you said you get the vanilla if you just do that, if you just do playground.wordpress.net, you get the vanilla WordPress. But it’s one post, Hello World, and it’s one sample page. But you don’t see how content kind of interacts with whatever feature you want to demo. So you need some content there, yeah. And the Blueprints Gallery has actually some nice examples on how to configure that.
\n\n\n\n[00:13:08] Nathan Wrigley: Let’s come back to the gallery in a minute. Just to recap what you just said. So there’s a bunch of settings, probably more for developers. You know, you might want to test something in a particular PHP environment or what have you, so you can select those. And then you can do these steps where you can essentially design, if somebody was to use that Playground and somebody was to click on your link, they would wait the 2, 3, 4 seconds, whatever, and then, depending on the steps that you’d set up, they would arrive where you chose them to be.
\n\n\n\nSo for example, you might pre-install the latest, greatest plugin that you want to share with the world. And you want people in a post for that. And you want them inside the block editor. And you can make it so that upon clicking the button, the first thing they get is, we’re inside your plugin, we’re about to use it. So the profundity of that is pretty amazing. You can really tailor the experience.
\n\n\n\nSo rather than going from being like Playground, which sounds like children, you’re messing about, larking about a little bit. It also becomes like serious ground a little bit, you know? Serious developers can use this to circumvent, I don’t know, support tickets, the capacity to demonstrate to users who’ve never seen your product before, your plugin, your theme, or whatever it may be.
\n\n\n\nYou can point them to a link. They can click the link. You as the developer configure everything within an inch of its life, so they get exactly where you want them to be. And in that way you can use it as a sales mechanism, as a support mechanism.
\n\n\n\n[00:14:29] Birgit Pauli-Haack: And sometimes it’s really hard to tell people what your plugin does unless you show it them in the video. But then they still don’t get their hands on it. And with that feature, with the Playground combined with the Blueprints, you can actually make them feel the thing. How it works with them, and what ideas they get when they play around with it, and have better questions, educated questions for you, for the product, yeah.
\n\n\n\n[00:14:51] Nathan Wrigley: So a Blueprint then is a version of Playground in which somebody has pre-configured things. Is that basically what it is? You know, let’s say that I have got this fabulous new plugin and I want you to experience it. I don’t necessarily want you to land on a particular page, but I just want the plugin to be available to you and you can do things.
\n\n\n\nIf I install my plugin, use Playground to do that, I can then share a link. And because I’ve tinkered with it, it becomes a Blueprint because it’s not the playground.wordpress.net version, it’s my doctored version, adapted version.
\n\n\n\n[00:15:26] Birgit Pauli-Haack: Well, it also goes to playground.wordpress.net, but it has a query parameter, to be a little technical term, that says, use the blueprint at this URL. So a plugin developer for the repository, at the repository there are live preview buttons now. And the plugin developer can put in a separate directory Blueprints on the WordPress site, put all the assets, all the image that they want to load, and the configuration file, which is written in this JSON file, and put it there, and then make that live. And every time someone clicks on the preview button, they go to playground.wordpress.net with the Blueprint kind of loaded, the configuration files.
\n\n\n\n[00:16:09] Nathan Wrigley: So it’s all happening through playground.wordpress.net. But then there’s JSON configuration file, which gets sort of sideloaded, if you like, through the URL. That tells it, okay, add this and then end up here and what have you. The important part is that JSON, that’s what makes it the Blueprint. It’s going to playground.wordpress.net, but the JSON file means that it does something else.
\n\n\n\nAnd you said the word gallery, which tells me that there’s a whole host of these things. Pre-configured, pre-built, put into a box if you like. And we can go to that gallery and explore. What kind of stuff is in there?
\n\n\n\n[00:16:38] Birgit Pauli-Haack: So, what kind of stuff is there? So there’s one, how do I put an admin notice on top of the dashboard? How do I add a dashboard widget and load it up with my Playground? So most of the time, when you want to log into a WordPress site, you get the dashboard. And if there’s a widget, you can actually guide people to go some other places. You can say, okay, I have a plugin that needs 50 posts, for whatever reason. So there is a Blueprint there and how to use WP-CLI to create 12 or 50 posts automatically, that are then loaded into the post content.
\n\n\n\nSo there’s also a Blueprint for a specific WooCommerce extension. So it loads WooCommerce, it loads the extension, it loads some products, and then you land for a shipping page where you can say, okay, this shipping plugin, what does it do for me? And you see it working with products on a Playground site. So that is really remarkable. It takes a little longer when you have content to load.
\n\n\n\n[00:17:38] Nathan Wrigley: Goes up to like 10 seconds.
\n\n\n\n[00:17:40] Birgit Pauli-Haack: So you go and get your coffee and come back.
\n\n\n\n[00:17:42] Nathan Wrigley: But it’s still profound.
\n\n\n\n[00:17:43] Birgit Pauli-Haack: Yeah, remarkable. Yeah, you don’t have to do anything, kind of just wait a bit.
\n\n\n\nWhat else is in there? Oh, there is a demo of 2025. So when you load 2025 theme automatically and go to your website and see it, you get the post, the blog site, where all the posts are in one one big site with the full content. And not a whole lot of people have that kind of blog. And in the demo, you actually go to the magazine front page, and then see all the patterns that are in there. You can see all the templates in that Playground demo.
\n\n\n\nThat’s interesting for plugin developers that have experimental themes or experimental settings on the settings page that you can actually preload them as well. There’s an example in there for the Gutenberg experiments. They’re on the check marks on a setting site. And you can take that and replicate that for your own plugins site, how to do that, with the areas.
\n\n\n\nBecause you can do site options. So the site options is not only site title and tag descriptions, also, oh, make my block editor have the top toolbar instead of all the other things or the distraction free model, yeah. So these kind of features, you can also preload there and have examples from the Blueprints Gallery.
\n\n\n\n[00:18:57] Nathan Wrigley: I think we’re just at the beginning really, aren’t we? Of of this journey. And basically, the underlying technology is now provisioned. It’s there. And we’re at point where, okay, people, developers, explore. And we’re really just at the beginning of that. And the gallery is probably a good place to go.
\n\n\n\nBut if you wanted to put one of these JSON files together, do you know, is there some credible documentation out there that would help people to get started, learn the ropes?
\n\n\n\n[00:19:25] Birgit Pauli-Haack: Yeah, there’s definitely, there’s documentation of all the steps that are there, yeah, like how to run PHP, how to have additional PHP extensions installed and all that. So when you open the Playground, there are three, and you’re not going to the full page, so you have three panes. On the left hand side you have some menus, and one of them is the documentation link. So that’s good.
\n\n\n\nAnd another link is there, it’s the Blueprint Gallery. So in the middle of the section of your Playground, you see all the list of all the gallery content. And then when you click on the preview or the view site, the Playground loads that for you, and then there’s another menu item where is says, view Blueprint. And that gives you a Blueprint editor.
\n\n\n\nSo you see the Blueprint loaded in, but then when you want to edit from the documentation, okay, what happens when I put that in? And you click the run button, and it reloads that Playground with your changes. So it’s really, very hands on, and you still don’t have to create a server or a local environment or something like that.
\n\n\n\n[00:20:31] Nathan Wrigley: Yeah, there’s this really virtuous cycle of, okay, so you’ve used something from the gallery, but you’re curious about how it works. Look, here’s how it works. Here’s the buttons to click to go and explore. Oh, and whilst you’re at it, if you want to edit anything, here’s the option to edit it. And when you click save, it’ll restart that whole thing and you’ll get the new version.
\n\n\n\nSo all of the sort of helpful tooling is now built into it. Because when I talked to Adam, none of that existed. I mean, the version selection for PHP didn’t exist. The ability to land people on particular destinations when they first load up the playground, none of that existed. It was literally the technology of getting it working.
\n\n\n\nSo now built into it is this knowledge base, if you like. Not really a knowledge base, but more, you want to know how this one works? We’ll show you. And it’s that beautiful, well, the purpose of WordPress, democratising publishing. In this case, it’s democratising the nuts and the bolts, and the bits and pieces of publishing.
\n\n\n\nYeah, so that’s really nice. And that’s all built inside. So just follow the prompts in the UI, and you can adapt what you want, and what have you. But also there are some 101 articles out there, perhaps on Learn or something like that where can see in text format how do all.
\n\n\n\n[00:21:40] Birgit Pauli-Haack: Yeah, the developer blog has, on developer.wordpress.org/news has three articles about Playground. One is about the underlying technology from the Web Assembly people. That was really good for those who want to explore that even further.
\n\n\n\nAnd then there is one on what use cases you can do with a little bit of an example. And then also, so we are right now always talking about playground.wordpress.net. But you mentioned something that someone could put this on their website, and you can.
\n\n\n\nPlayground can be self-hosted. It does not have to go through the wordpress.net site. But how to do this is in the documentation. It has a seperate section there. So if you say, okay, I don’t have my plugin in the repo, but I want to use it through my own website, then you can actually put it there, and it’ll have your own branding around it. So it’s even get further than just the WordPress part.
\n\n\n\n[00:22:35] Nathan Wrigley: So that’s a really important distinction to make. So in the cases that we’ve been talking about so far, if you want to go to playground.wordpress.net and you use your own JSON file, it will be able to suck in anything from the WordPress repo. And that’s the sort of, the WordPress way, if you like. I’m doing air quotes.
\n\n\n\n[00:22:51] Birgit Pauli-Haack: Also from GitHub.
\n\n\n\n[00:22:52] Nathan Wrigley: Oh, thank you. Yeah, that’s an important distinction. I’d forgotten that. Also from GitHub, but you know, it’s everything that’s open source out there, free to download already.
\n\n\n\nBut a big part of the WordPress community, one of the things that makes it popular, is the ability to sell commercial plugins. And so that was another question that I had. Is possible to do it?
\n\n\n\nAnd so, yes, but you need to take the technology that builds WordPress at playground.wordpress.net, you put that onto your own server, and you can do whatever you like with that. So you can put your premium products in there on a, I don’t know, two day free trial sort of basis, and show people how that all works.
\n\n\n\nSo Playground suddenly becomes more interesting outside of the free to play area as well. And you can imagine that being a really, really useful tool. Because we’ve always been able to play fairly straightforwardly with free things on the repo, but suddenly the moment where you’ve got to pay $100 for a thing, the capacity to see that really is the bit which opens the wallet.
\n\n\n\nOkay, it’s $100, maybe I’ll buy it, maybe I won’t. It’d be nice to see it. Okay, they’ve got a 14 day trial, but I’ve still got to pay for it. This opens up the capacity to, look, there it really is. Play with it for two days or whatever it may be. That’s fascinating.
\n\n\n\n[00:24:05] Birgit Pauli-Haack: Absolutely, yeah. And if you want to test that plugin, yeah, you still would need a local server or a hosting server to load it on. And you have that 14 day trial. And now you can really test it right now.
\n\n\n\n[00:24:16] Nathan Wrigley: Right. And that’s the other big thing. Because if you buy a commercial plugin, you then have to spin up a site somehow. You have to download the plugin, upload the plugin, get the plugin configured. This gets rid of all of that, because you don’t need to download and upload anything, and it can be pre-configured.
\n\n\n\nSo the author of the plugin can say, okay, if you want to use my LMS plugin for this kind of thing, here’s playground version with everything just right. And if you want to do it for this kind of thing, I don’t know, you’re an elementary school teacher who might use my LMS plugin in this way, or you’re a university lecturer, who might use it in this way. Let’s build it a perfect version for you.
\n\n\n\nAnd you can imagine that a million times over for all the commercial plugins out there. You know, form plugins. Okay, this is the contact form that we’ve pre-built. This is the, I don’t know, the form which integrates with WooCommerce or whatever. So the developers can do all of this. And that really makes it super useful to them.
\n\n\n\n[00:25:11] Birgit Pauli-Haack: Yes, absolutely, yeah. What’s coming down the pipeline for Playground. One is that you can also use it with private GitHub repos. Which right now is not possible, but it’s in the works. And there was a problem with the proxy, that you get some cross site downloading errors because some servers are not set up to have images downloaded from a machine. They have created a proxy server now, where that is kind of circumvented that you can also from non WordPress sites download stuff, like images and content, or PHP plugins.
\n\n\n\nWhat also comes is, so SQL, MySQL, for some plugins Playground does not work yet, because they use very specific MySQL query, the union query, for instance. Select union and other commands like that. The SQLite doesn’t have those yet. And they are however working on it to replicate these kind of behavior of a database also with Playground. So to make it even more compatible with all the plugins that are out there.
\n\n\n\nI think they did a test of 10,000 plugins that are in the repo, and test every month kind of how many plugins don’t work with it yet. And they got it down from, I think 7% to 5%. So it’s always kind of progressing very well towards zero.
\n\n\n\n[00:26:33] Nathan Wrigley: Yeah, there’s a lot of things going on in the background that the likes of you and I probably, you know, because we’re curious about it, we’ll probably know about, but maybe the average listener who’s not wedded to this subject maybe doesn’t. But that’s really interesting.
\n\n\n\nSo the intention is to get it so that more or less anything works in more or less any scenario. And really nicely putting it out there so that you can do things which aren’t bound to GPL, WordPressy kind of things, if you know what I mean. So, you know, you can use your commercial product over here, and you can use your GitHub repo over here. That’s really nice.
\n\n\n\nMy understanding is that when Adam began it, he was immediately repurposed. So Adam Zielinski, he was an, was, still is, I think, an Automattician. And I think that it was immediately understood, this is profound. Let’s get Adam on this full time. You know, it’s no longer a hobby project. But I also think that he’s got other people from Automattic involved. There’s like a little team around it now, pushing the development of that. Is that still the case? Is this a team which is growing, or stagnating at, well not stagnating, maintaining at a certain number?
\n\n\n\n[00:27:33] Birgit Pauli-Haack: Well, it’s growing in scope. So they’re also working, and that was a focus starting in last fall, that they’re working on using Playground for the Data Liberation Project. And that’s what Adam was doing also full-time now in the last few months. That he looks, okay, what kind of parser do we need to do really good data liberation from other systems, or from WordPress?
\n\n\n\nYeah, because the import and export in WordPress only gets you so far, yeah. And there are some quirks in there, and they want to really have a perfect data liberation through Playground. They have a browser extension. It’s all beta right now. It’s not functioning yet. But it’s really coming along quite nicely.
\n\n\n\n[00:28:20] Nathan Wrigley: So Data Liberation then is this very laudable project of being able to bring into WordPress, I guess data liberation on some levels is the whole point of open source really, isn’t it? Is that you can grab your data and just pick it up and take it somewhere else.
\n\n\n\n[00:28:34] Birgit Pauli-Haack: Open content.
\n\n\n\n[00:28:35] Nathan Wrigley: Right, yeah. It’s your content. This platform is no longer being used, or you’ve fallen out with it. You know, you no longer love it in the way that you did. You want to now move it here. And you’ll be able to, let’s say, go Joomla into WordPress, Drupal into WordPress, or as you said, WordPress into WordPress.
\n\n\n\nWhich suddenly kind of opens up the whole idea of migrating websites, which a real mess frankly. It’s a really difficult thing to do. And I often think that people are bound to products and services that they’re purchasing on a monthly basis because the migration process is so difficult. And they don’t want to be caught up in all of that because things can go wrong. You know, it might not work perfectly and there’s all the just carrying it out.
\n\n\n\nBut if you can essentially do migrations, and Playground is the sort of go between. It’s the bit which talks from, I don’t know, one hosting company to another. So it goes from hosting company A to Playground. Playground then serves it up to hosting company B, which is where you want to end up. And all of that happens through Playground. That’s remarkable. And you can do the inspecting in the middle bit, the middleware, Playground if you like. Check it’s all working before you deploy it. That’s amazingly powerful.
\n\n\n\n[00:29:41] Birgit Pauli-Haack: Yeah. And that’s actually the vision of Playground’s part of Data Liberation. They also have a browser extension to kind of identify a non WordPress site, the various pieces like the pages, the posts, the news, the events, kind of the custom post types. And then kind of teach Playground what it all is. But that’s kind of, it’s very technical on one side, but it’s also, you need to have a total different concept about content management systems to actually make that. So that’s not really for a normal consumer.
\n\n\n\n[00:30:13] Nathan Wrigley: Yeah, because if you’re coming from Drupal and you’ve got like 1,000 different modules in there, you know, think plugins in the WordPress space. Then it’s going to be difficult to one-to-one map that over to WordPress. But the endeavor is to do a half decent job and in the middle you can step in and say, okay, this might need modifying, that might need modifying. And then you can go back to your Drupal install, change things a little bit, try again because it takes no time to do it. That is really a key, interesting part. You do kind of wonder actually if hosting companies in the future will just offer Playground in as part of their bundle, you know, their onboarding migrating bundle.
\n\n\n\n[00:30:47] Birgit Pauli-Haack: Yeah. A lot of hosting companies have their own plugins for that. So I know that Pressable and SpinupWP, they all have their, or wordpress.com has their own plugin that they then connect with. I think it’s BlogVault most of the time. Pantheon, same, yeah. Where you can migrate in. But that part in the middle, that kind of always takes a long time.
\n\n\n\nAnd you are bound to the hosting company to actually offer that, yeah. And that’s not a cheap plugin. But if you go from one small hosting to one, another small hosting, you don’t have that luxury.
\n\n\n\n[00:31:20] Nathan Wrigley: Yeah, and if you’re crossing platforms as well, say Joomla into WordPress and what have you. That’s also really different.
\n\n\n\n[00:31:25] Birgit Pauli-Haack: Yeah. There are a few agencies who have built for their customer things, but it’s not open source and it’s, well, it’s open source, but it’s not meant for a huge amount of public to kind of use it.
\n\n\n\n[00:31:36] Nathan Wrigley: Yeah, I’d imagine that it’s fairly proprietary technology, isn’t it? It’s probably locked down because it’s the secret source of getting the Drupal installs into WordPress on their platform.
\n\n\n\nOne of the things which Adam spoke about when we talked, I don’t know where we’re at with this, but I raised the question of the destructibility of it. So essentially when I spoke to Adam, when you launched Playground, you fiddle with it, played with it, the moment you click close on the browser tab everything went away. That’s how it was designed. But he said that at some point in the near future, and maybe that moment has already been passed.
\n\n\n\n[00:32:09] Birgit Pauli-Haack: It’s here.
\n\n\n\n[00:32:09] Nathan Wrigley: Yeah, so now we’ve got a more permanent version. Tell us about that. Are there any constraints on that? Like, can I close the browser tab? Can I shut my computer down, for example? I mean, will it last forever? Could I even use it as a, I don’t know, as a temporary website in, let’s say I work in a school and I want an intranet for my staff or something, could for those kind of things?
\n\n\n\n[00:32:29] Birgit Pauli-Haack: Well, it cannot be, it doesn’t have a domain or something like that. So that wouldn’t work. But yes, you can save. You have two options to save the site that you’re working on, so you can come back tomorrow. One is in the browser. So it uses the local storage of the browser and really downloads the whole WordPress stuff there. And then you open up the browser again, you get the site again. You cannot load it from another computer because it’s a different browser.
\n\n\n\nAnd the second option is to load it in your local file system. So you can, it downloads the whole thing, gives you a directory and that’s your website, and you can load it then back into Playground a day later, or a week later, or two months later, because it’s still on your computer.
\n\n\n\nYou can also have multiple sites now in one Playground instance. So you can say, okay, save this site, and then now I use another blueprint, load it again and it’s another temporary site. And you load it, you save it again, then you have a second website there.
\n\n\n\n[00:33:29] Nathan Wrigley: A curious version of version control or something like that. You’ve added this plugin in, I’m going to save a new version marking that this plugin got added. Let’s see how that works. And then if it doesn’t work, we can roll back to the, just delete that one and go back to the previous one. Oh gosh. So essentially permanent. Locally permanent maybe is the better way to describe it.
\n\n\n\n[00:33:50] Birgit Pauli-Haack: And you need to think about the saving part. If you do a second site and you close it, a browser without the saving part, it’s going to go away. Yeah, it’s still ephemeral there. Which is also a good thing sometimes.
\n\n\n\n[00:34:02] Nathan Wrigley: But obviously as you said, you know, the point of hosting in the end is that, you know, it connects to a domain name, it goes through the DNS process and you you can see it online. No.
\n\n\n\n[00:34:10] Birgit Pauli-Haack: No, not yet.
\n\n\n\n[00:34:11] Nathan Wrigley: This is not. Oh, not yet. I wonder.
\n\n\n\n[00:34:12] Birgit Pauli-Haack: No, no, I don’t think that’s ever going to be. But what can be, soon hopefully is kind of pushing it to a hosting company. And that, I think it needs to be just finalised which hosting is going to be there. And the Playground team learns a lot from wordpress.com, because the new development, local development system that wordpress.com has, Studio, is based on Playground. They develop some of the features also for, that wordpress.com can use them in their Studio. And what was the bug fixes? Come to Playground.
\n\n\n\n[00:34:46] Nathan Wrigley: That makes real sense though, for hosting companies to be clamoring all over this, to build a Playground import functionality. Because then developers all over the world, you know, maybe if in teams it might be a little bit more difficult, but you know, a solo developer, certainly at the moment, you’ve been working on something. You’ve got this perfect version of the site, you’ve got all the plugins that you want, you’ve set it up, it’s working on my machine. Now I go over to my hosting company of choice, click the import Playground button and there it is. Why wouldn’t the hosting companies offer that frankly, it just seems too straightforward.
\n\n\n\n[00:35:17] Birgit Pauli-Haack: Syncing up with the live site or there’s also a GitHub deployment there. It opens so many ideas, yeah. And when you ask Adam, well, if I think about this, and can you do that? He said, sure.
\n\n\n\n[00:35:28] Nathan Wrigley: Give a few weeks. I’ll add it to list of 1,000 things that people have already suggested.
\n\n\n\n[00:35:32] Birgit Pauli-Haack: Yeah, we need to develop that. Yeah, the ideas are there, the prototypes are there, the proof of concept is already done. Just a matter of resources now, yeah. I can for instance see one thing is, if you have a documentation and you need people to contribute to documentation, you load the documentation in Playground, you make the changes, and then you push it to GitHub as a pull request. And then somebody can review it, load it in their own Playground and approve it so the documentation could be updated.
\n\n\n\nSomething like that is already in use. That scenario, that’s in prototype. It’s not there yet, but we know that it can work, because some theme developers have that process. They’re not developers per se, that they go into the files. They load the theme into Playground, use the Create Block Theme plugin. Make the changes to the theme. Save it and create the block theme, so it’s in files. Then push it to GitHub as a pull request for this theme, and then have all the changes there. So that’s how a lot of designers work with their developers on the themes. They don’t have to touch any code, but it’s still all saved in code.
\n\n\n\n[00:36:48] Nathan Wrigley: It’s just such an interesting beginning of everything. It does feel like we are at a moment where there’s just so many different roads that could be taken, and lots of people coming up with lots of different ideas.
\n\n\n\nJust quickly circling back to the Studio thing that you mentioned. So Studio is a local development environment. You’re going to be downloading this as a software bundle for your Mac or your Windows machine or what have you. You’re saying that’s a wrapper for Playground, is it?
\n\n\n\n[00:37:13] Birgit Pauli-Haack: Exactly.
\n\n\n\n[00:37:13] Nathan Wrigley: But that’s immutably stored. That’s not dependent on.
\n\n\n\n[00:37:17] Birgit Pauli-Haack: No, it’s on your machine, yeah.
\n\n\n\n[00:37:19] Nathan Wrigley: Right. So it’s going for the files on the machine approach as opposed to being stored in the browser. So if you download and make use of Studio, you can close that machine down, come back to it whenever you like, it’s there until you decide to delete it.
\n\n\n\n[00:37:32] Birgit Pauli-Haack: Like any other local environment that you can, yeah.
\n\n\n\n[00:37:35] Nathan Wrigley: Yeah, okay. And that’s available free you to download for anybody.
\n\n\n\n[00:37:38] Birgit Pauli-Haack: Free, open source.
\n\n\n\n[00:37:39] Nathan Wrigley: Okay. Is there anything else you wanted to cover off, apart from the fact that we’ve both got ridiculously excited about this. Was there anything curious, interesting, quirky, novel that you’ve seen out there that we haven’t yet touched?
\n\n\n\n[00:37:50] Birgit Pauli-Haack: No, not yet. But I’m starting now to kind of dream about it. And sooner or later I come up with something, yeah.
\n\n\n\nWhat I would want and what I want to pursue is that I can have a Playground instance for writers. And I know writers who are not very keen on using the Block Editor, because it gets in the way. But the Block Editor has these settings where you can do distraction free, where you can do, put the toolbar on top, yeah, and hide it as long as I write, and just let me have when I’m not writing kind of thing, and log in and not have to go to the menu.
\n\n\n\nRight now, if I’m a blogger, I have to log into WordPress, and then I need to look at post, new post. This would give you, start writing, and don’t have to worry about the rest of it. And then click a button and then your WordPress site is updated with it. That’s kind of what I’m working on. I don’t know if really helpful, but.
\n\n\n\n[00:38:44] Nathan Wrigley: No, that’s really great. I mean, one of the things that I always thought was curious about it would be the idea in education, for educators literally standing in front of pupils, children who, you know, depending on what the kind of curriculum they’ve got. It might be we’re doing about poetry. We want everybody to upload and modify a poem, or comment on a poem or something like that.
\n\n\n\nAnd here’s the link. You know, we’re in an environment where everybody’s, we’re in the computer lab, everybody’s got a computer. Just click on this link, scan the QR code, whatever it may be. Give us your modifications, what have you. And I know that’s a sort strange example, but it’s the fact that instantly, very, very inexperienced users are in the same exact interface as all the other experienced users. And the level of difficulty was clicking a link. You just needed to click a link.
\n\n\n\nAnd the educator didn’t need a great deal of technology to set it up. The pupils needed zero technology to access it. And so it’s that one to many thing, where lots and lots of people can access the same thing in a heartbeat. And I’m imagining that the tooling to create the Playground installs, and to create the Blueprints is going to make it more and more easy in the future. So possibly not the perfect example, but I do like the example of one to many.
\n\n\n\n[00:39:56] Birgit Pauli-Haack: Yeah. What I like about it is that it’s not about WordPress. It’s about poetry. It’s about writing. It’s about, well, even image uploading and editing, yeah. You could certainly do that. Technology gets out of the way. And for the last 25 years, that’s always been in the way, yeah, and now it’s out of the way.
\n\n\n\n[00:40:14] Nathan Wrigley: Well, because the internet is basically a reading experience. I mean, I know we’ve got forms, but really all you’re doing is submitting a form so that somebody can read that. But you go to any website and largely websites, you know, if you’re going to some sort of SaaS app, that’s a different thing, it’s configured probably to be more interactive. But broadly speaking, you’re going to consume information.
\n\n\n\nBut in this, you click a link and you’re reading information, but then you can do things with it. Oh, I think it would be better if there was an image there in that poem. Or, I don’t know, it’s an explanation of some principle of physics or something, and a diagram would be really useful at this point, and I don’t like the way they describe that, that could go in bold. And you are interacting with the internet. And it’s totally free, and it will be easy to deploy, and it’ll take seconds to load. And all of a sudden the internet became more interactive. And it’s just the beginning. It’s very exciting.
\n\n\n\n[00:41:05] Birgit Pauli-Haack: Yeah, it is.
\n\n\n\n[00:41:06] Nathan Wrigley: Birgit Pauli-Haack, thank you very much for talking to me today.
\n\n\n\n[00:41:09] Birgit Pauli-Haack: Thank you for leading me down the road of all the ideas here.
\n\n\n\n[00:41:13] Nathan Wrigley: Thank you for explaining it.
\nOn the podcast today we have Birgit Pauli-Haack.
\n\n\n\nBirgit is a long time WordPress user, an influential voice in the WordPress community. She’s known for her role as the curator at the Gutenberg Times and host of the Gutenberg Changelog podcast. And brings her wealth of experience as a Core contributor to WordPress as well.
\n\n\n\nShe joins me today for an in-person conversation, recorded at WordCamp Asia in the Philippines, and we’re discussing Playground, a remarkable development that’s set to redefine the WordPress development landscape.
\n\n\n\nPlayground allows users to launch a fully functional WordPress instance directly in their browser. Without the necessity of a server, database, or PHP, Playground breaks down barriers, offering developers, product owners, educators and everyone in between a new way to interact with WordPress.
\n\n\n\nWe explore how this technology not only simplifies the testing and development process, but also sets the stage for more interactive and immediate web experiences.
\n\n\n\nWe explore the concept of Blueprints within Playground, tailored configurations that enable a bespoke user experience by preloading plugins, themes, and content. This feature helps developers to present their work in a controlled environment, offering users an insightful hands-on approach that can significantly enhance understanding and engagement, and it’s all available with just one click. It really does eliminate the traditional hurdles associated with installing WordPress.
\n\n\n\nIf you’re curious about how the WordPress Playground is set to usher in a new era of friction-free web development, this episode is for you.
\n\n\n\nPodcast with Adam Zielinski on How Playground Is Transforming WordPress Website Creation
\n\n\n\n\n\n\n\nBlock Visibility plugin by Nick Diego
\n\n\n\n\n\n\n\nWordPress Developer Blog > News
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Apr 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:13;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"Do The Woo Community: The Web Agency Summit 2025 with Andrew Palmer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93794\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"https://dothewoo.io/the-web-agency-summit-2025-with-andrew-palmer/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"The Web Agency Summit is a free event from April 7-11, 2025, focusing on web development, offering insights into AI, SEO, and networking opportunities for professionals across platforms and CMSs.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Apr 2025 10:22:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:14;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:64:\"Do The Woo Community: When It’s Time to Let Go of Your Podcast\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93347\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://dothewoo.io/blog/when-its-time-to-let-go-of-your-podcast/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:198:\"Podcasting can be challenging, requiring time and effort. After managing eight podcasts, I learned the importance of knowing when to let go, recognizing that not all ideas sustain long-term success.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Apr 2025 10:14:21 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"WordPress.org blog: WordPress 6.8 Release Candidate 2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18662\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/04/wordpress-6-8-release-candidate-2/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8637:\"The second Release Candidate (“RC2”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC2 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC2 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update –version=6.8-RC2 |
WordPress Playground | Use the 6.8 RC2 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC1, you can browse the following links:
\n\n\n\nWant to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:
\n\n\n\nWordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC2, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ? You can help translate WordPress into more than 100 languages. This release milestone (RC2) also marks the hard string freeze point of the 6.8 release cycle.
\n\n\n\nTesting, 1, 2, 3
It’s almost April fifteenth
Squashing all the bugs
Thank you to the following contributors for collaborating on this post: @michelleames, @tacoverdo, @jopdop30, @vgnavada, @jeffpaul.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Apr 2025 15:53:20 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:16;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"Do The Woo Community: Host Adam Weeks Covers CloudFest 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93611\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"https://dothewoo.io/blog/host-adam-weeks-covers-cloudfest-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:321:\"Our host Adam Weeks was busy during CloudFest and the Hackathon. And on top of that he was making sure we had content to share while he enjoyed the event. So kudos to Adam and here are recaps of his episodes. Episode 621: Inspiring Innovation through Hackathons A peek into the CloudFest Hackathon with insights […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Apr 2025 10:30:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:17;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"Do The Woo Community: Engaging Young People in the WordPress Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=88452\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://dothewoo.io/blog/engaging-young-people-in-the-wordpress-community/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:248:\"The WordPress community must engage younger generations by simplifying onboarding, providing education, promoting career opportunities, and fostering connections, ensuring sustainable contributions to the platform’s future development and growth.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 31 Mar 2025 09:10:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:18;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:123:\"Gutenberg Times: Field Guide, No-Code Theme, Pattern Library, why you might not need a Custom Block — Weekend Edition 323\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=38176\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:127:\"https://gutenbergtimes.com/field-guide-no-code-theme-pattern-library-why-you-might-not-need-a-custom-block-weekend-edition-323/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:18889:\"Hi,
\n\n\n\nSpring is here. On the weekend I saw Forsythia bushes in full bloom all over the city. Yesterday, I passed the National Museum and saw their Magnolia trees blooming as well. The temperatures are still too low for my taste, but not for long. 🌤️
\n\n\n\n“Isn’t this a WordPress newsletter”, you might think. I know, I know. Let’s get on with it, then. Carpe diem! 🤗
\n\n\n\nHave a fabulous weekend!
\n\n\n\nYours, 💕
Birgit
PS: The links for mentioned people are now going to their Blue Sky profile, and if I couldn’t find them, it’s till their X (formerly known as Twitter) profile.
\n\n\n\nFollow us on Bluesky @bph.social and @gutenbergtimes.com
The Page Builder summit 2025 is on the calendar now: Anchen le Roux and Nathan Wrigley announced the eighth edition of the virtual conference will take place from 12th to 16th of May 2025. Save the date, and add your name to the Waitlist, to receive info, when registration opens. “The summit is a 5-day event that will help WordPress developers, designers, freelancers, and agencies to build better websites faster and more efficient. As well as learn more about the page builders and the awesome things you can do with them. “, they wrote.
\n\n\n\nWeb Agency Summit 2025 will happen April 7-11, 2025. “Learn proven strategies top agencies are using today to scale sustainably, streamline operations, attract high-value clients, and stay ahead of the curve.”
\n\n\n\nWordSesh returns May 13–15, 2025. It is a virtual conference for WordPress professionals. Its host, Brian Richards, is a seasoned virtual conference producer and WordPress educator. His speaker and session curation is top-notch. Sign up to receive updates on the next event.
\n\n\n\nWordPress 6.8 Release Candidate 1 is now available for testing. Final release is scheduled for April 15, 2025
\n\n\n\nshould_load_block_assets_on_demand
in 6.8 George Mamadashvili released Gutenberg 20.6 RC 1 version, and it’s ready for testing. What to expect in this version?
\n\n\n\nrel
attribute. (69641) 🎙️ Latest episode: Gutenberg Changelog 116 – WordPress 6.8, Source of Truth, Field Guide, Gutenberg 20.5 and 20.6 with special guest JC Palmes, WebDev Studios
\n\n\n\nWes Theron created a video tutorial to teach you How to Build a WordPress Theme the No-Code Way. He shows you where to update your colors, choose your fonts, modify the Single page template and then use the Create block Theme plugin to save all the settings into a new theme’s file structure.
\n\n\n \n\n\nIn this short video on X (former Twitter), Jamie Marsland shows us How to create a One-Pager website with WordPress, using the site editor, core blocks and some custom CSS.
\n\n\n\nMahdiAli Khanusiya, is the designer behind the PatternWP plugin that offers a big library of WordPress block patterns and full-page templates. Using it will instantly increase the range of designs and layout you can offer your customers, and streamline your production process. There is also a pro version available.
\n\n\n\nLatest six block themes in the WordPress repository:
\n\n\n\n “Keeping up with Gutenberg – Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. The previous years are also available: 2020 | 2021 | 2022 | 2023 | 2024
In his post How to extend core WordPress blocks with Blocks API, Joel Olawanle, technical editor at Kinsta, introduced you to the basic extension methods like Block Styles and Block Variations with code examples and multiple ways to accomplish the tasks.
\n\n\n\nAlfredo Navas, web developer at WebDev Studios, wrote a tutorial on how to use the Block Bindings API and why you might not need a Custom Block. Navas walks you through registering a Custom Source, how to create a Block Variation with custom data and making it all work in the editor and on the front end.
In last week’s livestream, Ryan Welcher created a new WordPress block theme for the Block Developer Cookbook and gave it a new look. You can watch him turning change his color scheme and turn his existing theme into a style variation.
\n\n\n \n\n\nBrian Coords found a way to create Dynamic WordPress Playground Blueprints with Cloudflare Workers and shared in his video how he built a system to spin up demo WooCommerce stores. The code lives on GitHub
\n\n\n \n\n\nNeed a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience
\n\n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
Featured Image:
\n\n\n\nDon’t want to miss the next Weekend Edition?
\n\n\n\n\n\nBuddyPress 14.3.4, BuddyPress 12.5.3, and BuddyPress 11.4.4 are all now available. This is a security release. Please update as soon as possible.
\n\n\n\n14.3.4, 12.5.3 & 11.4.4 fixed two bugs:
\n\n\n\nFor complete details, visit the 14.3.4 changelog.
\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\nYou can get the latest version by clicking on the above button, downloading it from the WordPress.org plugin directory or checking it out from our Subversion repository.
\n\n\n\n[00:00:00] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, the efficacy of website usability testing for WordPress projects.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice. Or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.
\n\n\n\nToday I bring you the first in a mini series of podcasts I recorded in person at WordCamp Asia in Manila. This flagship WordPress event brought together hundreds of WordPress professionals, enthusiasts, and all manner of interested parties under one roof for a three day event. One contributor day, and two days of presentations.
\n\n\n\nI tracked down several of the speakers and workshop organizers and recorded them speaking about the subject they were presenting upon. I hope that you enjoy what they had to say.
\n\n\n\nSo on the podcast today, we have the first of those conversations, and it’s with Jo Minney.
\n\n\n\nJo based in Perth, Australia, is passionate about user experience, data-driven decision making, cats, pockets, and travel. She’s a small business founder, and works with organizations creating digital platforms with WordPress. She also freelances as a UX consultant. She volunteers with Mission Digital to address social issues using technology, and is an ambassador for She Codes Australia, promoting tech accessibility for women. Recognized as a 2023 Shining Star by Women in Technology, Western Australia, Jo is an international speaker on topics like user experience, accessibility, and gender equality. She’s committed to ensuring a seamless user experience, and today shares her insights from practical, everyday usability testing.
\n\n\n\nJoe’s presentation entitled, Budget Friendly Usability Testing for WordPress, helped attendees understand what usability testing is, and clarified why it differs from other testing methods. She shares examples from her work showing how small changes can significantly impact user experience, which is better for you, the website builder, and your client, the website owner.
\n\n\n\nWe also discuss how usability testing can transform a website’s effectiveness by improving conversions. Joe explains the importance of recruiting novice users for testing, and highlights how usability testing pushes for real, user-centered, improvements.
\n\n\n\nTowards the end, Jo share’s practical advice on when and how to integrate usability testing into your process. Advocating for early and iterative testing to preemptively address potential issues.
\n\n\n\nIf you’re looking to gain a deeper understanding of usability testing and its benefits, this episode is for you.
\n\n\n\nIf you’re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast where you’ll find all the other episodes as well.
\n\n\n\nAnd so without further delay, I bring you Jo Minney.
\n\n\n\nI am joined on the podcast by Jo Minney. Hello, Jo.
\n\n\n\n[00:04:06] Jo Minney: Hi. It’s good to be back again Nathan.
\n\n\n\n[00:04:08] Nathan Wrigley: Yeah, you’ve been on the podcast before. But this time it’s different because this time we’re actually facing each other. Last time we were doing it on, you know, something like Zoom or something like that, but here we are staring at each other because we’re at WordCamp Asia. We’re in the Philippines, Manila. It is the second day of the event, kind of. We had Contributor Day yesterday. Today is presentation day. It’s the first day of the presentations, and you are doing one.
\n\n\n\n[00:04:29] Jo Minney: I’ve done one actually. I did it at 11 o’clock this morning.
\n\n\n\n[00:04:33] Nathan Wrigley: How did it go?
\n\n\n\n[00:04:34] Jo Minney: It went really well, I think. I had very good feedback from it. Half of the things on my slides didn’t work. I think that’s normal for a conference though, and I’m pretty experienced now at just winging it, and rolling with it anyway, so. It was really exciting because it’s a topic that I’m super passionate about and I haven’t had a chance to speak about it at a conference before. So, yeah, it was really nice to be able to share something that I do on a day-to-day basis and can stand up there and really confidently talk about.
\n\n\n\n[00:04:58] Nathan Wrigley: I don’t think I’ve ever spoken about this subject before in any of the podcasts that I’ve done. That is quite nice, and it’s novel. I’ll just introduce the topic. The presentation that you gave was called Budget-Friendly Usability Testing for WordPress. And obviously that sort of sums it up. We’re going to talk about usability testing.
\n\n\n\nBut before we do that, Jo, just to nail your colours to the mast a bit, tell us about you. Where you’re from. What you do for a job, and anything that you think is relevant to this podcast.
\n\n\n\n[00:05:22] Jo Minney: Okay, I really like cats and pockets.
\n\n\n\n[00:05:25] Nathan Wrigley: I saw that in your show notes. Why pockets?
\n\n\n\n[00:05:27] Jo Minney: Okay. So I think pockets are a great example of something that can be both a fantastic and a terrible user experience. You are like, oh yeah, maybe I know what you’re talking about. But, let me ask, do you live with a woman?
\n\n\n\n[00:05:39] Nathan Wrigley: I do.
\n\n\n\n[00:05:39] Jo Minney: I know that’s a very personal question, sorry Nathan. But, how many times on average a month does she complain about not having pockets in her clothing?
\n\n\n\n[00:05:48] Nathan Wrigley: Never, she carries a bag.
\n\n\n\n[00:05:50] Jo Minney: Yeah, but why do we have to carry a bag, right? She has to carry a bag because her clothing doesn’t have pockets. So I spoke at a conference late last year, and I asked this question. This has been a life goal of mine, was to speak about pockets at a conference. And I managed to do it. I asked all of the women in the audience, hands up if you’ve ever thrown out clothes or gotten rid of them because they didn’t have pockets in? And every single woman stood up and was like, yes, I’ve gotten rid of clothes because they didn’t have pockets in.
\n\n\n\nMost of the people that were there were men. And I said, stand up if you don’t have pockets in your clothes right now. And 400 men stayed seated. But this is an example of something where, yes, there’s a subsection of the population that’s experiencing this problem, but it’s a big problem for us. It’s very frustrating. You’re at a conference, you don’t want to have to carry around a handbag. So, pockets. They’re a great example of user experience.
\n\n\n\n[00:06:45] Nathan Wrigley: Okay, I get it. I understand now. Tell us a little bit about your sort of day-to-day work, though. You work with WordPress, I guess.
\n\n\n\n[00:06:51] Jo Minney: I do. So I run a small agency. We’re what I usually call a micro agency, and we have only three of us that are working on the WordPress team. We do website development, but specifically for charities, nonprofits, cause-based organisations, so a lot of social enterprises and that sort of thing.
\n\n\n\nOn top of that, I also do consulting for user experience research. I’m not a designer. UX and UI often get lumped together. They’re very different. UI is about the interface and what people see, and UX is about user experience and how people use things. And they can’t be completely separated, but they’re also very different.
\n\n\n\nSo I am lucky because I work in the niche that I work in, that I’m able to do a lot of usability testing and it’s something that a lot of people don’t get the experience to do. And so I thought I would share what I’ve been able to learn over having this sort of unique opportunity to do so much usability testing, and share with people how they can do it more cost effectively, but also the benefit that it can have for a project.
\n\n\n\n[00:07:54] Nathan Wrigley: Let’s dig into it and I’m going to actually crib the questions which you posed to the audience today. You put four questions surrounding your subject. And the first one is this. And I’m sure that the listeners to this podcast, if they’re anything like me, they’ll probably have some impression that usability testing is a thing that you could do. And I think the word there is could, as opposed to do, do.
\n\n\n\nI imagine most people have an impression of what it is, but whether or not they do it is another thing altogether. But that would then lead to this. What even is it? So what is usability testing, and what are you actually testing for? So that was a question you posed to the audience and now I’m throwing it right back at you.
\n\n\n\n[00:08:34] Jo Minney: Yeah, it’s a good question. It’s probably the sensible place to start. So usability testing is not the same as user testing, or user acceptance testing. And it’s focusing on, how do we identify what the problems are with something that we have created?
\n\n\n\nSo a lot of UX research is focused on what we call quantitative testing. So, meaning we’re looking for quantities of something. It could be the amount of time it takes someone to do an action. It could be using heat maps. So we have a thousand users, let’s see where their cursors most often are going. Let’s see how often they scroll down the page. And quantitative testing is really good at showing you comparisons of whether one thing or another thing works better, but it’s not actually good at identifying what the problem is, only that there is a problem.
\n\n\n\nSo you can do a lot of testing and still not know what the problem is. Usability testing is different because it’s what we call qualitative testing. So it means that we’re not looking for big numbers, we’re not looking for lots of data. We are looking for really deep user experience examples. And in a nutshell, the way that that works is you recruit some participants, usually five people per round is ideal. And often I get asked, well, how can you have statistically significant data with only five people? That’s not the point of qualitative testing. The point of qualitative testing is not to have statistically relevant data, it’s to have the actual user experiences.
\n\n\n\nSo you recruit your people, you come up with your research questions and that’s the problem that you’re trying to solve or the question you’re trying to get an answer to. So, an example might be, are users going to recognise this label that I’ve used in my navigation? Is this button going to get clicked if I put it in this location? It’s often a thing that, if you’re working with a customer to develop a website for them, what we find is that often the things that we are testing for in usability testing are things that the customer and I disagree on, or things where they weren’t sure when they made the decision in the first place. And they’re a great example of things that you want to test for.
\n\n\n\nBut the research questions are only the first part because if I say, the example I used in my talk today is that we had a support service directory. And this was for people who are experiencing family domestic violence. And they didn’t want to use the term directory because it’s a very harsh term. So they had called it support services, which sounds, on the surface like a good idea, but a lot of the people that are using their platform are not English first language. And they also tend to be in a really stressed out state as you can imagine.
\n\n\n\nAnd so what we actually found is that when we said to them, can you imagine you’re helping someone, can you help them find a legal service that will enable them to get a restraining order or something like this? What we found is that repeatedly they didn’t go to support services to start with. The minute we changed that to service directory, they started to find the thing that we wanted them to click on.
\n\n\n\nIt’s such a small change, but it made a huge impact, the usability. Now, we found that out after the second test, which meant that we were able to change it after the second test, and then we had three more tests where we could show that every time they were able to find the thing that we wanted them to be looking for.
\n\n\n\nSo this is an example where the research question and the research task or the activity that we’re giving to the user, they’re not the same thing. If we said to them, find support services, find the service directory, if we use that language, obviously they’re going to look for that label. But instead we asked them to do an activity that would hopefully take them to the place we wanted them to go to.
\n\n\n\nAnd then finally the last step is to iterate that and to actually take that data and make decisions, and make improvements to the project iteratively to try and make it better. That’s the goal, right? Is to find what the problems are and fix them. So we still have to work out how to fix them, but at least we know what the problems are and not just that people were not clicking on the button and we don’t know why.
\n\n\n\n[00:12:27] Nathan Wrigley: I have a couple of follow up questions. First thing isn’t the question, it’s an observation. So that’s really cleared up in my head what it is, so that’s amazing. But one of the things that I want to know from that is, do you filter out people who, let’s say for example, you’ve got a website, the kind that you just described. Do you filter out people who are not the target audience? So in other words, I don’t know, maybe that’s not a perfect example. But let’s say, on some websites, would it be better to have really inexperienced users of the internet as your five candidates?
\n\n\n\n[00:12:59] Jo Minney: That is exactly the ideal person.
\n\n\n\n[00:13:02] Nathan Wrigley: So people who are just, I’ve never come across this before. You want people who are potentially bound to be confused. If somebody’s going to be confused, it’s you five.
\n\n\n\n[00:13:10] Jo Minney: That is the ideal participant for a usability study. And often people say, I want to start learning how to do usability testing. Where should I start? And my advice to them is always the same, with your mum.
\n\n\n\nRecruit a person that’s a generation older than you, because I can guarantee that in most cases, sorry to generalise, but they tend to be less efficient and less used to technology because they haven’t grown up with it. So for millennials and younger, we have had technology for all of our adult lives and most of our childhood.
\n\n\n\nFor my parents’ generation, they have had to learn that technology as an adult, and so their brains have a different mental model, and they don’t take for granted things that we take for granted. Like, when I click the logo, it will take me back to the homepage. I know that, you know that, your mum might not know that.
\n\n\n\nAnd I think that is something that is really valuable is to understand the benefit of testing with people who aren’t as experienced with technology. Who don’t speak English as a first language. Who are experiencing some kind of accessibility challenge. Whether that’s using assistive technology, being colorblind. Things like that are really good things to try and get some cross-sectional representation in your testing participant pool.
\n\n\n\n[00:14:25] Nathan Wrigley: So the idea then is that you’ve got these novice users who hopefully will immediately illustrate the point. And it’s driven by questions. So it’s not just, we are just going to stand over your shoulder and watch you browse the internet, and when you do something and describe, you’re looking for something and you can’t find it, that’s not how it’s done.
\n\n\n\nIt’s more, okay, here’s a defined task, do this thing and we’re going to ask you to do five things today, we want you to achieve them all and describe what you’re doing, but it’s more of that process.
\n\n\n\nAnd then the idea is that you go from an imperfect website, slowly over time, iterating one problem after another towards a better website. The goal is never reached. It’s just an iterative process.
\n\n\n\n[00:15:01] Jo Minney: That’s it. Perfection does not exist.
\n\n\n\n[00:15:03] Nathan Wrigley: Okay, so that’s interesting. So we start with the novice. We’ve got a small cohort of people. We ask them specific questions, and we get feedback about those specific questions.
\n\n\n\nSo the other thing that I wanted to ask then is, when do you do it? Because it feels like you need to build the website first, then show it to people. So there’s got to be something. This isn’t process of discovery prior to the website. You need pixels on pages. Buttons that are potentially mislabeled or what have you. Is that the case? Build first, then usability test afterwards. There’s no usability testing prior to the initial build.
\n\n\n\n[00:15:37] Jo Minney: It’s kind of a trick question because you can usability test at most stages. Probably the only stage you can’t usability test at is when you don’t yet have a site map. Having said that, my recommendation is, assuming you had unlimited budget and unlimited time, I would do at minimum two rounds of usability testing, and I would do one before you have any design, and I would do it just using wire frames.
\n\n\n\nSo we build interactive wire frames using WordPress. So for the demo that I did today, I spun one up. I used InstaWP. You can get like a seven day website or something through there. It took me 42 minutes to build out the website in just the block editor, with no design or anything, just the layout of it. And I was eating a loaded potato at the time. So if I can do that in 42 minutes, eating a loaded potato, and that’s not my job, I think it’s a pretty efficient and cost effective way of being able to do early usability testing.
\n\n\n\nAnd often the thing that we’re testing for there is like, have I got the right navigation structure and hierarchy? Are the labels that I’m using sensible for people? Do they fit with the mental models of what our users are actually expecting? And the benefit of doing it that early is that when you don’t have a design applied, it’s a lot easier to identify problems.
\n\n\n\nBecause there is a thing that happens in human psychology, and there’s a lot of psychology in user experience. And there’s a thing that happens where if something’s pretty, we will say that it is easier to use. Our experience is that it’s easier to use because it’s nice to look at. And that’s great. That means that UI is really important, but it also means that, if you have a really nice UI, it can mask problems that you have in the background. It is great that things can be easier if they’re pretty, but imagine how much easier they would be if they worked well and were pretty, that’s what we should be aiming for.
\n\n\n\nSo typically we would do one round of usability testing when we just have a framework and just have the navigation. When someone lands on a page, sometimes we’ll just write a message on there and say, congratulations, you found the service directory where you can find this thing, this thing, this thing, this thing, and then we put a little button there. When they click it, it releases confetti on the page. So they get a dopamine hit and it’s like, yay, I completed the activity. You don’t have to have all of your content in place to be able to do testing, and identify early that you’ve got problems that you need to fix.
\n\n\n\n[00:18:02] Nathan Wrigley: It sounds almost like an overly complicated design is the enemy of usability. We are drawn towards beautiful, but sometimes maybe beautiful just is overwhelming. You know, there’s lots of colors on the page, the buttons get hidden, there’s just too much text on there. Looks great, but it might be sort of masking the thing that you’re really trying to show. And it feels like there’s this tight rope act of trying to balance one thing against the other. Yeah, that’s really interesting.
\n\n\n\nSo, with the wire frame thing, in that case, you are really just testing, can the person find the thing? But I’m guessing once you’ve move beyond the wire frame stage and you’ve got a website, it’s literally out on the internet, it’s functional. It’s exactly what we hope would be the perfect version, then you’re drilling into more detail. You know, can a person find this resource? Do they know that this button is what we are intending them to click? Those kind of things.
\n\n\n\n[00:18:49] Jo Minney: Yeah. So I think things like searchability and discoverability are much easier to test for in the early stages when you’re just doing, say, using like a wire frame or a prototype. And things like usability, you really do need to have the complete designed product to be able to test for them well. And I say that, there’s actually kind of four categories of the different types of tasks that we can do. I’ll give you the link to the blog post that I wrote that has all of this in detail because we do not have time to go deep into that today.
\n\n\n\nBut things like, does my search form work the way that I want it to? They’re the sorts of things that you do have to do some development to be able to get them working. So it’s not always practical to do that at the very early stages when you do want to start testing your navigation and stuff like that.
\n\n\n\nSomething that you can do is if you’ve only got enough budget, or enough time, to be able to do, say, five usability tests total, you could do two of them early, and then you could do three of them towards the end, after you have the majority of the design and the development work in place. Users are pretty forgiving when they’re doing a usability test. If you say, this is still a work in progress, there might be a couple of pages that look odd and aren’t quite ready to go live yet. If you get somewhere and you’re not sure, you can just go back, it’s okay.
\n\n\n\nIt’s not meant to be a perfect experience. The point is that you are getting their real time thoughts and feedback as they’re doing it. So it’s really important that you try and encourage them to follow the think aloud protocol, which is really outlining every single thing that goes through they’re head, just brain dump on me please. Like, I just want to hear all of your thoughts and thought processes.
\n\n\n\nAnd the only thing as the facilitator that I will say during a usability test is, tell me what you’re thinking. And other than that, I am completely silent. So even when it comes to giving them the activity, so if I’m asking you to do an activity like help somebody find a legal service that they can use in this particular state. I would actually send that task to you via the chat or something like that.
\n\n\n\nI would send the task to you via the chat, and then I would get you to read that task back to me, because I don’t want you to be thinking about how I’m saying it. I want you to be able to go back to that task and look at it, and think about it, and process everything inside your own head. But I want you to be telling me all of that.
\n\n\n\nSo often we’ll find people ask questions during that, like, what should I do next? And the answer to that is really hard to train yourself out of replying to them with anything other than, what would you do if I wasn’t here? And I think that’s the hardest thing about learning to facilitate a usability test.
\n\n\n\n[00:21:24] Nathan Wrigley: Yeah, and in a sort of an ideal scenario, you wouldn’t even be in the room. But in some strange way, you’d be able to just get into their head and say, okay, now I want you to do this, but every time you’ve got problem, just figure figure it out, and we’ll watch. But you have to be there because you have to be able to listen to what they’re saying and what have you. Yeah, that’s curious.
\n\n\n\n[00:21:40] Jo Minney: Yeah, and we do, at the end of each activity, we’ll then ask them for feedback on how they found it. If they had any suggestions or things that they didn’t say out loud while they were doing it that they wanted to share with us. How confident were they with the activity, and did they think that they were successful in it, which is a really good way of telling, I wasn’t really sure what the activity was meant to do. Or I wasn’t really sure if what I found really met the needs that I was looking for.
\n\n\n\nThen we ask them, how certain are you with the answer that you just gave? And if they’re like, three out of five, you’re like, alright, this person didn’t understand what it was that I was asking them to do in the first place. Maybe the problem is actually with my question and not with the website.
\n\n\n\n[00:22:18] Nathan Wrigley: Okay, so the whole process is, you’re not just asking for feedback about the website, there’s a whole process of asking for feedback about the process as well which is, that’s kind of curious. Meta, meta processing.
\n\n\n\n[00:22:27] Jo Minney: Very meta, for sure.
\n\n\n\n[00:22:29] Nathan Wrigley: We’re in an industry where at the moment everything is trying to be automated.
\n\n\n\n[00:22:32] Jo Minney: Is this the AI question?
\n\n\n\n[00:22:34] Nathan Wrigley: Well, no, this feels like it’s a very human thing. You need actual bodies on the ground. So it’s really a question of economics. Because I’m wondering if this often turns out to be a fairly expensive process. And because of that, I wonder if people push against it, because the budgets may not be there. If this is something that clients typically would say, well, okay, tell me how much that’s going to cost. It’s a nice idea but, okay, it’s going to cost us X thousand dollars because we’ve got to put five people in a room and we’ve got to pay for your time to moderate the event, and come up with the questions and so on.
\n\n\n\nHow do we manage that in an era of automation where everything is, the dollar cost of everything has got to be driven down. This feels like the dollar cost is going up because there’s humans involved.
\n\n\n\n[00:23:14] Jo Minney: Yeah, it’s a great question. Have you ever run a Google ad before?
\n\n\n\n[00:23:17] Nathan Wrigley: It’s expensive.
\n\n\n\n[00:23:18] Jo Minney: It’s very expensive. It’s very expensive to get a new lead. It’s a lot more cost effective to convert a lead than it is to get a new one. And the point of usability testing is to improve conversion of people being able to do the thing that you want them to do on the website.
\n\n\n\nSo my first answer to that would be, look at the cost benefit analysis. It’s worth it in most cases to do usability testing. Something that we’ve found with positioning of usability testing is that if we offer it as an add-on, then people don’t want to do it because they don’t want to pay for it. They see the value in it necessarily. However, we don’t offer it as an add-on.
\n\n\n\nWe actually have it just as part of our proposal right from the start where we’re like, this is part of the point of difference between what you get when you build with us versus when you build with someone else. They’ll tell you what they think is the best way to do something. If we are unsure about the best way to do something or we disagree on it, it’s not going to ultimately be me making a decision or you making a decision. We’re going to test and we’re going to get real evidence from customers.
\n\n\n\nAnd they’re the ones that are going to be developing it so you know that the final result that you get is going to be the best possible version of the website. And often we might be more expensive than our competitors, but people will go with us because we are not competing on price. We’re competing on offering a service that nobody else is offering. I asked today in the presentation who has done usability testing before and not a single person put their hand up.
\n\n\n\n[00:24:42] Nathan Wrigley: That would’ve been my assumption actually.
\n\n\n\n[00:24:44] Jo Minney: Yeah. And honestly, I don’t think any of the people that we’re competing against in the industry that I’m in are doing the same thing as what we’re doing. And so it is very much a point of difference. I think it’s not a well understood technique, but it’s so valuable that it is a really easy way to position yourself as being different, and really actually do a better job for your customers, for the people that you’re building websites for. Because ultimately you are going to have a better result at the end of it.
\n\n\n\n[00:25:12] Nathan Wrigley: The interesting thing there is, when I say usability testing, somehow in my head there is a connection between that and accessibility. And that’s not where I’m going with this question, but there’s just something about it being unnecessary. And I’m not binding that to the word accessibility. What I’m saying is clients often think, I don’t need to do that. Obviously, we’re moving into an era where legislation says otherwise. But I can just leave it over there. I don’t need to worry about that, usability testing, not for me.
\n\n\n\nHowever, the lever that you’ve just pulled, it completely changes the dynamic because you’ve pulled an economic lever, which is that if we can get everybody to follow this action, I don’t know, fill up the cart with widgets and then press the buy now button, and go through the checkout process. If that’s the thing that you’re usability testing, you’ve made direct line. You’ve joined up the dots of, okay, user, money.
\n\n\n\nSo it’s not just about it being a better website so that people can browse around it all day. It’s also about connecting the economics of it. So the usability is about people buying, converting, getting the resource. And so there might not be an economic transfer there, but it will be some benefit to your business. There might be downloading that valuable PDF that you want everybody to see or whatever.
\n\n\n\nSo that’s kind of interesting. That’s changed my thoughts about it a little bit. And it is more about that. It’s getting an understanding of what you want out the website, getting an understanding of what you think should be happening is actually possible and happening. Have I sort of summed that up about right?
\n\n\n\n[00:26:40] Jo Minney: Yeah, I think that’s a really good summary it. I think the only thing I would add there is that a lot of the times the conversation around accessibility and the conversation around usability do have a lot of crossover. They are fundamentally different, but one of my favorite examples is actually something that I think applies to both.
\n\n\n\nSo two of the common problems that we find very early on in design is often to do with colour. And so one of them is colour contrast and the other one is colourblind accessibility. And I think it’s a great way to get people to change their thinking, and their perception of the way we have these conversations is, if you have an e-commerce website, Nathan, what would you say if I said to you, I can instantly get you 8% more customers?
\n\n\n\n[00:27:23] Nathan Wrigley: Yeah, I’d say that’s great.
\n\n\n\n[00:27:24] Jo Minney: And I’d be like, cool, change your buttons so that colourblind people can read them, because 8% of men are colourblind. So actually it’s only 4% of people because assuming half of them are men, then you’ve actually only got 4%. But still 8% of men are colourblind, that’s a big percentage of the population. So if your button is red and green, then you’re going to have a problem. People are not going to be able to find the thing that you want them to click to give you their money.
\n\n\n\nLikewise, if you want people to be able to use your website when they’re outside and using their phone in sunlight, then you need to have good colour contrast on your website. So often this conversation is around, well, I don’t have people who are disabled, I’m not trying to cater to people that are using screen readers. It doesn’t matter because not very many people that are using my website are blind. And I’m like, well, I’m not blind but I still struggle when I’m looking at something where the text is too faint, and I’m looking at it on my phone, and I’m standing outside in the sun because we naturally don’t visualise as much contrast there.
\n\n\n\nSo I think being able to position it in a way where people can see the value to themselves. I want to use a website that has better contrast, and so it makes that conversation easier with a customer.
\n\n\n\n[00:28:32] Nathan Wrigley: I hadn’t really drawn the line between accessibility and usability, but it seems like they’re partner topics, basically. There’s like a Venn diagram, accessibility over here, usability over here, with a massive overlap somewhere in the middle.
\n\n\n\n[00:28:43] Jo Minney: A hundred percent. That’s why we always encourage having that sort of intersection between accessibility and usability in our testing pool. So we always try and have one person who experiences some kind of accessibility challenge, whether that’s being colourblind, hearing impaired, if we’ve got a lot of video on the site, for example. And I think that it can be a really valuable way of collecting multiple data points at one time.
\n\n\n\n[00:29:04] Nathan Wrigley: When you have a client that comes to you and they’ve obviously, by the time that they’ve signed the contract with you, usability is already part of the deal it sounds like. How do you decide, what’s the thing in round one that we’re going to pick up on? Is there sort of like a copy book that you go through? Is it like, I don’t know, buttons or the checkout or colour or? Where do you go first? And sort of attached to that question a little bit, this process never ends, right? In theory, you could do usability testing each month. But I was wondering if you did it like on an annual cycle or something, yeah.
\n\n\n\n[00:29:34] Jo Minney: If you’re not changing stuff super often, I would say, there’s probably more cost effective ways that you can collect information about it. Typically we encourage, long-term, have things like heat maps and stuff like that. They will help you identify if there is a problem. If you know that there is a problem, let’s say you’ve got a heat map and you’re like, why is nobody clicking on our buy now link? That is a good instance of where you would do some usability testing to figure out what the problem is.
\n\n\n\nBut if everything’s working and you’re getting conversions, then probably doing usability testing isn’t the most valuable thing that you can do. If you’re looking at making significant changes to the way that your website works, that’s another good time to introduce a round of usability testing. So we don’t do it just for the sake of doing it. We do it because we need to do it, and because there’s value in it for our customers.
\n\n\n\n[00:30:18] Nathan Wrigley: Do you keep an eye on your customer’s websites so that you can sort of get ahead of that, if you know what I mean? So let’s say that you put heat maps in, very often that would then get handed over to the client and it’s somebody in the client’s company’s job is to check the heat maps. Or do you keep an eye on that and, oh look, curiously, we’ve seen over the last 12 months, yeah, look at that. There’s not much going on over at that very important button over there. Let’s go back to the client and discuss that. That could be another round of usability testing.
\n\n\n\n[00:30:44] Jo Minney: Yeah, so I think we’re not uncommonly, a lot of agencies now do have some kind of retainer program where they will maintain communication and assistance for their clients. So we call them care plans. I know everyone has a different name for it. I think it’s pretty standard now in the WordPress ecosystem. It’s a very common thing to do.
\n\n\n\nAs part of our care plans we have scheduled meeting with our clients once every three months or six months or 12 months, depending on how big the site is. And one of the things that we’ll do at that time is review their analytics, review the heat maps, that sort of thing.
\n\n\n\nAsk them, have they experienced any problems? Have they noticed a downturn in the people signing up for the memberships? Or have they noticed, have they had any complaints from people about something? Is there anything that they’re not sure about? Are they going to be changing the way that they operate soon, and introducing something new into their navigation that we need to consider where does that fit in the grand scheme of things?
\n\n\n\nI find if we’re having those conversations early and we are the ones starting those conversations, then often we are coming to them with solutions instead of them coming to us with problems.
\n\n\n\n[00:31:46] Nathan Wrigley: I think that’s the key bit, isn’t it? If you can prove to be the partner that comes with, we’ve got this intuition that there’s something that we can explore here. You are proactive, you’re going to them not, okay, anything you want? Is there anything we can help you with, you know? And the answer to that is always, not really.
\n\n\n\nWhereas if you go and say, look, we’ve got this idea, based upon some data that we’ve seen, we’ve got heat maps and what have you, shall we explore that further? That seems much more credible. You are far likely, I think to have an economic wheel which keeps spinning if you adopt that approach, as opposed to the is there anything you want doing, kind of approach?
\n\n\n\n[00:32:18] Jo Minney: Absolutely. I think every developer’s worst nightmare is having a customer come back to them and say, I’ve just noticed that I haven’t had anyone send through anything in my contact form for the last three weeks. And I’ve just noticed, when I went and tested it, that the contact form’s not working anymore.
\n\n\n\nI’m sure I’ve had that nightmare at least once. And I think if you can avoid being in that situation where they’re coming to you with something like, oh my God, it’s broken, how do I fix it? If instead you can go to them and be proactive about it and just kind of keep your finger on the pulse.
\n\n\n\nYes, there’s a little bit of ongoing work, but like honestly, I jump on, I check all of the analytics maybe once every three months for my clients. I set aside one day to do it. Go and have a look through that. If I notice anything, I can usually fix it, make sure that we’re collecting the data again before it becomes a problem.
\n\n\n\nAnd then that way when there is an issue, we’ve got data that we can back up and we can start from there and go, okay, yes, we’ve identified, here’s where we need to do more research. And then we can apply something like usability testing to that.
\n\n\n\n[00:33:16] Nathan Wrigley: How much of your time on a monthly basis, let’s say as a percentage, do you spend on usability of existing clients? Is this something that is a lot of the work that you do? What I’m trying to figure out here is, for people listening, is this something that they can turn into a real engine of their business?
\n\n\n\nBecause you might get two days, three days work a week just on the usability of pre-existing clients. So in a sense, you’ve created interest and work out of thin air, because these clients already exist, they’re in your roster, but there’s a whole new thing that we can offer to them. So, how much do you spend doing it?
\n\n\n\n[00:33:50] Jo Minney: Yeah, so it’s a great question. I would say it’s cyclical. I couldn’t really say like, I always spend this much amount of time. There might be entire weeks that go by where my whole life is usability testing, and there might be a month that goes by where I don’t do any. And it really does often depend on where our projects are in the life cycle at any particular time.
\n\n\n\nSo we’re often working on projects that will span over years. And because of that, they might introduce a completely new part of their project. And that’s a good time to reintroduce that usability testing. As I said, like you don’t really want to do it just for the sake of doing it, but at the same time, if you can show that there will be value in making a change, if you can show that there is a lost opportunity somewhere, then a hundred percent you can sell that, the value to them of, hey, you could spend $1,000 now, but you could be earning $5,000 more every month for the next several years. That’s a no-brainer, right?
\n\n\n\nPeople are happy to make investment if they can see that there’s going to be a cost benefit for them in the future. Or if the thing that they’re trying to do is maybe their government website or something, and they’ve got a particular thing that they need to meet, they’ve got KPIs. If you can show that you are able to help them meet those KPIs, then they are going to invest in doing that thing that you’re trying to offer them.
\n\n\n\n[00:35:02] Nathan Wrigley: We talked about the Venn diagram of accessibility and usability, and the fact that there’s a lot of an overlap. In the year 2025, this is a year where, in Europe at least anyway, accessibility, the legal cogs are turning and the screw is getting tighter. So accessibility is becoming mandated in many respects.
\n\n\n\nAnd I was wondering about that, whether there was any kind of overlap in legislation on the usability side. The accessibility piece is obviously easier to sort of define in many ways, and it’s going to become less optional. But I was wondering if there was any usability legal requirements. I don’t know quite how that would be encapsulated.
\n\n\n\n[00:35:41] Jo Minney: Sort of. An example that comes to mind is that there are a lot of practices that historically have been really prevalent on the internet, and they’ve been identified as being really bad for usability. And they’ve actually now been identified as being so bad that they’re almost evil. And they’ve started to crack down on those.
\n\n\n\nAnd an example of that is, have you ever tried to unsubscribe from a gym? It’s basically impossible. And so now if you, at least in Australia, I know if you have a subscription on your site, you legally have to have a way of people being able to unsubscribe without having to call someone or send an email somewhere.
\n\n\n\nAnd that is an example where that is actually usability. And I think there are definitely things where we are picking up on stuff that is maybe a shady way of working, and a shady way of developing websites. And those things are starting, we’re starting to cut down on them.
\n\n\n\nI’m not sure if that is purely usability, or just like not being being a bad person. But I think that there is definitely, the only reason that we know that those things are a problem is because we have all had those bad experiences. And ultimately that’s all user experience is, it’s just how good or bad is experience of using a platform.
\n\n\n\n[00:36:49] Nathan Wrigley: I share your frustration with those kind of things because I’ve been through that process. Not just canceling a subscription but, I don’t know, something that you’ve got yourself accidentally into and you don’t want to be on that email list anymore. Seemingly no way to get off it.
\n\n\n\n[00:37:01] Jo Minney: They’ve changed the unsubscribe link so it doesn’t have the word unsubscribe in it. And now you just have to look for the word that’s not underlined, or highlighted in a different colour. That when you hover over it, something pops up and you’re like, oh, that’s the link. That thing that says manage preferences down the bottom, hidden in the wall of text. That is a shady practice. That is a poor user experience just as much as it’s just a bad thing to do.
\n\n\n\n[00:37:23] Nathan Wrigley: I think it’s got the label of deceptive design now. It used to be called dark patterns, didn’t it? But deceptive design. This notion of doing things in such a way to just deliberately confuse the user so that the green big button, which is the exact opposite of what you want to click, is the one which is visible. And then there’s this tiny little bit of greyed out text, which is the one which, clearly, you’ve ended up at this page, that’s the one you want. That’s the enemy of usability in a way. But for the business, it may be exactly what they want because it keeps the economic engine rolling.
\n\n\n\nYeah, that’s interesting. I wonder if there’ll be more legislation to tighten those things up so that they’re not allowed. Yeah, that’s fascinating.
\n\n\n\nLast question. We’re running out of time. Last question. And it refers to something that we talked about earlier. I’m guessing this really never ends. This is a journey which you begin, you tweak it, you do a little bit, you fix, and then you start again a little bit later and what have you. Is there ever a moment though where you go to a client and say, we did it? This site, as far as we’re concerned, is now perfect. Or is it never a goal? It’s a journey and never a destination.
\n\n\n\n[00:38:23] Jo Minney: I think you’ll probably agree with me here, Nathan, that it’s basically impossible to be perfect, because ultimately someone is always going to have a different opinion. Someone’s always going to think that your shade of purple is too dark. Someone is always going to dislike the font that you chose, because it’s not loopy enough, or it’s too loopy, right?
\n\n\n\nSo I don’t think there is such a thing as perfect. But through doing five usability tests, five people, you can pick up at least 85% of the potential problems with your design. And I’m not aiming for perfect, but I know that for me, if I can confidently say to my customers that I’ve been able to identify 85% of the potential problems that they might experience in their project, then they can confidently go away and say, hey, we’re pretty happy with what we’ve got.
\n\n\n\nWe can definitely improve on that over time. But that is a huge milestone to be able to hit. And being able to have enough data, and enough research to confidently say that, I think is a really big win both for us and for our customers.
\n\n\n\n[00:39:26] Nathan Wrigley: Sadly, Jo, time is the enemy, and I feel like we’ve just pulled back the lid a teeny tiny bit on the big subject of usability. Honestly, I reckon I could talk for another two hours on this at least. You know, because you’ve got into colours there and all sorts, and there’s just so many tendrils that we haven’t been able to explore. But we’ve prized it open a little bit, and so hopefully the listener to this has become curious. If they have, where would they find you? What’s a good place to discover you online?
\n\n\n\n[00:39:53] Jo Minney: Yeah, so I think the best place is to hit up my personal blog, jominney.com. So it’s J O M I N N E Y .com. And I have a lot of stuff on there about usability, usability testing. I have a blog post that I wrote specifically for this talk that shares all of the resources that I used to put together the slides and everything. The talk itself will be on WordCamp TV. If you’re on socials and you want to hit me up, pretty much the only platforms I’m active on nowadays are LinkedIn and Bluesky, and I’m Jo Minney on both of them.
\n\n\n\n[00:40:23] Nathan Wrigley: Jo Minney, thank you so much for chatting to me today. I really appreciate it.
\n\n\n\n[00:40:27] Jo Minney: You’re most welcome, Nathan. Thanks for having me again.
\nToday, I bring you the first in a mini series of podcasts I recorded in person at WordCamp Asia in Manila. This flagship WordPress event brought together hundreds of WordPress professionals, enthusiasts and all manner of interested parties under one roof for a three day event – one contributor day, and two days of presentations.
\n\n\n\nI tracked down several of the speakers and workshop organisers, and recorded them speaking about the subject they were presenting upon. I hope that you enjoy what they have to say.
\n\n\n\nSo on the podcast today we have the first of those conversations, and it’s with Jo Minney.
\n\n\n\nJo, based in Perth, Australia, is passionate about user experience, data-driven decision-making, cats, pockets and travel. She’s a small business founder, and works with organisations creating digital platforms with WordPress. She also freelances as a UX consultant. She volunteers with Mission Digital to address social issues using technology, and is an ambassador for She Codes Australia, promoting tech accessibility for women. Recognised as a 2023 Shining Star by Women in Technology Western Australia, Jo is an international speaker on topics like user experience, accessibility, and gender equality. She’s committed to ensuring a seamless user experience, and today shares her insights from practical, everyday usability testing.
\n\n\n\nJo’s presentation, entitled Budget-Friendly Usability Testing for WordPress helped attendees understand what usability testing is, x and clarified why it differs from other testing methods. She shares examples from her work, showing how small changes can significantly impact user experience, which is better for you, the website builder, and your client, the website owner.
\n\n\n\nWe also discuss how usability testing can transform a website’s effectiveness by improving conversions. Jo explains the importance of recruiting novice users for testing, and highlights how usability testing pushes for real, user-centered improvements.
\n\n\n\nTowards the end, Jo shares practical advice on when and how to integrate usability testing into your process, advocating for early and iterative testing to preemptively address potential issues.
\n\n\n\nIf you’re looking to gain a deeper understanding of usability testing and its benefits, this episode is for you.
\n\n\n\nJo’s WordCamp Asia 2025 presentation: Budget-Friendly Usability Testing for WordPress
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 Mar 2025 18:37:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:25;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:102:\"Do The Woo Community: Building Trust and Converting Sales with Simple UX Decisions with Marc McDougall\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93465\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:101:\"https://dothewoo.io/building-trust-and-converting-sales-with-simple-ux-decisions-with-marc-mcdougall/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:198:\"In this episode of Woo DevChat, hosts discuss UX design and CRO with Marc McDougall, who shares insights on common misconceptions, mistakes, and the evolving role of AI in enhancing user experience.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 Mar 2025 15:58:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:26;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"Do The Woo Community: Get Ready for the Atarim Web Agency Summit 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93450\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"https://dothewoo.io/blog/get-ready-for-the-atarim-web-agency-summit-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:359:\"The Atarim Web Agency Summit 2025, scheduled for April 7-11, is a free virtual event for web professionals. Featuring over 40 expert-led sessions, it offers actionable insights for agency growth, networking opportunities, and access to industry leaders. Registration is free, with replay options available, making it essential for anyone in the digital space.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 Mar 2025 15:08:27 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:27;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:135:\"HeroPress: With open arms – friendships in the WordPress community – Su atviromis rankomis – draugystės WordPress bendruomenėje\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=7820\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:180:\"https://heropress.com/essays/with-open-arms-friendships-in-the-wordpress-community/#utm_source=rss&utm_medium=rss&utm_campaign=with-open-arms-friendships-in-the-wordpress-community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:19273:\"Šį rašinį galima rasti ir lietuvių kalba.
\n\n\n\nTruth be told, unlike my husband, I have never been the most social person. At a party, you’ll usually find me talking to the dog (or cat). Throughout my life, I’ve only had a few close friends, and I’d rather be reading a book than going to a concert. While WordPress has been a huge part of the growth of my business, I’d like to take this opportunity to discuss something much more important – the friendships that I have formed through this wonderful community.
\n\n\n\n\n\n\n\n\nDue to WordPress, I have some truly spectacular friends in my life.
\n
While we may have started as strangers, we moved into attending each other’s weddings, laughing until we’re crying while packing hundreds of swag orders, holding hands in a hospital bed and being there for each other through thick and thin. Being a privacy lawyer, I won’t name any names here but you’ll probably be able to tell pretty quickly if I’m writing this about you.
\n\n\n\nWhen I was finishing up law school, I worked at a small web design agency in Chicago as their COO. I met my husband, Hans, who was the owner of a different agency when he came to buy us out. It was love at first sight (yes, really) and we have been inseparable ever since. We shared our struggles and annoyances over dinner one night – writing Privacy Policies for clients was monotonous for me and he had no idea what to do when a client asked him about website policies. So we created Termageddon – an auto-updating website policies solution for agencies and their clients. Since we started an agency partner program, we knew that we had to find agencies who would be willing to try our new product and that’s when we came across WordCamps and the WordPress community.
\n\n\n\nWordPress has a huge community and going to a large WordCamp such as WordCamp US when you don’t know anyone can be really scary (especially for an introvert like me) so we thought that we’d get our feet wet with a smaller WordCamp nearby. Enter WordCamp Jackson, Michigan.
\n\n\n\n\n\n\n\n\nDriving into the most adorable small city that we have ever visited, we were very nervous – what if no one wanted to talk to us?
\n
These fears were quickly dispelled when we walked into a room with about 30 friendly faces. Even the mayor was in attendance! During a break, we all sat on couches and our new friends helped us come up with the design for our very first swag item: a t-shirt with a pirate asking “Arrrr you compliant?”. I still smile every time I put it on. The next thing we know, the informative presentations are over and we’re all piling into cars and going to an escape room. The friendships formed during that event have lasted many years. In fact, one of our friends from that very first WordCamp helped us build our chicken coop.
\n\n\n\nA while later, my husband went to London and met a friend through a non-WordPress event and they truly hit it off (seriously, they have a standing call twice per month for five years now). A few months later, it was time for our first WordCamp US and our friend flew from the UK to Chicago to stay with us and our plan was to take a road trip and drive from our home to the WordCamp. Well, it just so happened that his other friend who was also going to WordCamp (someone we haven’t met before), missed his flight. Our friend called us to explain the situation and asked whether he could change his flight to Chicago, stay with us and join our road trip. We said “come on over!” Well, that missed flight led to the best trip of all time and a lifelong friendship.
\n\n\n\nI’ll always remember him walking me to the store to buy some tea on a cold evening, all of us posing for a picture next to the St. Louis arch, hanging out in various hotels and Airbnb’s throughout the years, sharing stories from our youth, marveling at the excitement and joy of growing families, and supporting each other’s business ventures. We’ve seen each other many times throughout the years on various trips and WordCamps and I think of us as our core group at these events – a safe space amidst all of the chaos.
\n\n\n\nWhen you start establishing yourself in an industry or a community, you may think of other people in the space as competitors. While it’s certainly not the best trait that humanity has to offer, I think that this happens more frequently than we would like to admit. When I was new in the WordPress community, there was an established privacy attorney who had been a part of that community for much longer than I have. Going to WordCamp US, I knew that she was going to be giving a speech on the California Consumer Privacy Act and how to comply with this privacy law. To be honest with myself and you, I was extremely nervous about meeting her. What if she thought that I was a competitor? What if she disliked me? What if there’s not enough room for two privacy lawyers at this event? Should I just hide throughout the entire event to make sure that she doesn’t see me?
\n\n\n\nIt’s true that we create these extreme scenarios in our minds but reality is usually much different (and less scary). We quickly bonded over the fact that we were the only two people there who knew what CCPA even is and, by the end of the night, we were jammed together in an Uber going to a bar. Throughout the years, we have supported each other’s projects, participated in long evenings of conversations, shared our struggles and wins. Due to her kindness and welcoming nature, we did not head towards competition but are able to enjoy the benefits of a wonderful symbiosis and a true friendship.
\n\n\n\nHanging out with your friends at WordCamps is fun but it’s even more fun when your friendship progresses to the point where your friends fly over to hang out at your home. Well, in this case, we only got to hang out for one day before my friend got very sick. Not the “I have the flu” kind of sick, the over a week in the ICU and months in the hospital kind of sick.
\n\n\n\nThroughout that time, we met her family, who stayed with us for a while as we live very close to the hospital. While this time was certainly grueling for everyone involved, it also shed a new perspective on how friends get through tough times. Whether it was rides to the hospital, sitting together, crying together, making home cooked meals, celebrating every win, no matter how small, the friendship, the community, and the knowledge that we were there for each other let us make it through this difficult time. The day that she got out of the hospital was truly miraculous.
\n\n\n\n\n\n\n\n\nAnd now, we are most certainly not just WordCamp friends, we’re family – for life.
\n
Up to this point in my life, I have been a part of many communities – from school, to dance groups, to attorney associations, to my local neighborhood, each community has had something special to offer. However, I have never been involved with another community that is as welcoming or that has led to the formation of so many wonderful friendships as WordPress. From sharing a beer (or a boot of beer), to attending our wedding through Zoom (2020), to making a flower crown, to eating so much sushi that I could barely walk back to the Airbnb, to corn mazes and petting zoos, and touring a submarine together, I am truly thankful that the WordPress community has welcomed me with open arms and I hope that I can do the same for others!
\n\n\nWe asked Donata for a view of her office this is what she sent!
\n\n\nHeroPress would like to thank Draw Attention for their donation of the plugin to make this interactive image!
\nTiesą sakant, kitaip nei mano vyras, niekada nebuvau pati socialiausia asmenybė. Vakarėlyje mane dažniausiai rastumėte kalbančią su šunimi (ar kate). Visą savo gyvenimą turėjau tik keletą artimų draugų, o knygos skaitymas man visada buvo malonesnis nei koncerto lankymas. Nors WordPress atliko didžiulį vaidmenį plėtojant mano verslą, norėčiau pasinaudoti šia proga ir pakalbėti apie kai ką daug svarbesnio – draugystes, kurias užmezgiau šioje nuostabioje bendruomenėje.
\n\n\n\n\n\n\n\n\nDėl WordPress turiu iš tiesų nuostabių draugų savo gyvenime.
\n
Nors pradėjome kaip svetimi, mes tapome tais, kurie dalyvauja vienas kito vestuvėse, juokiasi iki ašarų pakuodami šimtus reklaminių dovanų, laiko vienas kitam ranką ligonines lovoje ir būna kartu per storą ir ploną. Kadangi esu privatumo teisininkė, nemininesiu vardų, tačiau tikriausiai greitai suprasite, jei rašau apie jus.
\n\n\n\nKai baiginėjau teisės studijas, dirbau mažoje interneto dizaino agentūroje Čikagoje kaip COO. Ten sutikau savo vyrą Hansą, kuris buvo kitos agentūros savininkas, kai jis atvyko mus nupirkti. Tai buvo meilė iš pirmo žvilgsnio (taip, tikrai), ir nuo to laiko mes esame neatskiriami. Vieną vakarą dalinomės savo sunkumais ir nepasitenkinimais – man buvo nuobodu rašyti privatumo politikos dokumentus klientams, o jis net nežinojo, ką daryti, kai klientas paprašydavo interneto svetainės politikos. Taip gimė Termageddon – automatiškai atnaujinamas interneto svetainių politikos sprendimas agentūroms ir jų klientams. Kadangi pradėjome agentūrų partnerių programą, turėjome rasti agentūras, kurios būtų pasiruošusios išbandyti mūsų naują produktą, ir tada mes atradome WordCamps ir WordPress bendruomenę.
\n\n\n\nWordPress turi didžiulę bendruomenę, o vykstant į didelį WordCamp renginį, pavyzdžiui, WordCamp US, kai nieko nepažįsti, gali būti labai baisu (ypač tokiai intravertei kaip aš), todėl nusprendėme pradėti nuo mažesnio WordCamp netoli mūsų. Taip mes atsidūrėme WordCamp Jackson, Mičiganas.
\n\n\n\n\n\n\n\n\nVažiuodami į vieną mieliausių mažų miestelių, kokius tik esame matę, labai nervinomės – o kas bus jei niekas nenorės su mumis kalbėtis?
\n
Šios baimės greitai išnyko, kai įėjome į kambarį su maždaug 30 draugiškų veidų. Netgi miesto meras dalyvavo! Per pertrauką visi susėdome ant sofų, o naujieji draugai padėjo mums sukurti mūsų pirmojo reklaminių dovanų daikto dizainą: marškinėlius su piratu, klausiančiu “Arrrr you compliant?” (Ar esate atitinkantys?). Vis dar šypsausi, kai juos apsivelku. Nespėjome apsidairyti, o jau po naudingų pranešimų visi susėdome į automobilius ir vykome į pabėgimo kambarį. Draugystės, užmezgtos šio renginio metu, tęsiasi jau daugelį metų. Tiesą sakant, vienas iš mūsų draugų iš to pirmojo WordCamp padėjo mums pastatyti vištų tvartą.
\n\n\n\nKiek vėliau mano vyras išvyko į Londoną ir susipažino su draugu per ne-WordPress renginį, ir jie tikrai susidraugavo (rimtai, jie kalbasi kas dvi savaites jau penkerius metus). Po kelių mėnesių atėjo metas mūsų pirmajam WordCamp US, ir mūsų draugas nuskrido iš JK į Čikagą, kad apsistotų pas mus, o mūsų planas buvo keliauti automobiliu nuo namų iki WordCamp. Tačiau nutiko taip, kad jo kitas draugas, kuris taip pat vyko į WordCamp (mes jo dar nebuvome sutikę), praleido savo skrydį. Mūsų draugas paskambino mums, paaiškino situaciją ir paklausė, ar jo draugas gali pakeisti skrydį į Čikagą, apsistoti pas mus ir prisijungti prie mūsų kelionės. Mes pasakėme: “Užeikit!” Tas praleistas skrydis privedė prie geriausios kelionės gyvenime ir viso gyvenimo draugystės.
\n\n\n\nAš visada prisiminsiu, kaip jis lydėjo mane į parduotuvę nusipirkti arbatos šaltą vakarą, kaip visi kartu pozavome nuotraukai prie Saint Louis arkinio paminklo, kaip per daugelį metų leisdavome laiką įvairiuose viešbučiuose ir Airbnb, dalijomės jaunystės istorijomis, stebėjomės augančių šeimų džiaugsmu ir jauduliu bei palaikėme vieni kitų verslo sumanymus. Per daugelį metų matėmės daugybę kartų įvairių kelionių ir WordCamp renginių metu, ir aš mus laikau pagrindine grupe šiuose renginiuose – saugia vieta viso šurmulio apsuptyje.
\n\n\n\nKai pradedate įsitvirtinti tam tikroje pramonėje ar bendruomenėje, galite pagalvoti, kad kiti žmonės šioje srityje yra konkurentai. Nors tai tikrai nėra geriausia žmonijos savybė, manau, kad taip nutinka dažniau, nei norėtume pripažinti. Kai buvau naujokė WordPress bendruomenėje, buvo viena pripažinta privatumo teisininkė, kuri buvo šios bendruomenės dalis daug ilgiau nei aš. Važiuodama į WordCamp US, žinojau kad ji ketina skaityti pranešimą apie Kalifornijos vartotojų privatumo įstatymą (CCPA) ir kaip laikytis šio privatumo įstatymo. Būsiu atvira – man buvo labai neramu ją sutikti. O kas, jei ji manytų, kad esu konkurentė? O jei jai nepatikčiau? O jei šiame renginyje nepakaktų vietos dviem privatumo teisininkėms? Gal man geriau viso renginio metu slėptis, kad tik ji manęs nepastebėtų?
\n\n\n\nTiesa ta, kad dažnai kuriame kraštutinius scenarijus savo galvose, bet realybė dažniausiai būna visai kitokia (ir mažiau bauginanti). Greitai susidraugavome, nes supratome, kad esame vienintelės dvi moterys renginyje, kurios iš viso žinojo kas yra CCPA. Vakaro pabaigoje jau spraudėmės kartu į Uber važiuodamos į barą. Per tuos metus palaikėme viena kitos projektus, dalijomės ilgais pokalbiais vakarais, kartu išgyvenome sunkumus ir džiaugėmės pasiekimais. Dėl jos geranoriškumo ir svetingumo nepasukome konkurencijos keliu, o galėjome džiaugtis nuostabia simbioze ir tikra draugyste.
\n\n\n\nLeisti laiką su draugais „WordCamp“ renginiuose yra smagu, bet dar smagiau, kai draugystė tampa tokia stipri, kad draugai atskrenda pas jus tiesiog pabūti kartu. Na, šiuo atveju, mes spėjome pabūti tik vieną dieną, kol mano draugė labai susirgo. Ne „turiu gripą“ lygio susirgo, o taip, kad teko praleisti daugiau nei savaitę reanimacijoje ir kelis mėnesius ligoninėje.
\n\n\n\nTuo sunkiu metu susipažinome su jos šeima, kuri kurį laiką gyveno pas mus, nes gyvename labai arti ligoninės. Nors šis laikotarpis tikrai buvo alinantis visiems, jis taip pat suteikė naują perspektyvą, kaip draugai išgyvena sunkius laikus kartu. Nesvarbu, ar tai buvo kelionės į ligoninę, sėdėjimas kartu, verksmas kartu, naminiai patiekalai ar kiekvienos, net ir mažiausios pergalės šventimas – draugystė, bendruomenė ir žinojimas, kad esame vieni kitiems, padėjo mums išgyventi šį sunkų laikotarpį. Diena, kai ji išėjo iš ligoninės, buvo tikras stebuklas.
\n\n\n\n\n\n\n\n\nDabar mes tikrai ne tik WordCamp draugės – mes šeima visam gyvenimui.
\n
Iki šiol mano gyvenime buvo daugybė bendruomenių – nuo mokyklos, šokių grupių, teisininkų asociacijų iki mano vietinės kaimynystės – kiekviena bendruomenė turėjo ką nors ypatingo. Tačiau niekada nebuvau dalis kitos bendruomenės, kuri būtų tokia svetinga ir kuri būtų padovanojusi tiek daug nuostabių draugysčių kaip WordPress. Nuo alaus bokalo (arba alaus bato) dalijimosi, iki mūsų vestuvių stebėjimo per Zoom (2020 m.), iki gėlių vainikų pynimo, iki tiek daug sušio valgymo, kad vos galėjau pareiti atgal į „Airbnb“, iki kukurūzų labirintų ir gyvūnų ūkių lankymo, ir net povandeninio laivo ekskursijos – esu nuoširdžiai dėkinga, kad WordPress bendruomenė mane priėmė atviromis rankomis, ir tikiuosi, kad galėsiu padaryti tą patį kitiems!
\nThe post With open arms – friendships in the WordPress community – Su atviromis rankomis – draugystės WordPress bendruomenėje appeared first on HeroPress.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 Mar 2025 01:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"Donata Stroink-Skillrud\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"WordPress.org blog: WordPress 6.8 Release Candidate 1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18639\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/03/wordpress-6-8-release-candidate-1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9186:\"The first Release Candidate (“RC1”) for WordPress 6.8 is ready for download and testing!
\n\n\n\nThis version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC1 on a test server and site.
\n\n\n\nReaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.8 is the best it can be.
\n\n\n\nYou can test WordPress 6.8 RC1 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the RC1 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-RC1 |
WordPress Playground | Use the 6.8 RC1 WordPress Playground instance (available within 35 minutes after the release is ready) to test the software directly in your browser without the need for a separate site or setup. |
The current target for the WordPress 6.8 release is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for further details.
\n\n\n\nGet a recap of WordPress 6.8’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since Beta 3, you can browse the following links:
\n\n\n\nWant to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:
\n\n\n\nWordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.
\n\n\n\nTesting for issues is critical to ensuring WordPress is performant and stable. It’s also a meaningful way for anyone to contribute. This detailed guide will walk you through testing features in WordPress 6.8. For those new to testing, follow this general testing guide for more details on getting set up.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nFrom now until the final release of WordPress 6.8 (scheduled for April 15, 2025), the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nFor plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.
\n\n\n\nThanks for continuing to test your themes and plugins with the WordPress 6.8 beta releases. With RC1, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.8.
\n\n\n\nIf you find compatibility issues, please post detailed information to the support forum.
\n\n\n\nDo you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? You can help translate WordPress into more than 100 languages. This release milestone (RC1) also marks the hard string freeze point of the 6.8 release cycle.
\n\n\n\nMarch fades, nearly there,
Six-eight hums—a steady beat,
RC greets the world.
Thank you to the following contributors for collaborating on this post: @joemcgill @benjamin_zekavica @courane01 @mkrndmane @audrasjb @areziaal @ankit-k-gupta @krupajnanda @bph.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 25 Mar 2025 16:19:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:29;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"Do The Woo Community: A Continued Saga About the Life of Blog Posts\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93306\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://dothewoo.io/blog/a-continued-saga-about-the-life-of-blog-posts/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:225:\"BobWP chats about the importance of adding content instead of removing it, expressing commitment to producing more podcasts, videos, and blog posts despite claims of blog irrelevance, valuing audience engagement over metrics.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 25 Mar 2025 13:01:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:30;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"Do The Woo Community: On the Floor at CloudFest 2025 with Adam Weeks and Christian Taylor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93275\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://dothewoo.io/on-the-floor-at-cloudfest-2025-with-adam-weeks-and-christian-taylor/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:226:\"Adam Weeks and Christian Taylor explore CloudFest, assessing booth designs and marketing strategies. They discuss visual engagement, effective messaging, and the significance of interactive experiences in attracting attendees.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 25 Mar 2025 07:46:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"Do The Woo Community: How AI is Reshaping Enterprise WordPress in 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=91953\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://dothewoo.io/blog/how-ai-is-reshaping-enterprise-wordpress-in-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:191:\"AI is transforming enterprise WordPress through coding tools and personalization, but poses risks requiring careful integration and oversight amidst evolving challenges and security concerns.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 24 Mar 2025 11:40:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:32;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:111:\"Gutenberg Times: Get ready for WordPress 6.8, Source of Truth, a book, and code with AI — Weekend Edition 322\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=38031\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:115:\"https://gutenbergtimes.com/get-ready-for-wordpress-6-8-source-of-truth-a-book-and-code-with-ai-weekend-edition-322/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:21287:\"Hi, the spring is coming to Munich this weekend, or that’s what the forecast tells us. With temperatures around 18 °C / 64° F, I will spend a few hours outside on long walks in the Englisch Garden and possible get my bicycle working again. I am looking forward to getting away from the screens all together and having in-person conversations with my cousin and his wife. They are accomplished musicians and different kind of nerds.
\n\n\n \n\n\nYours, 💕
Birgit
PS: I just started my travel preparation for WordCamp Europe. Want to meet me? bit.ly/WCEUMeetBirgit
\n\n\n\nWordPress 6.8 Beta 3 was released on March 18, 2025, and it is ready for testing. If you need inspiration and instruction on how and what to test, the test team’s post is for you. Help Test WordPress 6.8.
\n\n\n\nJoe Dolson published the dev note on Changes to the .screen-reader-text class in WordPress 6.8 The .screen-reader-text
class replaces the deprecated clip
property with clip-path: inset(50%)
for modern browser compatibility and accessibility improvements. Focus styles remain unchanged to ensure visibility during keyboard navigation. Developers should update themes and plugins using .screen-reader-text
to align with these changes for future-proofing.
A group of contributors collaborated on the Source of Truth (WordPress 6.8). Learn everything about enhanced data views, query loops, and block interactions. Also about the more cohesive design experience through the Zoom Out editing approach, expanded style controls, and improved typography options. WordPress 6.8 is scheduled to be released on April 15, 2025
\n\n\n\nGeorge Mamadashvili released Gutenberg 20.5 and the changelog is available on GitHub. Among the updates you’ll find
\n\n\n\nTroy Chaplin published What’s new for developers? (March 2025) on the WordPress Developer blog. He covers Gutenberg 20.3 and 20.4 as well as updates around the WordPress 6.8 release cycle.
\n\n\n\nAs one of the first to cover the upcoming major release, Nithin Sreeraj at WP-Content posted WordPress 6.8 Expected Features and Changes.
\n\n\n\n🎙️ Latest episode: Gutenberg Changelog 116 – WordPress 6.8, Source of Truth, Field Guide, Gutenberg 20.5 and 20.6 with special guest JC Palmes, WebDev Studios
\n\n\n\nBhargav (Bunty) Bhandari takes building in public quite literally. This time he created a Poll block for WordPress. It allows you to create interactive polls directly within the WordPress Block Editor, with design tools, voting options and results in real time. The code is available on GitHub until he submits it to the WordPress repository.
\n\n\n\nJamie Marsland runs an always friendly and welcoming WordPress Gutenberg Facebook group! The description read: “A community for Gutenberg users to learn, share, and explore tips on building WordPress websites using the Blocks Editor.” It’s a private group, too. Marsland wrote: “Whether you need help with WordPress editing or want to share your knowledge, we’d love to have you.”
\n\n\n\nSome people like to learn via videos; other people prefer books.
\n\n\n\nKoji Kuno, a web developer from Japan and contributor to WordPress, published a book called Creating a Website with Twenty-Twenty-Five in late 2024. This book is designed for beginners who want to learn how to create websites using WordPress 6.7 and its newest theme, Twenty-Twenty-Five.
\n\n\n\nThe book starts by explaining the basics of WordPress, including how its block themes, block editor, and site editor work. Once readers understand these concepts, Kuno dives deeper into the Twenty-Twenty-Five theme. He provides a detailed overview of the theme’s files, layout structures, style options for blocks and fonts, and how templates and patterns connect to each other.
\n\n\n\nKuno also includes step-by-step guides for building two types of websites: a blog site and a coffee shop site. He uses clear explanations and helpful graphics to make everything easy to follow, even for beginners. While most of the instructions focus on using WordPress’s site editor, Kuno also touches on the underlying code for certain features, such as supporting post formats.
\n\n\n\nOverall, the book strikes a good balance between practical tutorials and technical insights. It’s an excellent resource for anyone looking to learn website design with WordPress in an approachable way.
\n\n\n\nElliot Richmond experimented with Cursor AI to build a Block Theme. You can follow along on YouTube and see he is using Cursor AI for refactoring and code generation, about the challenges and results of AI-generated block themes, and some lesson learned turned into best practices .
\n\n\n \n\n\nIn his post Additional Block Styles for Child Themes, Silvan Hagen shares how you can block styles by copying the relevant CSS file from the parent theme to the child theme and making adjustments. Hagen also provides a code snippet to append custom block styles from the child theme without overwriting the parent styles, by adding a function to the child theme’s functions.php
file that enqueues the custom styles.
“Keeping up with Gutenberg – Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. The previous years are also available: 2020 | 2021 | 2022 | 2023 | 2024
In his post, Local WordPress Development Workflows Using Studio , Nick Diego walks you through two development workflows using Studio by WordPress.com. He covers using Git Deployments to WordPress.com for your newly developed plugin or theme. In the second part of the article you’ll learn how to structure a complete website build, share a preview with clients and colleagues, and sync to a live site on WordPress.com.
\n\n\n\nMuhammad Muhsin, developer at Awesome Motive, used the WordPress Interactivity API to build a simple Stopwatch block. He is also working on a tutorial to go along with it. Meanwhile, you can study his code on GitHub next to the documentation of the Interactivity API.
\n\n\n\nIn this week’s live stream, How to build incredible WordPress Blocks with Cursor AI, Ryan Welcher and Nick Diego explored how AI can help you create great WordPress blocks. They shared useful tips and cool AI tools to improve your block-building skills and make things easier. Don’t miss this chance to discover new possibilities for your WordPress site!
\n\n\n\nThe @wordpress/data
package introduces a data layer to the WordPress Block Editor, enabling efficient state management and interaction with the editor’s ecosystem.
In two of his live streams, JuanMa Garrido embarked into the depth of the data package and discuss how to work with the data package. In Data in the Block Editor, part one, he explores the various stores, how to retrieve and update store data and dispatch actions. In Data In the Block Editor, part two, Garrido continues to work through the block editor documentation and the date layer course on learn.WordPress.org
\n\n\n \n\n\nIn his live stream, Ryan Welcher walked his viewers through the work necessary to add tests to his Advanced Query Loop plugin so developers who want to extend on the plugin can test custom hooks.
\n\n\n \n\n\nOn his video channel, Jon Bossenger streams on his adventure using AI for coding. You find out with him what works and what doesn’t. In his latest video Let’s Vibe, he wanted to find out what Vibe Coding is all about and if it actually can produce functional software.
\n\n\n \n\n\nNeed a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience
\n\n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
Featured Image: Garage door and wall with rectangles of various colors painted on them for decoration Photo by Marcus Burnette found on WordPress.org/photos
\n\n\n\nDon’t want to miss the next Weekend Edition?
\n\n\n\n\n\nI was interviewed by Inc magazine for almost two hours where we covered a lot of great topics for entrepreneurs but almost none of it made it into the weird hit piece they published, however since both the journalist and I had recording of the interview I’ve decided to adapt some parts of it into a series of blog posts, think of it as the Inc Article That Could Have Been. This bit talks about some of the meta-work that myself and the Bridge team at Automattic do.
At Automattic, the most important product I work on is the company itself. I’ve started referring to it as the “Automattic Operating System.” Not in the technical sense like Linux, but the meta layer the company runs on. The company isn’t WordPress.com or Beeper or Pocket Casts or any one thing. I’m responsible for the culture of the people who build those things, building the things that build those things. It’s our hiring, our HR processes, our expenses, the onboarding docs; it’s all of the details that make up the employee experience — all the stuff that shapes every employee’s day-to-day experience.
Take expense reports. If you’ve got to spend two hours taking pictures of receipts and something like that, that’s a waste of time. You’re not helping a customer there. We switched to a system where everyone just gets a credit card. It does all the reporting and accounting stuff automatically. You just swipe the card and it just automatically files an expense report. Sometimes there’s an exception and you have to work with the accounting rules, but it just works and automates the whole process most of the time.
\n\n\n\nAnother commonly overlooked detail is the offer letter. We think so much about the design of our websites and our products. We have designers work on that and we put a lot of care and thought into it. But I realized we didn’t have the same attention to detail on our offer letter. When you think about it, getting an offer letter from a company and deciding to take it is a major life decision, something you only do a handful of times in your life. This is one of the things that determines your life path. Our offer letter was just made by attorneys and HR. No designer had looked at it right. We hadn’t really thought about it from a product experience point of view. And so it was just this, generic document with bad typography and not great design. But it’s important, so one of the things we did was redesign it. Now it has a nice letterhead, great typography, and it’s designed for the end user.
I realized that the salary and stuff was buried in paragraph two. It was just a small thing in the document! Well, what’s key when you’re deciding whether to take a job? Start date, salary, you know, that sort of thing, so we put the important parts at the very top.
And then there’s the legal language. All the legal stuff, which is different in every country. We have people in 90 countries, so there’s all the legal stuff that goes in there. And then it has this nudge inspired by the behavioral economics book, Predictably Irrational.
There’s the story about how, if you have an ethics statement above where you sign the test or something, people cheat less. So I thought, well, what’s our equivalent of that? We have the Automattic Creed. It’s an important part of our culture. So we put the creed in, it says
\n\n\n\n\nI will never stop learning. I won’t just work on things that are assigned to me. I know there’s no such thing as a status quo. I will build our business sustainably through passionate and loyal customers. I will never pass up an opportunity to help out a colleague, and I’ll remember the days before I knew everything. I am more motivated by impact than money, and I know that Open Source is one of the most powerful ideas of our generation. I will communicate as much as possible, because it’s the oxygen of a distributed company. I am in a marathon, not a sprint, and no matter how far away the goal is, the only way to get there is by putting one foot in front of another every day. Given time, there is no problem that’s insurmountable.
\n
It’s not legally binding, but it’s written in the first person, you read it and you kind of identify with it and then you sign below that. We want people who work at the company who identify with our core values and our core values really are in the creed.
\n\n\n\nThese sorts of things are key to our culture. And they’re universal. Again, we have people from over 90 countries. These are very different cultures, yes, and very different historical backgrounds and cultural makeups. But what’s universal? We have our philosophies that we apply every day regardless of where you were born or where you work.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 21 Mar 2025 22:15:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:34;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:64:\"Gravatar: Digital Business Card Examples With Professional Flair\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"http://blog.gravatar.com/?p=3083\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"https://blog.gravatar.com/2025/03/21/digital-business-card-examples/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:19747:\"Looking for digital business card examples that actually work? Networking has changed, but the need to make a strong first impression hasn’t, and business cards are a big part of it. So, if you’re looking for inspiration, we’ll show you real digital business cards from various industries that successfully blend professional presentation with practical functionality.
\n\n\n\nOur list includes sleek corporate profiles and creative designs for artists and freelancers, each a great example of how to make your information accessible while maintaining your personal brand.
\n\n\n\nBy the end of this article, you’ll have actionable ideas for creating your own digital business card. And the best part? You can set up a free, customizable digital business card in minutes using Gravatar – no coding or design skills required.
\n\n\n\nLooking at my Gravatar profile, you can see how it functions as a complete digital business card that travels with me across the web. I’ve personally included a professional headshot, custom banner image, some interesting images, and verified links to all my social profiles. These sections are completely customizable, and what you include depends entirely on your goals.
\n\n\n\nWhat makes this especially useful for networking is the QR code functionality. When meeting someone at a conference or event, I can quickly pull up my Gravatar profile QR code from my phone’s digital wallet. With one quick scan, my new contact instantly has access to all my professional information.
\n\n\n\nAnyone who scans my QR code can immediately connect with me through multiple channels – they can view my contact details, send me money, or browse through my featured photos for a more personal touch. No more fumbling with paper cards or manually typing contact info into phones.
\nAs a technical professional, my Gravatar profile is quite literally the foundation of my online presence. When I contribute to GitHub, post on Stack Overflow, or communicate through Slack, my Gravatar profile appears automatically, helping me build a more recognizable personal brand.
\n\n\n\nThe best part? I only need to update my information in one place. If I change roles or add new contact methods, updating my Gravatar profile instantly refreshes my presence across all integrated platforms – saving time and ensuring consistency.
\n\n\n\nWant to create your own universal digital business card? Sign up at Gravatar.com using just your email address. It takes minutes to set up but provides lasting professional benefits everywhere you go online.
\n\n\n\nReal estate agents face unique networking challenges – they need to connect instantly with potential buyers and showcase properties efficiently. Digital business cards can help in this process by offering scannable QR codes that provide immediate connections with house hunters.
\n\n\n\nTake Liz Nitz’s digital business card as an example.
\n\n\n\nAs a Bozeman-based real estate agent, her Gravatar profile functions as a powerful lead generation tool. When potential clients scan her QR code, they gain instant access to her contact information plus direct links to her real estate website, where current property listings are just a tap away. This approach eliminates friction in the buying process – no typing long URLs or searching for contact details.
\n\n\n\nThe benefits go beyond real estate into technical fields where showing your expertise is extremely important. Tech professionals use digital business cards to highlight their portfolios, technical skills, and ongoing projects.
\n\n\n\nSimon Willison, founder of Datasette, demonstrates this approach effectively through his GitHub profile.
\n\n\n\nHis presence includes links to his technical blog and personal projects, creating a comprehensive snapshot of his expertise. Visitors can easily contact him while exploring his work samples – all from a single profile.
\n\n\n\nWhat makes this especially powerful for tech professionals is GitHub’s integration with Gravatar. When developers update their Gravatar profile picture, those changes automatically appear on GitHub and ensure a consistent, professional presence without requiring multiple updates.
\n\n\n\nFor many industries, digital business cards eliminate the limitations of paper while adding dynamic elements like direct portfolio access, property listings, and instant contact options – turning a simple introduction into a potential business opportunity.
\n\n\n\nFor creative professionals, first impressions matter tremendously. Digital business cards give artists and freelancers a powerful advantage – the ability to showcase their actual work during initial meetings rather than just talking about it.
\n\n\n\nJonathan H. Kantor’s digital business card perfectly demonstrates this advantage.
\n\n\n\nAs an illustrator at Talking Bull Games, his Gravatar profile displays samples of his artwork directly on the card itself. New contacts can immediately see his illustration style and quality before clicking through to his full portfolio website. This visual introduction creates an instant connection that paper cards simply cannot match.
\n\n\n\nSimilarly, Shannon Cutts uses her digital business card to establish her credibility as a freelance writer.
\n\n\n\nHer profile links directly to her writing samples and service pages, allowing potential clients to quickly assess her style and expertise. This immediate access to her work helps her stand out in competitive pitching situations.
\n\n\n\nBoth Jonathan and Shannon have enhanced their cards with integrated QR codes connected to payment systems. This smart addition means that when someone appreciates their work, they can commission or purchase it on the spot by sending payment directly to the artist’s designated eWallet. No invoicing delays or payment friction – just a seamless transaction from introduction to sale, all through a digital business card.
\n\n\n\nCorporate professionals require business cards that convey expertise, professionalism, and comprehensive information. Thomas McCorry’s digital business card exemplifies this approach perfectly.
\n\n\n\nHis Gravatar profile is like a mini-CV, with a detailed bio section outlining his professional history and accomplishments. The card includes direct links to his personal website, portfolio of work, and LinkedIn profile – all organized in a clean, accessible format alongside professional photographs.
\n\n\n\nThis structured approach gives potential clients and contacts an immediate sense of Thomas’s experience and capabilities at a glance. Rather than trying to cram limited information onto a paper card, his digital version provides depth without overwhelming the viewer. Someone meeting Thomas can quickly understand his background and then access more detailed supporting materials about specific projects or expertise areas with a single tap.
\n\n\n\nCharles Leisure takes corporate networking a step further by connecting a QR code to his digital business card.
\n\n\n\nThis practical addition allows him to instantly share his complete professional profile during meetings or conferences by simply opening the QR code stored in his Apple or Google Wallet. Contacts can scan the code with their smartphone and immediately have all his information saved – eliminating the traditional business card exchange and ensuring his information never gets lost in a pocket or briefcase.
\n\n\n\nCreating a professional digital business card doesn’t require design skills or technical expertise. Anyone can set up a functional, customizable card like the examples showcased in this article by signing up for a free Gravatar profile.
\n\n\n\nGetting started takes just minutes, and the process is straightforward:
\n\n\n\nWith these seven simple steps, you’ll have a professional digital business card that works across platforms and makes networking more efficient and effective.
\n\n\n\nGravatar offers extensive customization options that let you create a truly personalized digital business card:
\n\n\n\nPrivacy is also thoughtfully integrated into the design system. Gravatar gives you control over which information remains public (like your avatar and display name) and which stays private (such as phone numbers or birth dates).
\n\n\n\nWhen a new site or app requests access to your non-public information, Gravatar will ask for your confirmation first.
\n\n\n\nThis privacy-first approach highlights one of Gravatar’s main strengths – functioning as a universal profile. Update your information once, and those changes instantly sync across all integrated platforms like WordPress, GitHub, and Slack, making your digital business card both customizable and remarkably efficient.
\n\n\n\nA free Gravatar profile offers the perfect solution for professionals seeking to establish a consistent online presence. More than just a digital business card, it functions as your unified identity across the web, appearing automatically on compatible platforms whenever you interact.
\n\n\n\nGetting started takes just minutes. Visit Gravatar.com, enter your email address, and follow the simple verification steps to create your profile. Add a professional photo, customize your information, and start connecting your social accounts. The process is straightforward and designed for users of all technical skill levels.
\n\n\n\nWhat truly sets Gravatar apart is its automatic synchronization capability. Once set up, your digital business card will appear seamlessly across WordPress.com, GitHub, Stack Overflow, and numerous other integrated platforms.
\n\n\n\nStart building your professional digital presence with Gravatar today!
\n\n\n\nIt’s so funny that my random re-engagement with Radiohead re-emergence coincides with them doing a new entity that might mean something. I did a poll on Twitter and people preferred OK Computer to Kid A 78%!
\n\n\n\nGrok told me: “The band has recently registered a new limited liability partnership (LLP) named RHEUK25, which includes all five members—Thom Yorke, Jonny Greenwood, Colin Greenwood, Ed O’Brien, and Philip Selway. This move is notable because Radiohead has historically created similar business entities before announcing new albums, tours, or reissues.”
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 Mar 2025 23:06:02 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:41;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:98:\"Do The Woo Community: Tara Claeys on the Benefits of Niching Down to School and Nonprofit Websites\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=92779\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"https://dothewoo.io/tara-claeys-on-the-benefits-of-niching-down-to-school-and-nonprofit-websites/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:230:\"In this episode of WP Agency Tracks, hosts Marcus Burnett and Cami MacNamara discuss the benefits and challenges of niching down with guest Tara Claeys, emphasizing her focus on schools and nonprofits for greater business success.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 Mar 2025 14:04:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:42;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:94:\"Do The Woo Community: Ronnie Burt Chats About Gravatar’s Evolution and CloudFest Experiences\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=93052\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:90:\"https://dothewoo.io/ronnie-burt-chats-about-gravatars-evolution-and-cloudfest-experiences/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:189:\"At CloudFest, Ronnie Burt discusses Gravatar\'s history, its integration with WordPress, recent spikes in usage from platforms like ChatGPT, and the importance of digital identity ownership.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 Mar 2025 10:30:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:43;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"Do The Woo Community: The Winners of the CloudFest Hackathon 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=93009\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://dothewoo.io/blog/the-winners-of-the-cloudfest-hackathon-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:210:\"The CloudFest Hackathon 2025 celebrated innovation in open-source development, featuring diverse awards and emphasizing inclusivity within the tech community, with Accessible Infographics as the overall winner.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 Mar 2025 15:57:07 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:44;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"WordPress.org blog: WordPress 6.8 Beta 3\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18634\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2025/03/wordpress-6-8-beta-3/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5533:\"WordPress 6.8 Beta 3 is now ready for testing!
\n\n\n\nThis beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it is recommended you evaluate Beta 3 on a test server and site.
\n\n\n\nYou can test WordPress 6.8 Beta 3 in four ways:
\n\n\n\nPlugin | Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream). |
Direct Download | Download the Beta 3 version (zip) and install it on a WordPress website. |
Command Line | Use the following WP-CLI command: wp core update --version=6.8-beta3 |
WordPress Playground | Use the 6.8 Beta 3 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup. |
The current target date for the final release of WordPress 6.8 is April 15, 2025. Get an overview of the 6.8 release cycle, and check the Make WordPress Core blog for 6.8-related posts in the coming weeks for more information.
\n\n\n\nCatch up on what’s new in WordPress 6.8: Read the Beta 1 and Beta 2 announcements for details and highlights.
\n\n\n\nYour help testing the WordPress 6.8 Beta 3 version is key to ensuring everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.8.
\n\n\n\nIf you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.
\n\n\n\nCurious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.
\n\n\n\nBetween Beta 1, released on March 4, 2025, and the final Release Candidate (RC) scheduled for April 8, 2025, the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.
\n\n\n\nWordPress 6.8 Beta 3 contains more than 3 Editor updates and fixes since the Beta 2 release, including 16 tickets for WordPress core.
\n\n\n\nEach beta cycle focuses on bug fixes; more are on the way with your help through testing. You can browse the technical details for all issues addressed since Beta 3 using these links:
\n\n\n\nBeta three refines,
WordPress shapes with steady hands,
Code grows into form.
Props to @benjamin_zekavica @krupajnanda @ankit-k-gupta @joemcgill for proofreading and review.
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 Mar 2025 15:35:14 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Jeffrey Paul\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:45;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"WPTavern: #161 – Robert Jacobi on WordPress, Security, and the OSI Model\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=188282\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:86:\"https://wptavern.com/podcast/161-robert-jacobi-on-wordpress-security-and-the-osi-model\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:52014:\"Transcript[00:00:00] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, WordPress, security, and the OSI model, which underpins the entire internet.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.
\n\n\n\nSo on the podcast today we have Robert Jacobi. Robert has a long standing history with the tech and CMS industry, having worked in senior positions at Joomla, Cloudways, Perfect Dashboard and more. He’s now the Chief Experience Officer at Black Wall, a company formally known as BotGuard.
\n\n\n\nRobert talks with me today about the transition from proprietary systems to open source, and the seven layer OSI model that underpins the internet. Drawing from his experiences in tech, Robert and I try, and perhaps fail, to break down the complexities of how website traffic is rooted over the internet. This is done to try to understand how Black Wall can position itself to mitigate risks before they reach hosting companies infrastructure.
\n\n\n\nWe also discuss the evolution of bot traffic on the web, where upwards of 10% of internet traffic is identified as malicious. This kind of insight is particularly important for those interested in the security aspect of web hosting and website management.
\n\n\n\nWe also get into Black Wall’s rebranding journey, and its continued dedication to the WordPress community by participating in events like WordCamp Asia and Europe.
\n\n\n\nIf you’ve ever wondered about the unseen layers of internet security and infrastructure, or the strategic moves involved in rebranding a tech company, this episode is for you.
\n\n\n\nIf you’re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you’ll find all the other episodes as well.
\n\n\n\nAnd so without further delay, I bring you Robert Jacobi.
\n\n\n\nI am joined on the podcast by Robert Jacobi. Very nice to have you on. I think I’m going to muddle up the company that you work for, because a little bird tells me that in the very, very recent past, the company that you work for became, well different in some way. Perhaps a name change, a logo change. Who did you work for and who do you now work for? And are they the same thing?
\n\n\n\n[00:03:08] Robert Jacobi: Well, I still have my original swag, the BotGuard polo, which all of us have at the team, but we are now Black Wall. So Black Wall, formerly known as BotGuard. So we’ve done a full rebrand. I’m sure a lot of folks have seen already. But yep, just bringing it forward. Allowing ourselves to take on more of what we do, on top of the highly focused bot security monitoring and mitigation.
\n\n\n\n[00:03:32] Nathan Wrigley: Okay. That’s a perfect introduction then. So give us your potted bio in tech, in CMSs. I’m not going to say WordPress because it’s a bit bigger than that. And maybe just throw in the BotGuard, Black Wall bit at the end there, and what your role is there. So just a couple of minutes. Just tell us who you are and whatnot.
\n\n\n\n[00:03:49] Robert Jacobi: Minutes, I could spend all day talking about myself. So I’ve been in the industry for a number of years. Mumble, mumble, how long it’s been. Let’s go with CMSs because, actually a big passion way back in the day, had an agency where we created our own, of course proprietary CMS because that’s what you did.
\n\n\n\nAnd then moved into open source for a number of reasons. Primarily, which I hope all agencies don’t need to talk about anymore, because I think it’s pretty obvious. It was the hit by a bus theory that, we put all our eggs into a proprietary basket, and we get hit by a bus, then that customer is stuck. With open source, there’s the community of the ecosystem, and it’s huge.
\n\n\n\nAnd, you’ll always have your preferred vendors for many, many, reasons, but if something happens, you’re not locked into that code. You’re not blindsided. That was a fairly quick transition, and wound up working at the time, sorry WordPress universe, went to Joomla because hey, back in that day Mambo slash which became Joomla, was honestly just more of a stack that our team leaned towards. It was MVC based. It was geeky. There were tons of features, and functions that the types of customers we were working with, it resonated with. Especially multilingual at the time.
\n\n\n\nFast forward, let’s say 10 years, and now WordPress is beyond a competing product. It’s got an ecosystem a, value with its name brand, and literally the immense community that’s been built around it.
\n\n\n\nFrom there went to, transitioned off of the Joomla space, and popped into a company called Perfect Dashboard. Oh, I forgot, I actually was the president of Joomla, briefly, so.
\n\n\n\n[00:05:31] Nathan Wrigley: Just a little fact there, yeah.
\n\n\n\n[00:05:32] Robert Jacobi: You know what, I should not forget that because that one year felt like 10. It’s a lot to work with a huge community, for many, many reasons. You have so many stakeholders. People whose lives depend on the product, the solution, the community, the ecosystem. Certainly not going to get into WordPress drama, but I understand how difficult it is to bear those responsibilities. And, it’s a lot. Immense amount of work. And WordPress has done amazing things in sustaining that for decades.
\n\n\n\nSo, moved over to the WordPress side of the universe. Company called Perfect Dashboard. We were acquired. Moved to running the WordPress business unit of Cloudways, also now acquired by Digital Ocean. And today I’m at Black Wall. I’m the Chief Experiences Officer for Black Wall. So that includes community, includes evangelism, includes investor in government relations. It’s really making sure that there’s an ability to communicate all the things that we do to the right people.
\n\n\n\n[00:06:32] Nathan Wrigley: And what does well formally BotGuard, now Black Wall, what do they do? What do they offer up into the market? Is it a WordPress thing, or is it more of a, we’ll get into the OSI model in a minute, but is it more of an operating system thing?
\n\n\n\n[00:06:46] Robert Jacobi: It’s at the top of the stack. So while, let’s just call it 50%, I know that’s not the exact number, but it’s close enough that I, think it’s fair to say, 50% of the web is run by WordPress. We’re still very heavily involved in the community. So we were just at WordCamp Asia. We’ll be at WordCamp Europe. These are places want to meet folks, communicate our solution, and engage with hosting providers because, when we get to running through our little OSI stack that you and I are obviously super experts in, we’ll kinda see where WordPress falls into it and where security matters, up and down that stack.
\n\n\n\nWe’re trying to help WordPress end users and hosting companies before you ever actually have to get to WordPress, because we already see that a significant portion of internet traffic, 40% of internet traffic is bots. AI agents, whatever you want to call them. And 25% of that 40%, so 10% is completely malicious. And you don’t want to get near the hosting company, the actual application, or anywhere further down the stack if you can avoid it.
\n\n\n\n[00:07:50] Nathan Wrigley: So it sounds, just the name, and I confess, I don’t know much about what BotGuard, Black Wall do, did. But it sounds to me from the naming of it, that it’s a bit like you are literally a sentinel. You are standing in the way of things. Examining things that are coming your way and saying, no, you may not pass, but you may.
\n\n\n\nAnd a bit like throwing it into dev null, if something is unable to pass, you are just black walling it, as it were. You are just saying, nope, off you go, drop, you’re outta here. Is that basically the principle? You are a security firm preventing things that are bad happening to whoever it is that uses your services.
\n\n\n\n[00:08:25] Robert Jacobi: Some of it’s super, super bad, so you’re going to dev null it. And then there’s a spectrum of how bad those connections can be. We want to focus on humans getting to human content. Our key, sort of value propositions, humans are secure, humans are actually visiting your site. That’s what’s important.
\n\n\n\nBut there are good bots, and there are good bots who accidentally do bad things. And then there are the bad, bad bots. We obviously want Google to index our sites. We may or may not want Open AI indexing our sites. We certainly don’t want it. causing an accidental denial of service by how much it’s scraping our content. Which we have seen many a time. Where it’s like, great Open AI, come on in, take one quick look and get out. But it’s like, I’m going to stay there and I’m going to churn through everything. And we’ve seen it and it knocks sites out. And the AI engines, agents are particularly bad about that, because they’re trying to fill in and understand that data.
\n\n\n\n[00:09:25] Nathan Wrigley: Yeah. Okay, so we’ve got some idea of what you do. Just as an aside, what a shame that the internet has a need for a company like yours. I don’t mean to take the food off your table, but back 20 years ago this just wasn’t really a thing. Just this promise of the internet to be this philanthropic place with unicorns and rainbows everywhere, where we were all going to throw our content in, and we were all going to consume it and it would be wonderful.
\n\n\n\nAnd now we have well, human beings presumably started the whole thing, but now human beings have written codes such that they can step away and let their robots carry on. And what a shame that we need to have things like captchas on forms. and we need to pay security companies to do all of this stuff.
\n\n\n\nAnd again, I’m not trying to say that your business doesn’t have a place. Clearly it does. But from a philosophical point of view, I wish that they didn’t need to exist, because the place was benign and harmless all the time.
\n\n\n\n[00:10:19] Robert Jacobi: I’m going to poke a tiny hole in that bubble.
\n\n\n\n[00:10:21] Nathan Wrigley: Please do.
\n\n\n\n[00:10:22] Robert Jacobi: Actually, this is not a bad thing because we’ve actually moved most of the troublemaking away from us locally. You want to go back 20 years ago and we’re dealing with Norton Antivirus on everything, and crossing our fingers and praying that something doesn’t sneak into our immediate homes.
\n\n\n\nWe’ve actually been able to, because we’ve gone to cloud, push a lot of that super local personal risk a bit further downstream. So these security issues didn’t magically appear, they were much more, in fact, they were much more terrifying before. And I, oh my god, my Windows PC got hacked and now I have to like completely just throw it on the grill, light it on fire five times, and then reinstall Windows.
\n\n\n\nMost folks don’t worry about doing that with their laptops, with their phones or whatnot anymore. The scalable risks are completely different, because me getting hacked was one person. Now a cloud website platform application, and then I’m, 10 million people get hacked. But we’re pushing it further away and away and away.
\n\n\n\n[00:11:24] Nathan Wrigley: Yeah, it’s interesting. I remember in the dawn of computers that I had, I didn’t begin my computer journey right at the very, very beginning. You could walk into a store and walk out with a computer in more or less, every town and village in the country, when I began using them.
\n\n\n\nBut the media, the way that you got things onto the computer was a physical thing. You held the object in your hand. It was either a CD or some kind of media that you could physically hold. And now of course literally nobody is installing anything off a CD. And so I guess the, inexorable rise of the internet, and everything coming down a, well, telephone line, and we’ll get into that in a moment. Putting it in the cloud makes way more sense, doesn’t it? It doesn’t really seem to have so much utility having the antivirus, if you like, on the computer. I know it does, don’t get me wrong. But I can see that the shift to mitigating the risk and detecting the risk and doing something about the problem in the cloud. Obfuscated, abstracted away, so that you never even really know what’s going on is probably the best way forward. So, yeah.
\n\n\n\n[00:12:25] Robert Jacobi: For 99.9 9, 9 9 9% of people, they’re not going to know or understand that they just want it to work. They don’t want to be robbed from, or in danger online. I always put it, as techy as I appear to be, I am the worst car person on earth. So when I think about internet security and what most people want to know about it, it’s pretty much what I want to know about cars.
\n\n\n\nI want my car to turn on. Go forward, go backward, get me to where I need to be as safely as possible. I don’t know, or care about anything else that’s going on under the hood. It’s a tool that I use and I want it to work like I expect it to work.
\n\n\n\n[00:13:04] Nathan Wrigley: Yeah. Given the population at large, it must be, one in a hundred thousand who care about the internals of their machine, probably even less so. Doesn’t matter really what you’re using, be it Mac, Windows, Linux, Chromebook, whatever it is, you just to flip the lid open and you want to just.
\n\n\n\n[00:13:18] Robert Jacobi: Check my email, log into my social media, buy something, call it a day.
\n\n\n\n[00:13:23] Nathan Wrigley: But because it’s becoming an increasingly crucial part of our lives. Certainly where I live in the UK, more or less everything has gone online that’s of any use. So shopping has gone online. Appointments for doctors have gone online. Dentists, it’s gone online. Pharmacy appointments, it’s all gone online. Paying your taxes, it’s online.
\n\n\n\nAnd so we really do need to protect this stuff. Really need to protect this stuff, because if it’s possible to, I don’t know, inject some problem in that path, we’re not just going to take out the beautiful experience of buying from a shop. We’re going to take out our ability to get fuel into our houses and into our cars and all of that.
\n\n\n\n[00:13:58] Robert Jacobi: Yeah, if you need that prescription, you don’t want that to go down, so.
\n\n\n\n[00:14:01] Nathan Wrigley: It’s become almost like, almost like a human right. That seems a bit of a ridiculous thing to say, but on some level, it seems like the internet or access to the internet is almost on that level. It certainly feels like it is as important as other key parts of the country’s infrastructure. So power and gas all of that, and the road network and what have you.
\n\n\n\n[00:14:20] Robert Jacobi: It is the information utility. So you have your power utilities, you have an information utility. It’s got to be available. In the States we always have our last mile issues, especially for very rural folks, about how connected are they, how fast is it? We always do this to ourselves. We got this great new toy, now let’s see how, great we can make it. Yeah, but if you’re not running at a hundred megabits a second your experience might really not be functional.
\n\n\n\n[00:14:46] Nathan Wrigley: So we’re going to talk today about something that I confess, I don’t know anywhere near enough of. So, Robert and I have shared an article, and I’ll put the article in the show notes. And essentially this thing that we’re going to talk about is what’s called the OSI model. And the OSI model comprises various different layers.
\n\n\n\nAnd basically, dear listener, if you’ve never thought about the gubbins of your computer, you, might just have this fairy tale notion that you open it up and start typing and it just works. I can send an email, of course I can send an email, you just click send and it’s gone and that recipient receives it.
\n\n\n\nBut the breathtaking quantity of things going on in the background disguised from you. Really, honestly, Robert, none of this should work, and yet it does work.
\n\n\n\n[00:15:36] Robert Jacobi: Which is why I love my car analogy. I have no idea what is going on 99% of the time. I still have a gas car, so I know there’s a larger motor than an electric car. I know gas gets in there and lit on fire and moves pistons around, but really, in the most abstract sense of it. It goes, and that’s what I want it to do.
\n\n\n\n[00:15:56] Nathan Wrigley: There’s explosions happening all the time, and fuel is being funneled around, and things are turning because they’ve been lubed with oil and all of that. And honestly, your car is nothing compared to the internet. The complexities in the internet, because I know that electric cars have taken over from, or are taking over from gasoline cars, but broadly speaking, the gasoline engine probably hasn’t changed terrifically much in the last a hundred years. Whereas I think the infrastructure comprising the internet, although the OSI model probably hasn’t changed much either.
\n\n\n\nThe things that are coming down the pike, and the things that have happened in the last 20 years, it’s breathtaking. So, dear listener, get out your tinfoil hat as Robert and I attempt and probably butcher what the OSI model is. And if you’ve got the capacity. Perhaps pause this podcast, go to the wptavern.com website, search for this episode and read the article. And the one that Robert came up with, which was a good one, is called What is the OSI model? It Standardizes How Computer Networks Communicate, and it’s on bluecatnetworks.com, but I’ll provide the link.
\n\n\n\n[00:17:00] Robert Jacobi: The best one I found that had the good pictures to also help. Because visually it’s hard to, you think you have a server, some wires and a browser and it’s like me saying I have an engine, some gas, and a steering wheel. There’s a lot of pieces that go in between all those parts.
\n\n\n\n[00:17:18] Nathan Wrigley: The amazing thing is this all happens really at the speed of light and. Okay, a perfect example is Robert is literally half a world away from me, and I’m talking to him through a browser, and I imagine that there is the most fractional delay between the words that I’m saying and him hearing it.
\n\n\n\nIt’s probably like a thousandth of a second or something. And yet somehow that sound and that image is getting consumed by my camera. Traveling down a cable. Getting into my computer. The computer’s making decisions about, what the heck am I going to do with this? And then pushing it down a wifi network.
\n\n\n\nThat wifi network is then thinking, where do I put this thing? And then it puts it there. That then decides to shunt it along somewhere else, which shunts it along somewhere else. And eventually it gets to Robert’s computer. Robert’s computer does all of it in reverse. Unpacks it rather than packing it up, and puts it on the screen. And it’s all happening like thousands of times a second, and it shouldn’t work.
\n\n\n\n[00:18:20] Robert Jacobi: It’s more live than live.
\n\n\n\n[00:18:22] Nathan Wrigley: Yeah.
\n\n\n\n[00:18:22] Robert Jacobi: Because not only do we have the video, we have a chat window on the side. It’s all encapsulated. Use some of these acronyms, but, we have our streaming protocol for the actual video and audio. And then we have our standard internet protocols for the content and everything else that’s holding the streaming protocols together.
\n\n\n\nIt’s crazy. Why I’m excited to have this conversation with you is like, I feel, very anecdotally, but people are like, I’m just going to spin up a WordPress site. I’m going to be a WordPress agency. And they just do it. And there’s just all this stuff in the mix that, while it’s great to take for granted, it might help to know just a few of the pieces that are critical in that security portion of infrastructure.
\n\n\n\n[00:19:05] Nathan Wrigley: Yeah, it feels to me like a bit like you’ve been to a really nice restaurant and you’ve eaten a fabulous meal, and then you realize the 12 hours of labor that went into creating that tiny little sauce on the side or something like that. And you get real appreciation for it. And hopefully something like that will come out of this.
\n\n\n\nAgain, caveat emptor, we’re not going to get everything right. Please feel free to give us a comment when we do get things wrong. But the OSI model is basically, it’s a seven layer stack and I think we’ll start at layer seven, because it sounds easier to describe it from the top down. So seven through one. And I’ll just say what all the layers are.
\n\n\n\nSo they go from the application layer, that’s layer seven. Presentation layer is six. The session layer is five. Four is transport. Three is network. Two is data link. And then the final one is the physical layer. And this point, I completely stand back and say, Robert, tell us a little bit about the top one, and Robert puts his hands on his head, the application layer.
\n\n\n\n[00:20:06] Robert Jacobi: It’s funny, it’s like the top most layer and the bottom most layer are the, I feel, the easiest to like grok. Let’s use geek terms, to understand.
\n\n\n\nThe application layers is as well as a WordPresser, I can explain. It’s really the top, you’re connecting from the client, your client application, so a browser, email, whatever, with specific protocols.
\n\n\n\nAnd what we primarily use is TCP IP, because that’s that magical thing that is able to grab a bunch of information, split it up into a billion pieces, and somehow put it all back together. How are we communicating with other devices is the way I look at that layer. It’s very high level, very abstract, it’s sort of fundamental. It’s like the air we need to breathe to actually get stuff done.
\n\n\n\n[00:21:00] Nathan Wrigley: It’s the layer, if I’m correct, it’s the layer closest to us, the user. It’s the layer which we can most readily understand, because it’s the layer closest to which we do things. So I think maybe a poor example, or an incorrect example, would be to imagine it’s something like Microsoft Word or something like that. Because it isn’t, the application itself isn’t that layer. It’s more how that interacts with the protocol underneath. So it might be HTTPS or FTP or something like that. But you are writing an email or something like that, and you hit send, and then the application layer gets in the way and says, what do we do with this?
\n\n\n\n[00:21:38] Robert Jacobi: Bingo. That’s exactly it, so we use all these, and generically they’re just called clients. So whether it’s Word, Microsoft Word, whether it is Safari, whether it’s Chrome, whether it’s Apple Mail. This will only entertain a few people, or Eudora mail. Just taking it back. Those are discreet applications on our devices.
\n\n\n\nAnd then the application, to your point, you hit send, you hit go on your browser. And now we’re like going crazy, okay, what do we do? We have a request. A request needs to go somewhere. That’s where the application layer kicks in.
\n\n\n\n[00:22:11] Nathan Wrigley: So we have this protocol in the application layer, which then makes decisions about what to do. And each of the layers is collapsing into the layer below it. And that layer then takes something that the previous higher layer gave to it and does, some shenanigans with it, and we get something which can then move into the layer below.
\n\n\n\n[00:22:30] Robert Jacobi: Everyone knows the application layer, because we’ve all typed in HTTPS://. That is literally the application layer request.
\n\n\n\n[00:22:40] Nathan Wrigley: Okay, so in the case of a browser, it’s the capacity for the browser to send something through HTTP, what have you. And then we get into the presentation layer, which is the layer beneath. And I think, again, I’m just cribbing from this article, if I’ve parsed this correctly, it says that this layer comprises things like translation, encryption, decryption compression. And it turns all of the bits and pieces into machine readable data. So for example, it says it will convert all of the binary ones and zeros into machine readable data. If the devices are using a different communication method, the presentation layer translates that data into something understandable, so that it can be received from layer seven.
\n\n\n\nAnd there’s a lot more to it than that. It’s like this layer of converting what came to it, into something else, which can then be moved down the stack into five.
\n\n\n\n[00:23:34] Robert Jacobi: Bingo, that’s literally exactly it. And it’s something us as humans completely don’t interact with unless you’re the person building out that infrastructure. It’s really just we’re having computers talking to computers at this point. So when you typed in HTTPS WP Tavern, that was your human interaction. Now we’re all like, what is the process? So presentation is making sure that that data moves forward the stack.
\n\n\n\n[00:23:59] Nathan Wrigley: And my understanding as well is that this is the moment where encryption and decryption occur. And so it’s high up in the stack. That is to say it’s near the layer seven, because you obviously can’t have it encrypted before you do anything with it. It’s high up in the stack so that at this moment, before it’s gone anywhere, it has become encrypted, before it’s passed down the stack and sent down the wires. But also, this is the moment if it’s coming up the stack, towards you so that you can read it in your browser, so that it’s getting decrypted at the last possible moment as well. So the encryption, I guess is at the first possible point on the way out, and the last possible point on the way back in. Have I got that right?
\n\n\n\n[00:24:40] Robert Jacobi: Yeah, and that’s a great way to look at it is, when we look from the top of the stack to the bottom of the stack, it’s almost in physical proximity to you as the human end user.
\n\n\n\n[00:24:48] Nathan Wrigley: Yeah.
\n\n\n\n[00:24:49] Robert Jacobi: Because at first you’re typing in something. Now something’s happening, that encryption is happening locally, because otherwise it wouldn’t be safe. And as we get further down the stack, you are physically further away from what’s going on.
\n\n\n\n[00:25:02] Nathan Wrigley: Yeah. And the other thing that’s going on here is compression. So you’ve got some giant blob of data that the stack can compress to make it more efficient to fly over the wires, then that will be handled at this layer as well, is my understanding.
\n\n\n\n[00:25:17] Robert Jacobi: We have compression on the servers as well in the applications layer as well. Don’t forget, you can compress data on the protocol.
\n\n\n\n[00:25:22] Nathan Wrigley: So that all sounds really remarkable, but also quite humanly understandable, because everything that I’ve said makes perfect sense. And we start from five down. It starts to be really the domain of networking experts, and people who really obsess about computers and understand this stuff. But if you’re just the person using the web and WordPress casually, honestly, it may be that you’ve never come across this stuff, and I found it just breathtaking, to be honest.
\n\n\n\nSo layer five, is called the session layer, and it is literally that. It’s managing sessions, so it’s figuring out who’s connected to who. How that communication should begin. How it should end. When it’s decided that, okay, that connection should be destroyed. We’re not using that anymore, but okay, now we’ve got something else that we need to do. And it figures out, yeah, sessions basically, which I guess is the easiest way to describe it.
\n\n\n\n[00:26:15] Robert Jacobi: Everyone knows what a session is. It’s me being connected, and my information being managed for me, so that when I log in, Nathan doesn’t get all my information.
\n\n\n\n[00:26:24] Nathan Wrigley: And also, an understanding here is that usernames and passwords, so authentication is happening at this layer as well. And again, that kind of makes sense. So you would have to authenticate before the decryption happens in the layer above and vice versa. But yeah, this is opening up connections between, in this case, you and I are chatting in a browser, so we’re occupying one session, and then there are million, literally millions of packets of data just flying around over the internet via who knows what route. They’re all going in completely different routes.
\n\n\n\n[00:26:57] Robert Jacobi: Some of these packets can literally be going through Australia or South Africa or Brazil, and back and forth and they, catch up.
\n\n\n\n[00:27:05] Nathan Wrigley: Incredible, isn’t it? Literally. It’s like, I don’t know. Imagine getting a handful of rice and chucking it all down on the floor, but it assembles itself into a tower. It just lands and it just assembles itself. That’s basically what we are dealing with.
\n\n\n\n[00:27:19] Robert Jacobi: That’s a good one. Yeah, like I have my own rice tower at home. I throw it on the ground. It gets shipped by FedEx to you, but when you open up the box, it reassembles itself.
\n\n\n\n[00:27:28] Nathan Wrigley: Just in perfect condition, yeah. So the next layer four, is the transport layer. And this is the bit which actually I guess begins the process of sending my stuff to you, and your stuff to me. And typically the protocols for that are something called UDP, which is User Datagram Protocol or TCP Transmission Control Protocol.
\n\n\n\nAnd my understanding, which is very basic, is that UDP differs from TCP in that UDP can be more of a stream of data, because it doesn’t require everything to come through perfectly to say, yeah, that’s now finished. So a perfect example would be us talking to each other, streaming. If bits get lost along the way, it doesn’t want to say, right end the call.
\n\n\n\nWe haven’t got one bit. We need to just stop. Until that bit has been found, it just keeps going and just disregards the missing bits. Whereas TCP, this is just incredible. This is the rice tower, isn’t it?
\n\n\n\n[00:28:28] Robert Jacobi: TCP is the rice tower, exactly.
\n\n\n\n[00:28:30] Nathan Wrigley: It requires every single piece to be sent. Acknowledged. Counted out. Counted in at the destination, and for the both ends of the connection to be saying, did you get that bit? Yeah, I got that bit. What about this bit? Did you get that bit? Yeah, I got that bit. 23, did you get 23? No, 23 has gone. Where, where’s 23? Oh, I’ll send 23 again. Here it is. A million times a second for this conversation that we’re having. Well, it’s probably not a million times a second, but you know what I mean.
\n\n\n\nAnd I’ve summed that up very badly, but these packets of data that are flying around. They egress my computer. They go through 7, 6, 5, now we’re in 4, and they’ve got to go through further layers. But they’re not just going in a straight pipe, like a hose pipe from your faucet, spraying the garden. These are just going anywhere they choose. So one packet, like you said, might go via Australia, one might go through South Africa, and then somehow they just reassemble themselves magically at the other end.
\n\n\n\n[00:29:26] Robert Jacobi: Routers, because that’s what those do. Obviously that’s a physical component further down the pipe. They’re saying, this is the order of information. I’m going to just spew out, and everyone else needs to figure out how to put it back together, one piece. It’s crazy.
\n\n\n\n[00:29:38] Nathan Wrigley: Yeah, it is crazy. My understanding is that back in the day, when the internet was conceptualized, I think it was possibly something like Darpanet, or something like that, but it was a, I think it was a military endeavor, the enterprise was something along the lines of, we need a communication system which if various nodes are taken out, let’s say, I don’t know, bombed out of existence, or just the power is cut, the system is intelligent enough to just work round the problem, and figure, okay, we can’t go there anymore, let’s just go a different way. And that is what we now have.
\n\n\n\n[00:30:12] Robert Jacobi: It’s all about redundancy. I’m going to take just a slight tangent on federated social media. Any kind of federated application. Those exist in a lot of ways to ensure redundancy. I’m going to go way, way back, to where most of the audience probably wasn’t born. So we had these things called modems, and they would be attached to a phone, and you would run something called a bulletin board system. Those were single points of failure.
\n\n\n\nSo you actually saw groups of independent bulletin board system providers create these distributed federated networks. So if you sent an email to a specific person, at a specific BBS, if that phone line was busy, it could go to another one that would take it, and keep pushing it along until you actually got it to the right place. This idea of distributed and federated systems is really what makes the internet functional because we take care of failure points. We ignore them and just work around them.
\n\n\n\n[00:31:17] Nathan Wrigley: And obviously we know that works as well because parts of every country’s infrastructure are breaking all the time. One router somewhere will just go down, even if it’s a crucial router, it doesn’t in the end stop the system. It probably creates bottlenecks in various places.
\n\n\n\n[00:31:31] Robert Jacobi: Slow it down.
\n\n\n\n[00:31:32] Nathan Wrigley: Slow the egress of traffic around, yeah. But in layer four we’re dealing with the ports that things fire out of as well. And then when we get down to layer three, that’s when the actual data is divided up into little packets and little segments. So data four and data three, honestly, to some extent they feel very similar in my head at least anyway.
\n\n\n\nBut layer three is using things like IP addressing, to decide where this packet’s going to go. And I think wraps the packets up in the IP address, if you like. It’s almost like wrapping up a Christmas present and as it travels down the stack, by the time it gets to layer three, it’s being told, this is not what it’s being told, but this encapsulates it. This is a gift for Robert Jacobi. You must find Robert Jacobi.
\n\n\n\nThen it reads that, and then finally, it’ll rip off the wrapping and finally give you the gift at the end as it goes back up the stack. So, there’s not a lot to say on layer three, I don’t think, other than it’s using things like IP v4 and IP v6 to make decisions about how it’s going to be spread around. Have I got that about right? Do you think?
\n\n\n\n[00:32:35] Robert Jacobi: That works for me. I think that’s enough information for most folks. Again, we’re trying to give a taste of how complex security is, for what we do day to day. But also how we can apply it to how WordPress understands it.
\n\n\n\n[00:32:48] Nathan Wrigley: And then we’ve got the two layers where, the data link layer and the physical layer. The data link layer is handling the data transferred. So the actual data moving around. So it’s getting pushed around on the same network is my understanding for layer two. So that’s when you are, for example, in the same office building. I think layer two is just for that. I could be wrong.
\n\n\n\n[00:33:11] Robert Jacobi: It’s getting to your router and then your router will start moving stuff around. Cause don’t forget, your router is on your network as well as any other computer in that closed. So, our 192’s. Our internal network, so that’s the closest on the networking side, that hardware side, because as soon as it hits our router it goes to the cable, or whoever you’re using, outside of your office, home, your LAN.
\n\n\n\n[00:33:35] Nathan Wrigley: And then the final layer, the physical layer is the cables, the actual infrastructure out there in the world outside of your house, basically. Or your office building. Well, maybe there’s some of it in the office building as well, but the majority of it, the miles and miles of things are all in the physical layer. And it says here on the bit that I’m reading. Finally, this layer encompasses the equipment that carries data across the network, such as fiber network switches, and so on.
\n\n\n\nAnd so finally, our packets of data that we started off at the beginning, writing the email to Robert Jacobi. Finally, that packet has made it out. It’s escaped into the wild, and is now just rattling around on the internet desperately being told, very quickly, where to go. And then hopefully it’ll arrive. Travel to Robert’s computer. Travel in the reverse direction of the stack, and he’ll get a nice email from me with cat pictures in it.
\n\n\n\n[00:34:27] Robert Jacobi: Why is it always cat pictures?
\n\n\n\n[00:34:29] Nathan Wrigley: Why not? Okay, so all of that shenanigans is happening, and honestly, I feel a, it’s very difficult if you’re inexperienced like me, to get the words out in the correct order so that I have demonstrated that I understand it. Because I do on a very, very slight level.
\n\n\n\nAnd I know that entire careers, very, very, well paid careers can be built upon really understanding what we’ve just spoken about. But in there, I presume, is the capacity for threats, and the capacity for things to go wrong, and the capacity in all of these layers for people to inject things which shouldn’t be there. For clever people to figure out ways to disrupt that information. To take that information. To delete that information. To rewrite that information. And is that essentially what your company does? Prevent those things?
\n\n\n\n[00:35:18] Robert Jacobi: So when I look at it from a CMS stack, and again, let’s focus on WordPress. My mental model that is slightly different. I’ll use, I think what most of us feel like is WordPress infrastructure. I know, the really smart folks are going to yell at me for this. You have a server somewhere. It has an operating system, it has PHP, MySQL, it has WordPress, and then whatever else is in front of it.
\n\n\n\nSo there’s a whole stack and layer on layers of communication that go from when I hit my browser and type in WP Tavern and hit go. And let’s move away from all the really highly technical networking protocol issues.
\n\n\n\nAt some point, it’s going to make a request to a hosting company that needs to be able to say, oh, yes, let’s give them the WP Tavern homepage. In that process there are caching services, firewall products, local security on the networking side of that hosting company. What I feel personally, but also which is what makes products like Black Walls critical is, detect and defend as far away from the website as possible.
\n\n\n\nSo if there are a million bots coming at you, get them before they even hit the hosting company’s infrastructure. Some will always sneak through because it’s a battle that’s just never ending and, you’re going to keep learning and fighting and learning and fighting. Mitigate the risks as close to the bad actor, and as far away from the site as possible. So, mitigate, mitigate, mitigate, mitigate, mitigate. And there are tools and solutions up and down that entire stack.
\n\n\n\nSo you’re going to have stuff way before you hit the hosting company. You’re going to have some solutions closer to the hosting company. You’re going to have solutions directly on WordPress. There are security plugins that are running on your install of your site. Those are great. I personally feel that you don’t want to even get that close if you’re a bad actor. Mitigate that problem as quickly, as soon as possible.
\n\n\n\nAnd even solutions that work at the operating system level, or at least the language level. There are products out there that are constantly monitoring, looking for and mitigating PHP corruption. So, you really don’t want to let everyone have access all the way down to that level, because then you’re already, you will have problems, how to put it nicely. We don’t say bad words on the show.
\n\n\n\n[00:37:53] Nathan Wrigley: So do you sell your product into the WordPress space? So, you know, to freelancers, agencies, or are you more at the hosting level, or is it even more like infrastructure level? So at the router level. So in our case, this sort of physical layer that we were talking about. Is that the kind of place where your products go? I honestly don’t know where your product sits in all of that.
\n\n\n\n[00:38:16] Robert Jacobi: So, if you look at it from a hardware perspective, there’s going to be the end user is going to make request. It’s going to get routed somewhere. We sit between where it’s getting routed and the hosting company. So our goal is to prevent the hosting company from wasting physical resources. Now we need to amp up our service because there’s so much traffic coming in.
\n\n\n\nNow we need to amp up our customer support because more stuff is happening with our virtual machines or hosted infrastructure. So that’s our place in the universe. Get the bad guys before they get to the critical infrastructure.
\n\n\n\n[00:38:51] Nathan Wrigley: And another question, forgive my ignorance. Is Black Wall’s solution, is it software? Is it code that sits on an operating system? Or maybe you even have hardware that sits in the way of things, the packets have to transfer through your hardware and be inspected in a way, like a router might get in the way of those things.
\n\n\n\n[00:39:10] Robert Jacobi: Our secret sauce is that we are software that emulates the hardware that used to be required. So there are hardware companies buy this kind of routing and prevention, traffic mitigation. And we do it on the software side so that you as an agency or MSP, if you’re running a bunch of virtual machines, you can deploy this on your own. Certainly as a hosting company, you can deploy this across your entire enterprise.
\n\n\n\n[00:39:36] Nathan Wrigley: So you are dealing with very technical, the people that purchase from you they’re not me, for example. They are very technical. They’re in the data centers. The sort of technical end of the hosting companies. They understand what I’ve just butchered during this episode.
\n\n\n\nIt’s not like a freelancer market. You will not be selling Black Wall as a plugin. You are dealing with, directly with hosting companies and the tech side of those hosting companies.
\n\n\n\n[00:40:01] Robert Jacobi: There’s a wonderful German word called Jein. So yes and no.
\n\n\n\n[00:40:04] Nathan Wrigley: Oh, that is a good word.
\n\n\n\n[00:40:05] Robert Jacobi: For all the Germans listening. You still want to be able to control a lot of times exactly what kind of traffic comes in. You might want to get scraped by AI bots more than someone else does. Or you might want to turn off all scraping if you’re an e-commerce store and you’re worried about people taking your pricing and not allowing you to sell at your level.
\n\n\n\nWe’ve had, and are currently reworking our entire WordPress plugin, to enable that end user control of that infrastructure. So it’s not running on your WordPress install, which is great because it’s not taking up resources, filling up your hard drive. But you can control, as an end user, the granularity of the traffic that’s able to access your site.
\n\n\n\n[00:40:45] Nathan Wrigley: Oh, so you have a plugin, so you are reading what the hosting company is doing. You can view it through a GUI on your WordPress website, but you are not actually, it’s nothing to do with your WordPress install. You’re getting the data from your hosting company, and that is another layer away from you. Okay. That’s interesting. I didn’t realise that.
\n\n\n\n[00:41:04] Robert Jacobi: Yes, it empowers all these website owners, agencies, MSPs, to fine tune, for lack of a better term.
\n\n\n\n[00:41:10] Nathan Wrigley: Yeah. And then do you offer a sort of GUI for data breakdown, tables, graphs, charts, and ways to block things that you imagine are suspicious, and alerting and things like that?
\n\n\n\n[00:41:20] Robert Jacobi: Yep, as well as defaults for all sorts of things of course, just to make life easier for folks. You can go and visit our site and get some initial monitoring for your site for free. We enjoy having that as part of just an offering of the reporting and monitoring, you can see it. My traffic has been great, and then all of a sudden you look and it’s oh wait, it’s just been Chat GPT.
\n\n\n\n[00:41:40] Nathan Wrigley: Sad realization that the million visitors that seemed to be going to your excellent article were in fact Chat GPT.
\n\n\n\n[00:41:47] Robert Jacobi: Bots stealing that information.
\n\n\n\n[00:41:49] Nathan Wrigley: Sadly, time has got the better of us. We’re at the time where Robert has to walk away. I know he’s got a hard stop. Firstly, my apologies, dear listener for utterly butchering the OSI model. I’m sure there’s a lot of geeks out there who were just throwing things.
\n\n\n\n[00:42:01] Robert Jacobi: They’re going to kill, but my hope is everyone looks it up, a lazy Sunday afternoon understanding.
\n\n\n\n[00:42:06] Nathan Wrigley: Exactly. And that, really was my capacity to understand it. Doesn’t matter how much more I read it, I will be able to get no more out of it. But an important conversation, and one that we’ve never had before. We never get into the weeds of all of that. It’s always WordPress all the way down.
\n\n\n\nAnd this is what’s happening before, WordPress gets to put the bits and your screen. So really important and hopefully, like Robert said, it will encourage people to go and have a little look.
\n\n\n\nRobert Jacobi, thank you so much for chatting to me today, and good luck with the new rebranding of BotGuard into Black Wall. I hope that goes well too. Thank you so much.
\n\n\n\n[00:42:39] Robert Jacobi: Thank you Nathan.
\nOn the podcast today we have Robert Jacobi.
Robert has a long-standing history with the tech and CMS industry, having worked in senior positions at Joomla, Cloudways, Perfect Dashboard, and more. He’s now the Chief Experience Officer at Black Wall, a company formerly known as BotGuard.
Robert talks with me today about the transition from proprietary systems to open source, and the seven-layer OSI model that underpins the internet. Drawing from his experiences in tech, Robert and I try, and perhaps fail, to break down the complexities of how website traffic is routed over the internet. This is done to try to understand how Black Wall can position itself to mitigate risks before they reach hosting companies infrastructure.
We also discuss the evolution of bot traffic on the web, where upwards of 10% of internet traffic is identified as malicious. This kind of insight is particularly important for those interested in the security aspect of web hosting and website management.
We also get into Black Wall’s rebranding journey, and its continued dedication to the WordPress community by participating in events like WordCamp Asia and Europe.
If you’ve ever wondered about the unseen layers of internet security and infrastructure, or the strategic moves involved in rebranding a tech company, this episode is for you.
Black Wall (formerly BotGuard)
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nWhat is the OSI model? It standardizes how computer networks communicate
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 Mar 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:46;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:103:\"Do The Woo Community: The Challenges and Wins of Creating a Suite of WordPress Plugins with Steve Burge\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=92722\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:102:\"https://dothewoo.io/the-challenges-and-wins-of-creating-a-suite-of-wordpress-plugins-with-steve-burge/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:183:\"In this episode host Mark Westguard chats with Steve Burge, founder of PublishPress, discussing their journeys, the evolution of WordPress plugins, and strategies for business growth.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 Mar 2025 09:26:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:47;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"Gutenberg Times: Source of Truth (WordPress 6.8)\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=38037\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:57:\"https://gutenbergtimes.com/source-of-truth-wordpress-6-8/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:52790:\"Ahead of WordPress 6.8 Beta release and in absence of Anne McCarthy, we publish the Source of Truth a second time on the Gutenberg Times.
\n\n\n\nWith me, I mean all the collaborators on this post: Krupal Lakhia, Justin Tadlock, Jonathan Bossenger, and JuanMa Garrido.
\n\n\n\nAny changes will be cataloged here as the release goes on. The links below are all anchor links to the respective sections in this post.
\n\n\n\nUpdates April 3, 2025
\n\n\n\nUpdates March 26, 2025
\n\n\n\nUpdates March 25, 2025
\n\n\n\nblocktype.parent
enforced as arrayIf you find missing features, please ping me on WPSlack or DM on Bluesky (@gutenbertimes.com)
\n\n\n\nPlease do not copy and paste what is in this post since this will be shared with many people. This should be used to inspire your own content and to ensure that you have the best information about this release. If you do copy and paste, keep in mind that others might do the same, opening the door for some awkwardness around duplicated content out on the web.
\n\n\n\nNote: As always, what’s shared here is being actively pursued, but doesn’t necessarily mean each will make it into the final release of WordPress 6.8.
\n\n\n\nWordPress 6.8 is set to be released on April 15th, 2025. This release continues refining foundational features introduced in previous versions, focusing on improving data views, query loops, and block interactions. It introduces a more streamlined design experience with a Zoom Out editing approach, expanded style controls, and enhanced typography options. API developments, including the Block Hooks and Interactivity API, aim to enhance extensibility, while speculative loading integration and performance optimizations seek to improve site speed. Accessibility improvements and ongoing support for PHP 8.x ensure WordPress remains user-friendly and forward-compatible.
\n\n\n\nOf note, this release includes Gutenberg 19.4 – 20.4.
\n\n\n\nIn this Google Drive folder you can view all assets used in this document.
\n\n\n\nTo make this document easier to navigate based on specific audiences, the following tags are used liberally:
\n\n\n\n[end user]: end user focus.
\n\n\n\n[theme author]: block or classic theme author.
\n\n\n\n[plugin author]: plugin author, whether block or otherwise.
\n\n\n\n[developer]: catch-all term for more technical folks.
\n\n\n\n[site admin]: this includes a “builder” type.
\n\n\n\n[enterprise]: specific items that would be of interest to or particularly impact enterprise-level folks
\n\n\n\nIf no tags are listed, it’s because the impact is broad enough to impact everyone equally.
\n\n\n\n[theme author] [site admin]
\n\n\n\nThe Site Editor sidebar is getting increasingly powerful, serving as the entry point to manage all things on your site. Until this version, the Styles panel offered limited style settings, focusing on style variations, color palettes, and typographies. WordPress 6.8 changes this by introducing a full-fledged Global Styles panel in its place, giving users site-wide granular control of styles at the top level.
\n\n\n\n[theme author][site admin]
\n\n\n\nSwitching between editing your site templates and content pages should be as smooth and seamless as possible; sometimes, you need to focus on the post content and hide the rest of the template. This was previously possible in the post settings, but now it is much easier thanks to the Show template toggle directly on the preview dropdown in the top toolbar.
\n\n\n\n \nThe new update in WordPress allows developers to set how the block editor displays content based on the type of post. This means you can now customize the editor’s default behavior by adding specific settings to a post type’s configuration. (69286).
\n\n\n\n[theme author][site admin]
\n\n\n\nThe Style Book provides a comprehensive overview of your site’s colors, typography, and block styles in an organized layout. Each block example and style group is labeled, making it easy to preview and understand your theme’s current design settings.
\n\n\n\n\n\n\n\n\nThink of it as if your theme threw a party, and all the design elements showed up wearing name tags. 😀
\n\n\n\nRamon Dodd, release lead of Gutenberg 19.9
\n
The Style Book can be accessed in two ways. The first option is via the Styles menu item in the left sidebar. The second option is available when editing theme elements via the right Styles sidebar. This was already available in WordPress 6.7.
\n\n\n\nWith WordPress 6.8, opening the Style Book from the left sidebar Styles menu shows subsets of blocks and makes them available for site wide editing.
\n\n\n\nWhen you click on Typography you can preview all text-related blocks, and adjust options and settings. You can preview and modify specific blocks via the Blocks option.
\n\n\n\nThe Style Book also received some performance improvements to ensure a more fluid user experience.
\n\n\n\nFor classic themes that support the Style Book, site patterns have been relocated to Appearance > Design > Patterns, consolidating all design-related functionality from the Site Editor into one place. Previously, patterns were listed under Appearance > Patterns.
\n\n\n\nSupport is available for classic themes that either support editor styles via add_theme_support( ‘editor-styles’ ) or have a theme.json file (66851).
\n\n\n\n[theme author][site admin][end user]
\n\n\n\nA late bug report surfaced that the Zoom out view is disabled when Show Template is checked off. As soon as you click on Show Template in the Preview Tab, the icon for the Zoom out view also appears.
\n\n\n\nIn Zoom Out view, users can now apply different section styles and designs directly from the toolbar, cycling through them and inspecting them in the context of the rest of the page. This enhancement streamlines the decision-making and production process (67140).
\n\n\n\nThe Block options on the block toolbar only lists Copy, Cut, Duplicate, and Delete for sections in Zoom Out view (67279).
\n\n\n\nIn addition to the added Zoom Out icon in the toolbar, users can also invoke Zoom Out view via the Keyboard shortcut Shift command + 0 on a Mac and Shift + Ctrl + 0 on Windows (66400). The shortcut has also been added to the Keyboard shortcuts list.
\n\n\n\n[end user][theme author] [site admin]
\n\n\n\nDesign Tools offers increasingly refined tools for visual customization. When it comes to border and spacing support, the block editor itself provides granular controls within individual blocks, allowing users to define border widths, styles, colors, and radii, as well as precise padding and margin adjustments. These controls facilitate the creation of visually distinct elements and well-structured layouts. The work for WordPress 6.6 and 6.7 was continued for WordPress 6.8 to provide all design tools to all blocks, where possible.
\n\n\n\nIn this release, the following blocks received border support
\n\n\n\nBeyond those, the Category block supports color options as well (68686).
\n\n\n\nFor the Post Content block, the color support via the sidebar Design Tools has been brought up to feature parity with the options available via theme.json. Now users and designers can adjust colors for all heading levels in addition to text, background, and link (67783).
\n\n\n\nAnother user experience improvement can be found in the list of fonts: Each font family is now previewed in the font picker dropdown and gives users a better indication as to what the font will look like (67118).
\n\n\n\nThe Roster of design tools per block (WordPress 6.8 edition) gives you a complete overview of the available Design Tools per core block.
\n\n\n\n[theme author][developer]
\n\n\n\nWordPress 6.8 adds a small piece of code (`box-sizing: border-box;`) to the styling of buttons. Imagine you’re putting a picture in a frame. You want the picture to fit nicely within the frame’s borders. That’s what `box-sizing: border-box;` does for buttons (and other elements) on a website. It tells the browser to include the border and padding of an element in its total width and height (65716)
\n\n\n\n[theme author][site admin][end user]
\n\n\n\nImages used as backgrounds in Cover blocks now come with resolution controls so that you can change their sizes. This works with both an uploaded background image or the already assigned featured image. This adds to the more granular control for designers and theme developers. (#67273), (62926).
\n\n\n\n[theme author][site admin][developer][end user]
\n\n\n\nIn WordPress 6.8 the Details block is now more flexible to use and has received some quality-of-life updates:
\n\n\n\nThe addition of the name attributes field in the Advanced panel of the block’s settings. This allows a group of Details blocks to be connected and styled if needed. (56971)
\n\n\n\nThe summary content is used as the label in the List View which makes it quicker to identify the block and allows for easier reorganizing of content (67217).
\n\n\n\nThe Details block also receives anchor support via the Advanced panel, allowing users to create anchor links to specific Details blocks.
\n\n\n\nWith the help of the allowedBlocks attributes, developers can now control what blocks content creators can use in a Details block. (68489).
\n\n\n\n[end user][site admin]
\n\n\n\nAllow content-only editing, which gives users the ability to update the filename text and download button text (65787).
\n\n\n\n[end user][site admin]
\n\n\n\nEach image in a Gallery block shows multiple options on how a link should behave and how a visitor to the site can interact with the images. For WordPress 6.8 contributors added Expand to click to the Gallery’s toolbar to open all images in a light box effect, with one click. The option is available from the Link toolbar button (64014).
\n\n\n\n[end user][site admin]
\n\n\n\nThe outcome of the Image manipulation methods are now better communicated in the block editor. The success notices are displayed at the bottom of the editor. The notices also come with a handy Undo link to revert to the original if necessary (67314, 67312).
\n\n\n\n[theme author][site admin][end user]
\n\n\n\nFeatured images offer a nice touch in external previews, making them more attractive to potential readers. However, it can be easy to forget to set one! To help set featured images more easily, Image blocks now offer a dropdown action to directly set them as the featured image of the post or page containing the block (65896).
\n\n\n\nAnother WordPress 6.8 update also changes how the Image block handles those cool overlay styles aka filters (like a semi-transparent color wash) designers might add on top of images. It’s making the way these styles are applied more efficient and reliable. Details on CSS changes can be found in the PR (67788).
\n\n\n\n[end user][site admin][theme author]
\n\n\n\nThe theme of polish also continues for the Navigation Block. Menu names are now displayed in the List View for easier orientation and, for faster design considerations, a Clear option was added to the color picker(68446)(68454).
\n\n\n\nThese updates enabled non-interactive formats for the block, and users can now use the choices from the dropdown menu in the block’s tools bar, like Highlight, Strikethrough, or Inline image (67585).
\n\n\n\n \n\n\n\n[site admin][theme author][end user]
\n\n\n\nFor Pages, content creators will find two additional sorting options: Ascending by order and Descending by order, which allows for a display following the page attribute page_order (68781).
\n\n\n\n \nLooking to replace your Query Loop block’s design? The Query Loop block patterns have been relocated from a modal to a dropdown. It’s still in the block toolbar, now under Change design (66993).
\n\n\n\nThe Query Loop block now has a new option to ignore sticky posts. When selected, the Query Loop block ignores whether a post has the sticky option enabled. When used, all posts show based on the ORDER BY preferences selected without taking the sticky status into account. (66221) (69057)
\n\n\n\nThe Query Loop block can get pages from all levels. Contributors added an attribute to just display the top level pages. Currently, users can only set “parents”: [0]
, via the code editor. There’s no easy option in the user interface yet.
<!-- wp:query {\"queryId\":1,\"query\":{\"perPage\":10,\"pages\":0,\"offset\":0,\"postType\":\"page\",\"order\":\"desc\",\"orderBy\":\"date\",\"author\":\"\",\"search\":\"\",\"exclude\":[],\"sticky\":\"\",\"inherit\":false,\"parents\":[0],\"format\":[]}} -->\n<div class=\"wp-block-query\"><!-- wp:post-template -->\n<!-- wp:post-title /-->\n\n<!-- wp:post-date /-->\n<!-- /wp:post-template -->\n\n<!-- wp:query-pagination -->\n<!-- wp:query-pagination-previous /-->\n\n<!-- wp:query-pagination-numbers /-->\n\n<!-- wp:query-pagination-next /-->\n<!-- /wp:query-pagination -->\n\n<!-- wp:query-no-results -->\n<!-- wp:paragraph {\"placeholder\":\"Add text or blocks that will display when a query returns no results.\"} -->\n<p></p>\n<!-- /wp:paragraph -->\n<!-- /wp:query-no-results --></div>\n<!-- /wp:query -->
\n\n\n\n\n[theme author][site admin][end user]
\n\n\n\nYou know how many results are in your queries, but do your site’s readers? The new Query Total block is here to help.When added to a Query Loop block, the Query Total block displays the number of results the query has returned, or, alternatively, the current range in a set of paginated results. Out of the box, the new block shows its border controls (68150)(68323) (68507).
\n\n\n\nI received some questions on how to access the Query Total block. It can only be added inside a Query Loop block, similar to the Pagination block. The below video shows how.
\n\n\n\n \n\n\n\n[theme author][developer][site admin]
\n\n\n\nNow designers and creators can choose between a <div> or <hr> tag, opening up more styling possibilities for this block. The setting to switch can be found under Advanced > HTML Element. The transformation option now also includes the Spacer block. (67530) (66230)
\n\n\n\n[end user][site admin]
\n\n\n\nThe social icons block shipped with the option to add a Discord icon, received a Clear button to reset color options, and received contentOnly support. To add a URL to the icons, you now only need to press the arrow key once. This certainly streamlines the content creation process. (64883) (68564) (66622)
\n\n\n\n[end user][site admin][theme author]
\n\n\n\nThe Editor screens received a few helpful improvements in WordPress 6.8.
\n\n\n\nReset colors for blocks and global styles in the editor with a single click thanks to the inline reset button added to all color controls (#67116). The Shadow panel and the Duotone settings also received a very handy reset button. Instead of the need to remove settings one at a time, designers can quickly start over. (66722) (68981)
\n\n\n\nThe Block Options menu now also lists a Cut action together with the Copy action in the dropdown menu. (68554)
\n\n\n\nTwo new commands were added to the Command Palette in the Site editor:
\n\n\n\nWith WordPress 6.8, a new pattern category is available, called Starter Content. It lists the page layouts that are otherwise available via the New Page modal. If a user has disabled the starter content pop-up when creating new pages, this category surfaces the page layouts, should they be needed. (66819) The Inserter now also always shows all the available patterns in a list. (65611).
\n\n\n\n \nOnce added to the Post Types
attributes of pattern headers, the starter pattern modal now works for Posts, and Custom post types, not just for Pages. (69753)
[theme author][site admin] [developer]
\n\n\n\nWith WordPress 6.8 developer can now use sub-folders to organize patterns for their themes. For example, all header patterns are added to the “header” folder, all footer patterns into the “footer” folder, testimonials patterns into the “testimonials” folder, and so on. (62378)
\n\n\n\nThis release also contains quite a few Data Views improvements:
\n\n\n\nA user can modify the amount of whitespace that is displayed per row on three levels: comfortable, balanced, and compact. (67170)
\n\n\n\nYou can now set your site’s homepage from the Site Editor via the page’s actions menu (#65426). This is the equivalent of updating the Reading Settings in Settings > Reading. Under Pages in the editor, find the page you’d like to set as your homepage, click on the action menu, and select Set as homepage.
\n\n\n\nAll delete actions now show a Confirm to delete modal, to safeguard against accidental removal of templates, patterns, or pages. (67824)
\n\n\n\nHere is a list of PRs with more Data View changes:
\n\n\n\n[developer][plugin author][enterprise]
\n\n\n\nThe new filter should load block assets
provides a way for classic themes to use `wp-block-library` even when loading block assets only for blocks that actually render on a page. (61965). The dev note: New filter should_ load_block_ assets_on_demand
in 6.8 has the details.
WordPress 6.8 introduces a new function wp_register_block_ types_from_ metadata_collection()
, which allows plugins to register multiple block types with a single function call. (62267) See also Dev Note More efficient block type registration in 6.8
The block registration API now enforces the blockType.parent
setting to be an array
. The editor will now display a warning if it’s a different type, such as a `string`. (66250).
Also consult the post Updates to user-interface components in WordPress 6.8
\n\n\n\nThe Interactivity API in WordPress 6.8 introduces an improved wp-each directive, making it more flexible and reliable. Previously, it could only loop through arrays or objects with a .map
method. Now, it supports any iterable value, including strings, arrays, maps, sets, and generator functions. Additionally, it can handle undefined or null values by subscribing to changes and updating automatically when the value becomes iterable (67798).
The release also brings a set of best practices to WordPress, developers using the Interactivity API and creating their own store might find the Dev Note: Interactivity API best practices in 6.8. particularly interesting, on how to avoid deprecation warnings and future-proof your plugins.
\n\n\n\nThis release also introduces the withSyncEvent action wrapper utility to streamline event handling, reducing potential performance bottlenecks (#68097). Details can be found in above linked dev note.
\n\n\n\nIn WordPress 6.8, work continues on improvements to the Block Hooks API.
\n\n\n\nThe Block Hooks API now supports dynamically inserting blocks into post content. (67272) A typical example would be a plugin that provides blocks that can be used in posts and that would like to provide extensibility for those blocks. The Block Hooks API will now also work with Synced Patterns. (68058)
\n\n\n\nVarious security-related enhancements made it into WordPress 6.8, the most significant of which is the switch to using bcrypt for password hashing. This includes improvements to the algorithm that’s used for storing application passwords and security keys. The dedicated post WordPress 6.8 will use bcrypt for password hashing covers these changes in detail. You will find a list of all security updates in 6.8 on WordPress Core Trac.
\n\n\n\nBuilding upon the success of the Speculative Loading plugin, which has over 40,000 active installations, WordPress 6.8 integrates speculative loading into core. This feature utilizes the Speculation Rules API to prefetch URLs dynamically based on user interaction, aiming to improve performance metrics like Largest Contentful Paint (LCP). The current proposal has a default configuration employing conservative prefetching to ensure safety and compatibility, but feedback is requested on this. Developers have access to filters for customization, allowing adjustments to the speculative loading behavior as needed (#62503). Details are laid out in the Speculative Loading in 6.8 Dev Note.
\n\n\n\nFor the WordPress 6.8 release, several key performance improvements have been implemented in the block editor and collectively contribute to a more responsive and efficient editing experience.
\n\n\n\nisBlockVisibleInTheInserter
selector was improved to prevent unnecessary computations, resulting in a more efficient block editor experience (#68898).WordPress 6.8 includes 26 accessibility improvements. The dev note has all the details: Accessibility Improvements in WordPress 6.8
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 Mar 2025 09:16:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"Do The Woo Community: My Content Journey Leading to Content Sparks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"https://dothewoo.io/?post_type=blog&p=92890\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"https://dothewoo.io/blog/my-content-journey-leading-to-content-sparks/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:222:\"BobWP reflects on their journey with audio and content creation, from childhood fascination with radios to launching the podcast, Do the Woo. They now introduce a new show, Content Sparks, exploring diverse content topics.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 Mar 2025 08:51:14 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:49;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"Do The Woo Community: Inside the World of Composable CMS: A Deep Dive with Tom Cranstoun from AEM\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"https://dothewoo.io/?p=92578\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:95:\"https://dothewoo.io/inside-the-world-of-composable-cms-a-deep-dive-with-tom-cranstoun-from-aem/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:379:\"This show is sponsored by… Avalara: providing cloud-based and scalable global tax compliance that is hassle-free, safe and secure plus topped off with enterprise-class security. In this episode of Scaling Enterprise, WP and OSS, join Brad Williams, Tom Willmot, and Karim Marucchi as they dive into the world of enterprise content management system. Special guest […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 17 Mar 2025 14:20:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:48:\"WpOrg\\Requests\\Utility\\CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Wed, 09 Apr 2025 09:53:18 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:13:\"last-modified\";s:29:\"Wed, 09 Apr 2025 09:45:31 GMT\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:16:\"content-encoding\";s:2:\"br\";s:7:\"alt-svc\";s:19:\"h3=\":443\"; ma=86400\";s:4:\"x-nc\";s:9:\"HIT ord 2\";}}s:5:\"build\";i:1744192309;s:21:\"cache_expiration_time\";i:1744235599;s:23:\"__cache_expiration_time\";i:1744235599;}','off'),(148,'_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1744235599','off'),(149,'_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1744192399','off'),(150,'_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b','1744235599','off'),(151,'_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b',' ','off'),(152,'wp-graphql_allow_tracking','no','auto'),(153,'wp-graphql_tracking_notice','hide','auto'),(154,'wp-graphql_tracking_skipped','yes','auto'),(155,'wpgraphql_login_settings','a:1:{s:14:\"jwt_secret_key\";s:64:\"5A6n2zGxdsOvYTYVMsHqPmAkXh5ol1l4fYIzRKrADO0pnJwwihjcWB42QoILmtwH\";}','auto'),(156,'wpgraphql_login_provider_facebook','a:6:{s:4:\"name\";s:0:\"\";s:5:\"order\";i:0;s:9:\"isEnabled\";b:0;s:13:\"clientOptions\";a:0:{}s:12:\"loginOptions\";a:1:{s:23:\"useAuthenticationCookie\";b:0;}s:4:\"slug\";s:8:\"facebook\";}','auto'),(157,'wpgraphql_login_provider_password','a:6:{s:4:\"name\";s:0:\"\";s:5:\"order\";i:0;s:9:\"isEnabled\";b:1;s:13:\"clientOptions\";a:0:{}s:12:\"loginOptions\";a:1:{s:23:\"useAuthenticationCookie\";b:1;}s:4:\"slug\";s:8:\"password\";}','auto'); +/*!40000 ALTER TABLE `wp_options` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_postmeta` +-- + +DROP TABLE IF EXISTS `wp_postmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_postmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `post_id` (`post_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_postmeta` +-- + +LOCK TABLES `wp_postmeta` WRITE; +/*!40000 ALTER TABLE `wp_postmeta` DISABLE KEYS */; +INSERT INTO `wp_postmeta` VALUES (1,2,'_wp_page_template','default'),(2,3,'_wp_page_template','default'); +/*!40000 ALTER TABLE `wp_postmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_posts` +-- + +DROP TABLE IF EXISTS `wp_posts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_posts` ( + `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, + `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content` longtext NOT NULL, + `post_title` text NOT NULL, + `post_excerpt` text NOT NULL, + `post_status` varchar(20) NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) NOT NULL DEFAULT 'open', + `ping_status` varchar(20) NOT NULL DEFAULT 'open', + `post_password` varchar(255) NOT NULL DEFAULT '', + `post_name` varchar(200) NOT NULL DEFAULT '', + `to_ping` text NOT NULL, + `pinged` text NOT NULL, + `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content_filtered` longtext NOT NULL, + `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `guid` varchar(255) NOT NULL DEFAULT '', + `menu_order` int(11) NOT NULL DEFAULT 0, + `post_type` varchar(20) NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) NOT NULL DEFAULT '', + `comment_count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`ID`), + KEY `post_name` (`post_name`(191)), + KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), + KEY `post_parent` (`post_parent`), + KEY `post_author` (`post_author`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_posts` +-- + +LOCK TABLES `wp_posts` WRITE; +/*!40000 ALTER TABLE `wp_posts` DISABLE KEYS */; +INSERT INTO `wp_posts` VALUES (1,1,'2025-04-09 09:52:21','2025-04-09 09:52:21','\nWelcome to WordPress. This is your first post. Edit or delete it, then start writing!
\n','Hello world!','','publish','open','open','','hello-world','','','2025-04-09 09:52:21','2025-04-09 09:52:21','',0,'http://127.0.0.1:8888/?p=1',0,'post','',1),(2,1,'2025-04-09 09:52:21','2025-04-09 09:52:21','\nThis is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:
\n\n\n\n\n\n\n\nHi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)
...or something like this:
\n\n\n\n\n\n\n\nThe XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.
As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!
\n','Sample Page','','publish','closed','open','','sample-page','','','2025-04-09 09:52:21','2025-04-09 09:52:21','',0,'http://127.0.0.1:8888/?page_id=2',0,'page','',0),(3,1,'2025-04-09 09:52:21','2025-04-09 09:52:21','\nSuggested text: Our website address is: http://127.0.0.1:8888.
\n\n\nSuggested text: When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.
\n\n\nAn anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.
\n\n\nSuggested text: If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.
\n\n\nSuggested text: If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.
\n\n\nIf you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.
\n\n\nWhen you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.
\n\n\nIf you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.
\n\n\nSuggested text: Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.
\n\n\nThese websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.
\n\n\nSuggested text: If you request a password reset, your IP address will be included in the reset email.
\n\n\nSuggested text: If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.
\n\n\nFor users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.
\n\n\nSuggested text: If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.
\n\n\nSuggested text: Visitor comments may be checked through an automated spam detection service.
\n\n','Privacy Policy','','draft','closed','open','','privacy-policy','','','2025-04-09 09:52:21','2025-04-09 09:52:21','',0,'http://127.0.0.1:8888/?page_id=3',0,'page','',0),(4,0,'2025-04-09 09:53:09','2025-04-09 09:53:09','','Navigation','','publish','closed','closed','','navigation','','','2025-04-09 09:53:09','2025-04-09 09:53:09','',0,'http://127.0.0.1:8888/navigation/',0,'wp_navigation','',0),(5,1,'2025-04-09 09:53:17','0000-00-00 00:00:00','','Auto Draft','','auto-draft','open','open','','','','','2025-04-09 09:53:17','0000-00-00 00:00:00','',0,'http://127.0.0.1:8888/?p=5',0,'post','',0); +/*!40000 ALTER TABLE `wp_posts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_term_relationships` +-- + +DROP TABLE IF EXISTS `wp_term_relationships`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_term_relationships` ( + `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_order` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`object_id`,`term_taxonomy_id`), + KEY `term_taxonomy_id` (`term_taxonomy_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_term_relationships` +-- + +LOCK TABLES `wp_term_relationships` WRITE; +/*!40000 ALTER TABLE `wp_term_relationships` DISABLE KEYS */; +INSERT INTO `wp_term_relationships` VALUES (1,1,0); +/*!40000 ALTER TABLE `wp_term_relationships` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_term_taxonomy` +-- + +DROP TABLE IF EXISTS `wp_term_taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_term_taxonomy` ( + `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, + `parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_taxonomy_id`), + UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), + KEY `taxonomy` (`taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_term_taxonomy` +-- + +LOCK TABLES `wp_term_taxonomy` WRITE; +/*!40000 ALTER TABLE `wp_term_taxonomy` DISABLE KEYS */; +INSERT INTO `wp_term_taxonomy` VALUES (1,1,'category','',0,1); +/*!40000 ALTER TABLE `wp_term_taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_termmeta` +-- + +DROP TABLE IF EXISTS `wp_termmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_termmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `term_id` (`term_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_termmeta` +-- + +LOCK TABLES `wp_termmeta` WRITE; +/*!40000 ALTER TABLE `wp_termmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_termmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_terms` +-- + +DROP TABLE IF EXISTS `wp_terms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_terms` ( + `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', + `term_group` bigint(10) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_id`), + KEY `slug` (`slug`(191)), + KEY `name` (`name`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_terms` +-- + +LOCK TABLES `wp_terms` WRITE; +/*!40000 ALTER TABLE `wp_terms` DISABLE KEYS */; +INSERT INTO `wp_terms` VALUES (1,'Uncategorized','uncategorized',0); +/*!40000 ALTER TABLE `wp_terms` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_usermeta` +-- + +DROP TABLE IF EXISTS `wp_usermeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_usermeta` ( + `umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`umeta_id`), + KEY `user_id` (`user_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_usermeta` +-- + +LOCK TABLES `wp_usermeta` WRITE; +/*!40000 ALTER TABLE `wp_usermeta` DISABLE KEYS */; +INSERT INTO `wp_usermeta` VALUES (1,1,'nickname','admin'),(2,1,'first_name',''),(3,1,'last_name',''),(4,1,'description',''),(5,1,'rich_editing','true'),(6,1,'syntax_highlighting','true'),(7,1,'comment_shortcuts','false'),(8,1,'admin_color','fresh'),(9,1,'use_ssl','0'),(10,1,'show_admin_bar_front','true'),(11,1,'locale',''),(12,1,'wp_capabilities','a:1:{s:13:\"administrator\";b:1;}'),(13,1,'wp_user_level','10'),(14,1,'dismissed_wp_pointers',''),(15,1,'show_welcome_panel','1'),(16,1,'session_tokens','a:1:{s:64:\"4db866bc55dd3027b4ee6a4af34cecaeb6c5b2f1d25afb3424668d9c2c41b727\";a:4:{s:10:\"expiration\";i:1744365195;s:2:\"ip\";s:12:\"192.168.65.1\";s:2:\"ua\";s:117:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36\";s:5:\"login\";i:1744192395;}}'),(17,1,'wp_dashboard_quick_press_last_post_id','5'),(18,1,'community-events-location','a:1:{s:2:\"ip\";s:12:\"192.168.65.0\";}'); +/*!40000 ALTER TABLE `wp_usermeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_users` +-- + +DROP TABLE IF EXISTS `wp_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_users` ( + `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_login` varchar(60) NOT NULL DEFAULT '', + `user_pass` varchar(255) NOT NULL DEFAULT '', + `user_nicename` varchar(50) NOT NULL DEFAULT '', + `user_email` varchar(100) NOT NULL DEFAULT '', + `user_url` varchar(100) NOT NULL DEFAULT '', + `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `user_activation_key` varchar(255) NOT NULL DEFAULT '', + `user_status` int(11) NOT NULL DEFAULT 0, + `display_name` varchar(250) NOT NULL DEFAULT '', + PRIMARY KEY (`ID`), + KEY `user_login_key` (`user_login`), + KEY `user_nicename` (`user_nicename`), + KEY `user_email` (`user_email`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_users` +-- + +LOCK TABLES `wp_users` WRITE; +/*!40000 ALTER TABLE `wp_users` DISABLE KEYS */; +INSERT INTO `wp_users` VALUES (1,'admin','$P$Bf8h3CfebZmVnhz98rGD.QFSdj4uPs.','admin','wordpress@example.com','http://127.0.0.1:8888','2025-04-09 09:52:21','',0,'admin'); +/*!40000 ALTER TABLE `wp_users` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2025-04-09 9:53:49 diff --git a/examples/next/apollo-authentication/wp-env/setup/.htaccess b/examples/next/apollo-authentication/wp-env/setup/.htaccess new file mode 100644 index 00000000..ad8663f5 --- /dev/null +++ b/examples/next/apollo-authentication/wp-env/setup/.htaccess @@ -0,0 +1,21 @@ +WPGraphQL is a free, open-source WordPress plugin that provides an extendable GraphQL schema and API for any WordPress site.
\nGet Started
\nwp plugin install wp-graphql --activate
Key Features
\nWPGraphQL is becoming a Canonical Plugin on WordPress.org, ensuring long-term support and a growing community of users and contributors.
\nIt is recommended that anytime you want to update WPGraphQL that you get familiar with what’s changed in the release.
\nWPGraphQL publishes release notes on Github.
\nWPGraphQL has been following Semver practices for a few years. We will continue to follow Semver and let version numbers communicate meaning. The summary of Semver versioning is as follows:
\nYou can read more about the details of Semver at semver.org
\nWPGraphQL uses Appsero SDK to collect some telemetry data upon user’s confirmation. This helps us to troubleshoot problems faster and make product improvements.
\nAppsero SDK does not gather any data by default. The SDK starts gathering basic telemetry data only when a user allows it via the admin notice.
\nLearn more about how Appsero collects and uses this data.
\nLearn more about how Appsero collects and uses this data.
\n\";s:3:\"faq\";s:1570:\"\n\n
WPGraphQL is free and open-source. It is supported by contributors, backers, and sponsors, including Automattic, which provides significant support as WPGraphQL becomes a Canonical Plugin.
\nLearn more about supporting WPGraphQL on Open Collective.
\n\n\n
Yes! WPGraphQL works with any client that can make HTTP requests to the GraphQL endpoint. It integrates seamlessly with frameworks like Next.js, Gatsby, Astro, and more.
\n\n\n
You can join the WPGraphQL Discord community for support, discussions, and announcements.
\n\n\n
WPGraphQL uses the Appsero SDK to collect telemetry data only after user consent. This helps improve the plugin while respecting user privacy.
\n\n\n\";s:9:\"changelog\";s:25405:\"Bug Fixes
\nOther Changes
\nNew Features
\n#3320: feat: add filter to Request::is_valid_http_content_type to allow for custom content types with POST method requests
\nChores / Bugfixes
#3314: fix: use version_compare to simplify incompatible dependent check
\nAbstractConnectionResolver
BREAKING CHANGE UPDATE
\nThis is a major update that drops support for PHP versions below 7.4 and WordPress versions below 6.0.
\nWe’ve written more about the update here:
\nChores / Bugfixes
\nNew Features
\nChores / Bugfixes
\nNew Features
\nwp graphql generate-static-schema
commandChores / Bugfixes
\nExtensions\\Registry\\get_extensions()
method nameChores / Bugfixes
\nNew Features
\nChores / Bugfixes
\nChores / Bugfixes
\nChores / Bugfixes
\nNew Features
\nChores / Bugfixes
\nChores / Bugfixes
\nUpgrade Notice
\nThis release contains an internal refactor for how the Type Registry is generated which should lead to significant performance improvements for most users. While there is no known breaking changes, because this change impacts every user we highly recommend testing this release thoroughly on staging servers to ensure the changes don’t negatively impact your projects.
\nNew Features
\neagerlyLoadType
on introspection requests.Chores / Bugfixes
\ndocker-compose
commands with docker compose
Chores / Bugfixes
\nChores / Bugfixes
\nWPGraphQL::get_static_schema()
New Features
\nChores / Bugfixes
\n$settings_fields
param on “graphql_get_setting_section_field_value” filter not passing the correct typeNew Features
\ngraphql_connection_pre_get_query
filterAbstractConnectionResolver::is_valid_query_class()
AbstractConnectionResolver::get_query()
AbstractConnectionResolver::get_query_class()
AsbtractConnectionResolver::query_class()
AbstractConnectionResolver::$query_class
AbstractConnectionResolver::get_args()
and ::get_query_args()
into ::prepare_*()
methodsAbstractConnectionResolver::get_ids()
into ::prepare_ids()
AbstractConnectionResolver::get_nodes()
and get_edges()
into prepare_*()
methodsAbstractConnectionResolver::is_valid_model()
in ::get_is_valid_model()
Chores / Bugfixes
\nAbstractConnectionResolver::is_valid_offset()
with other abstract methods.New Features
\nAbsractConnectionResolver::pre_should_execute()
. Thanks @justlevine!Chores / Bugfixes
\n– #3104: refactor: AbstractConnectionResolver::should_execute()
Thanks @justlevine!
\n– #3112: fix: fixes a regression from v1.24.0 relating to field arguments defined on Interfaces not being properly merged onto Object Types that implement the interface. Thanks @kidunot89!
\n– #3114: fix: node IDs not showing in the Query Analyzer / X-GraphQL-Keys when using DataLoader->load_many()
\n– #3116: chore: Update WPGraphQLTestCase to v3. Thanks @kidunot89!
New Features
\nChores / Bugfixes
\nNew Features
\nhasPassword
and password
fields on Post objects. Thanks @justlevine!Chores / Bugfixes
\nChores / Bugfixes
\nNew Features
\ngraphql_pre_resolve_menu_item_connected_node
filterUniformResourceIdentifiable
interface to Comment
typegraphql_query_analyzer_get_headers
filterChores / Bugfixes
\nadmin_enqueue_scripts
callback should expect a possible null
value passed to itisPostsPage
on content typemenuItems
by a location with no assigned itemsUsersConnectionSearchColumnEnum
values should be prefixed with user_
New Features
\nChores / Bugfixes
\nNew Features
\nChores / Bugfixes
\nView Full Changelog: https://github.com/wp-graphql/wp-graphql/blob/develop/CHANGELOG.md
\n\";s:11:\"screenshots\";s:347:\"\";s:7:\"reviews\";s:16212:\"\n By con (conschneider) on March 26, 2025
\n By psychosispicks on September 7, 2023
I\'m so glad I decided to transition to a headless WP, and WPGraphQL made this possible, convenient and super fast.
\n\n By benknight on May 29, 2023
I operate a large blog that uses WordPress as a headless CMS with a Next.JS frontend, which is largely enabled by this plugin. Let me just say first that creating an entire alternative third-party data API is an ambitious undertaking and I appreciate all the work the authors have put into it.
\n\n\n\nBut as a developer I have to throw out a word of caution that this plugin often has major bugs that can have critical impact on your production website. For example after a recent minor update we discovered a bug where any URL with a special character in it started returning a 404, causing several of our pages to suddenly become unavailable to users and delisted from Google, and this went on for many months before we realized it.
\n\n\n\nThere have been many similar instances. My general approach is to lean more on WordPress\'s REST API over time which is more reliable since it\'s maintained by the WordPress team, and only use WPGraphQL when it\'s necessary.
\n\n\n\nAlso recommend turning off auto-updates and test your website extremely thoroughly after any upgrade.
\n\n By chisnghiax on September 7, 2022
\n By 2cubed on August 26, 2022
\n By mauretto1978 on May 31, 2022
\n By Camilo (runonce) on April 25, 2022
\n By turboloop on March 23, 2022
\n By scottyzen on December 3, 2021
\n By Chris (ctack) on September 10, 2021
BREAKING CHANGE UPDATE
\n\nThis is a major update that drops support for PHP versions below 7.4 and WordPress versions below 6.0.
\n\nWe've written more about the update here:
\n\nIn #3293 a bug was fixed in how the MediaDetails.file
field resolves. The previous behavior was a bug, but might have been used as a feature. If you need the field to behave the same as it did prior to this bugfix, you can follow the instructions here to override the field's resolver to how it worked before.
This release includes a new feature to implement a SemVer-compliant update checker, which will prevent auto-updates for major releases that include breaking changes.
\n\nIt also exposes the EnqueuedAsset.group
and EnqueuedScript.location
fields to the schema. Additionally, it adds a WPGraphQL Extensions page to the WordPress admin.
There are no known breaking changes in this release, however, we recommend testing on staging servers to ensure the changes don't negatively impact your projects.
\";s:6:\"1.28.0\";s:395:\"This release contains an internal refactor for how the Type Registry is generated which should lead to significant performance improvements for most users.
\n\nWhile there are no intentional breaking changes, because this change impacts every user we highly recommend testing this release thoroughly on staging servers to ensure the changes don't negatively impact your projects.
\";s:6:\"1.26.0\";s:439:\"This release refactors some code in the AbstractConnectionResolver with an aim at making it more efficient and easier to extend. While we believe there are no breaking changes and have tested against popular extensions such as WPGraphQL Headless Login, WPGraphQL Gravity Forms, WPGraphQL Rank Math and others, we recommend running your own tests on a staging site to confirm that there are no regresssions caused by the refactoring.
\";s:6:\"1.25.0\";s:205:\"This release includes a fix to a regression in the v1.24.0. Users impacted by the regression in 1.24.0 included, but are not necessarily limited to, users of the WPGraphQL for WooCommerce extension.
\";s:6:\"1.24.0\";s:750:\"The AbstractConnectionResolver has undergone some refactoring. Some methods using snakeCase
have been deprecated in favor of their camel_case
equivalent. While we've preserved the deprecated methods to prevent breaking changes, you might begin seeing PHP notices about the deprecations. Any plugin that extends the AbstractConnectionResolver should update the following methods:
getSource
-> get_source
getContext
-> get_context
getInfo
-> get_info
getShouldExecute
-> get_should_execute
getLoader
-> getLoader
WPGraphQL Smart Cache\nFor WPGraphQL Smart Cache users, you should update WPGraphQL Smart Cache to v1.2.0 when updating\nWPGraphQL to v1.16.0 to ensure caches continue to purge as expected.
\n\nCursor Pagination Updates\nThis version fixes some behaviors of Cursor Pagination which may lead to behavior changes in your application.
\n\nAs with any release, we recommend you test in staging environments. For this release, specifically any\nqueries you have using pagination arguments (first
, last
, after
, before
).
This release includes a security patch. It's recommended to update as soon as possible.
\n\nIf you're unable to update to the latest version, we have a snippet you can add to your site.
\n\nYou can read more about it here: https://github.com/wp-graphql/wp-graphql/security/advisories/GHSA-cfh4-7wq9-6pgg
\";s:6:\"1.13.0\";s:1273:\"The ContentRevisionUnion
Union has been removed, and the RootQuery.revisions
and User.revisions
connections that used to resolve to this Type now resolve to the ContentNode
Interface type.
This is technically a Schema Breaking change, however the behavior for most users querying these fields should remain the same.
\n\nFor example, this query worked before, and still works now:
\n\n`graphql\n
\n\n{\n viewer {\n revisions {\n nodes {\n __typename\n ... on Post {\n id\n uri\n isRevision\n }\n ... on Page {\n id\n uri\n isRevision\n }\n }\n }\n }\n revisions {\n nodes {\n __typename\n ... on Post {\n id\n uri\n isRevision\n }\n ... on Page {\n id\n uri\n isRevision\n }\n }\n }\n}\n `
\n\nIf you were using a fragment to reference: ...on UserToContentRevisionUnionConnection
or ...on RootQueryToContentRevisionUnionConnection
you would need to update those references to ...on UserToRevisionsConnection
and ...on RootQueryToRevisionsConnection
respectively.
This release removes the ContentNode
and DatabaseIdentifier
interfaces from the NodeWithFeaturedImage
Interface.
This is considered a breaking change for client applications using a ...on NodeWithFeaturedImage
fragment that reference fields applied by those interfaces. If you have client applications doing this (or are unsure if you do) you can use the following filter to bring back the previous behavior:
`php\n
\n\nadd_filter( 'graphql_wp_interface_type_config', function( $config ) {\n if ( $config['name'] === 'NodeWithFeaturedImage' ) {\n $config['interfaces'][] = 'ContentNode';\n $config['interfaces'][] = 'DatabaseIdentifier';\n }\n return $config;\n}, 10, 1 );\n `
\";s:6:\"1.10.0\";s:556:\"PR (#2490) fixes a bug that some users were\nusing as a feature.
\n\nWhen a page is marked as the "Posts Page" WordPress does not resolve that page by URI, and this\nbugfix no longer will resolve that page by URI.
\n\nYou can read more\nabout why this change was made and find a snippet of code that will bring the old functionality back\nif you've built features around it.
\";s:5:\"1.9.0\";s:1273:\"There are 2 changes that might require action when updating to 1.9.0.
\n\nWhen querying for a nodeByUri
, if your site has the "page_for_posts" setting configured, the behavior of the nodeByUri
query for that uri might be different for you.
Previously a bug caused this query to return a "Page" type, when it should have returned a "ContentType" Type.
\n\nThe bug fix might change your application if you were using the bug as a feature.
\n\nThere were a lot of bug fixes related to connections to ensure they behave as intended. If you were querying lists of data, in some cases the data might be returned in a different order than it was before.
\n\nFor example, using the "last" input on a Comment or User query should still return the same nodes, but in a different order than before.
\n\nThis might cause behavior you don't want in your application because you had coded around the bug. This change was needed to support proper backward pagination.
\";s:5:\"1.6.7\";s:2028:\"There's been a bugfix in the Post Model layer which might break existing behaviors.
\n\nWordPress Post Type registry allows for a post_type to be registered as public
(true
or false
)\nand publicly_queryable
(true
or false
).
WPGraphQL's Model Layer was allowing published content of any post_type to be exposed publicly. This\nchange better respects the public
and publicly_queryable
properties of post types better.
Now, if a post_type is public=>true
, published content of that post_type can be queried by public\nWPGraphQL requests.
If a post_type
is set to public=>false
, then we fallback to the publicly_queryable
property.\nIf a post_type is set to publicly_queryable => true
, then published content of the Post Type can\nbe queried in WPGraphQL by public users.
If both public=>false
and publicly_queryable
is false
or not defined, then the content of the\npost_type will only be accessible via authenticated queries by users with proper capabilities to\naccess the post_type.
Possible Action: You might need to adjust your post_type registration to better reflect your intent.
\n\npublic=>true
: The entries in the post_type will be public in WPGraphQL and will have a public\nURI in WordPress.public=>false, publicly_queryable=>true
: The entries in the post_type will be public in WPGraphQL,\nbut will not have individually respected URI from WordPress, and can not be queried by URI in WPGraphQL.public=>false,publicly_queryable=>false
: The entries in the post_type will only be accessible in\nWPGraphQL by authenticated requests for users with proper capabilities to interact with the post_type.The MenuItem.path
field was changed from non-null
to nullable and some clients may need to make adjustments to support this.
The uri
field was non-null on some Types in the Schema but has been changed to be nullable on all types that have it. This might require clients to update code to expect possible null values.
Composer dependencies are no longer versioned in Github. Recommended install source is WordPress.org or using Composer to get the code from Packagist.org or WPackagist.org.
\";}s:11:\"screenshots\";a:2:{i:1;a:2:{s:3:\"src\";s:63:\"https://ps.w.org/wp-graphql/assets/screenshot-1.jpg?rev=2482884\";s:7:\"caption\";s:0:\"\";}i:2;a:2:{s:3:\"src\";s:63:\"https://ps.w.org/wp-graphql/assets/screenshot-2.jpg?rev=2482884\";s:7:\"caption\";s:0:\"\";}}s:4:\"tags\";a:5:{s:9:\"decoupled\";s:9:\"decoupled\";s:7:\"graphql\";s:7:\"GraphQL\";s:8:\"headless\";s:8:\"headless\";s:5:\"react\";s:5:\"react\";s:8:\"rest-api\";s:8:\"rest-api\";}s:8:\"versions\";a:140:{s:8:\"0.1.14.1\";s:62:\"https://downloads.wordpress.org/plugin/wp-graphql.0.1.14.1.zip\";s:6:\"0.15.4\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.0.15.4.zip\";s:6:\"0.15.5\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.0.15.5.zip\";s:6:\"0.15.6\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.0.15.6.zip\";s:3:\"1.0\";s:57:\"https://downloads.wordpress.org/plugin/wp-graphql.1.0.zip\";s:5:\"1.0.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.0.1.zip\";s:5:\"1.0.2\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.0.2.zip\";s:5:\"1.0.3\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.0.3.zip\";s:5:\"1.0.4\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.0.4.zip\";s:5:\"1.0.5\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.0.5.zip\";s:5:\"1.1.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.0.zip\";s:5:\"1.1.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.1.zip\";s:5:\"1.1.2\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.2.zip\";s:5:\"1.1.3\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.3.zip\";s:5:\"1.1.4\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.4.zip\";s:5:\"1.1.5\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.5.zip\";s:5:\"1.1.6\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.6.zip\";s:5:\"1.1.7\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.7.zip\";s:5:\"1.1.8\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.8.zip\";s:7:\"1.1.8.0\";s:61:\"https://downloads.wordpress.org/plugin/wp-graphql.1.1.8.0.zip\";s:6:\"1.10.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.10.0.zip\";s:6:\"1.11.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.11.0.zip\";s:6:\"1.11.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.11.1.zip\";s:6:\"1.11.2\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.11.2.zip\";s:6:\"1.11.3\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.11.3.zip\";s:6:\"1.12.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.12.0.zip\";s:6:\"1.12.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.12.1.zip\";s:6:\"1.12.2\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.12.2.zip\";s:6:\"1.12.3\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.12.3.zip\";s:6:\"1.13.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.0.zip\";s:6:\"1.13.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.1.zip\";s:7:\"1.13.10\";s:61:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.10.zip\";s:6:\"1.13.2\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.2.zip\";s:6:\"1.13.4\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.4.zip\";s:6:\"1.13.5\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.5.zip\";s:6:\"1.13.6\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.6.zip\";s:6:\"1.13.7\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.7.zip\";s:6:\"1.13.8\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.8.zip\";s:6:\"1.13.9\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.13.9.zip\";s:6:\"1.14.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.0.zip\";s:7:\"1.14.10\";s:61:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.10.zip\";s:6:\"1.14.2\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.2.zip\";s:6:\"1.14.3\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.3.zip\";s:6:\"1.14.4\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.4.zip\";s:6:\"1.14.5\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.5.zip\";s:6:\"1.14.6\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.6.zip\";s:6:\"1.14.7\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.7.zip\";s:6:\"1.14.8\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.8.zip\";s:6:\"1.14.9\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.14.9.zip\";s:6:\"1.15.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.15.0.zip\";s:6:\"1.16.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.16.0.zip\";s:6:\"1.17.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.17.0.zip\";s:6:\"1.18.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.18.1.zip\";s:6:\"1.18.2\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.18.2.zip\";s:6:\"1.19.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.19.0.zip\";s:5:\"1.2.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.2.0.zip\";s:5:\"1.2.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.2.1.zip\";s:5:\"1.2.2\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.2.2.zip\";s:5:\"1.2.3\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.2.3.zip\";s:5:\"1.2.4\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.2.4.zip\";s:5:\"1.2.5\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.2.5.zip\";s:5:\"1.2.6\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.2.6.zip\";s:6:\"1.20.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.20.0.zip\";s:6:\"1.21.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.21.0.zip\";s:6:\"1.22.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.22.0.zip\";s:6:\"1.22.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.22.1.zip\";s:6:\"1.23.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.23.0.zip\";s:6:\"1.24.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.24.0.zip\";s:6:\"1.25.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.25.0.zip\";s:6:\"1.26.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.26.0.zip\";s:6:\"1.27.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.27.0.zip\";s:6:\"1.27.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.27.1.zip\";s:6:\"1.27.2\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.27.2.zip\";s:6:\"1.28.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.28.0.zip\";s:6:\"1.28.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.28.1.zip\";s:6:\"1.29.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.29.0.zip\";s:6:\"1.29.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.29.1.zip\";s:6:\"1.29.2\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.29.2.zip\";s:6:\"1.29.3\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.29.3.zip\";s:5:\"1.3.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.0.zip\";s:5:\"1.3.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.1.zip\";s:6:\"1.3.10\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.10.zip\";s:5:\"1.3.2\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.2.zip\";s:5:\"1.3.3\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.3.zip\";s:5:\"1.3.4\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.4.zip\";s:5:\"1.3.5\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.5.zip\";s:5:\"1.3.6\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.6.zip\";s:5:\"1.3.7\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.7.zip\";s:5:\"1.3.8\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.8.zip\";s:5:\"1.3.9\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.9.zip\";s:6:\"1.30.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.30.0.zip\";s:6:\"1.31.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.31.0.zip\";s:6:\"1.31.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.31.1.zip\";s:6:\"1.32.0\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.32.0.zip\";s:6:\"1.32.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.32.1.zip\";s:5:\"1.4.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.4.0.zip\";s:5:\"1.4.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.4.1.zip\";s:5:\"1.4.2\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.4.2.zip\";s:5:\"1.4.3\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.4.3.zip\";s:5:\"1.5.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.0.zip\";s:5:\"1.5.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.1.zip\";s:5:\"1.5.2\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.2.zip\";s:5:\"1.5.3\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.3.zip\";s:5:\"1.5.4\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.4.zip\";s:5:\"1.5.5\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.5.zip\";s:5:\"1.5.6\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.6.zip\";s:5:\"1.5.7\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.7.zip\";s:5:\"1.5.8\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.8.zip\";s:5:\"1.5.9\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.5.9.zip\";s:5:\"1.6.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.0.zip\";s:5:\"1.6.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.1.zip\";s:6:\"1.6.10\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.10.zip\";s:6:\"1.6.11\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.11.zip\";s:6:\"1.6.12\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.12.zip\";s:5:\"1.6.2\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.2.zip\";s:5:\"1.6.3\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.3.zip\";s:5:\"1.6.4\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.4.zip\";s:5:\"1.6.5\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.5.zip\";s:5:\"1.6.6\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.6.zip\";s:5:\"1.6.7\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.7.zip\";s:5:\"1.6.8\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.8.zip\";s:5:\"1.6.9\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.6.9.zip\";s:5:\"1.7.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.7.0.zip\";s:5:\"1.7.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.7.1.zip\";s:5:\"1.7.2\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.7.2.zip\";s:5:\"1.8.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.8.0.zip\";s:5:\"1.8.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.8.1.zip\";s:5:\"1.8.2\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.8.2.zip\";s:5:\"1.8.3\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.8.3.zip\";s:5:\"1.8.4\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.8.4.zip\";s:5:\"1.8.5\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.8.5.zip\";s:5:\"1.8.6\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.8.6.zip\";s:5:\"1.8.7\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.8.7.zip\";s:5:\"1.9.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.9.0.zip\";s:5:\"1.9.1\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.9.1.zip\";s:5:\"2.0.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.2.0.0.zip\";s:12:\"2.0.0-beta.2\";s:66:\"https://downloads.wordpress.org/plugin/wp-graphql.2.0.0-beta.2.zip\";s:5:\"2.1.0\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.2.1.0.zip\";s:5:\"trunk\";s:53:\"https://downloads.wordpress.org/plugin/wp-graphql.zip\";s:6:\"v2.1.1\";s:60:\"https://downloads.wordpress.org/plugin/wp-graphql.v2.1.1.zip\";}s:14:\"business_model\";s:9:\"community\";s:14:\"repository_url\";s:40:\"https://github.com/wp-graphql/wp-graphql\";s:22:\"commercial_support_url\";s:0:\"\";s:11:\"donate_link\";s:0:\"\";s:7:\"banners\";a:2:{s:3:\"low\";s:65:\"https://ps.w.org/wp-graphql/assets/banner-772x250.png?rev=3111985\";s:4:\"high\";s:66:\"https://ps.w.org/wp-graphql/assets/banner-1544x500.png?rev=3111985\";}s:5:\"icons\";a:2:{s:2:\"1x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-128x128.png?rev=3111985\";s:2:\"2x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-256x256.png?rev=3111985\";}s:12:\"preview_link\";s:51:\"https://wordpress.org/plugins/wp-graphql/?preview=1\";s:4:\"Name\";s:9:\"WPGraphQL\";}}','off'),(158,'recently_activated','a:1:{s:41:\"wordpress-importer/wordpress-importer.php\";i:1744109158;}','off'),(171,'wpesu-plugin-wp-graphql-content-blocks-expiry','1742497880','off'),(172,'wpesu-plugin-wp-graphql-content-blocks','{\n \"name\": \"WPGraphQL Content Blocks\",\n \"slug\": \"wp-graphql-content-blocks\",\n \"version\": \"4.8.2\",\n \"author\": \"WP Engine\",\n \"author_profile\": \"https://profiles.wordpress.org/wpengine/\",\n \"contributors\": {\n \"justlevine\": {\n \"profile\": \"https://profiles.wordpress.org/justlevine/\",\n \"avatar\": \"https://secure.gravatar.com/avatar/33212bff2915bd72792772a2d3203abe0402352b6be6ba65081036f10560c6e6?r=g\",\n \"display_name\": \"justlevine\"\n },\n \"wpengine\": {\n \"profile\": \"https://profiles.wordpress.org/wpengine/\",\n \"avatar\": \"https://secure.gravatar.com/avatar/6d44461b684d2f3d8f6fcf3d657cb889?s=96&d=monsterid&r=g\",\n \"display_name\": \"WP Engine\"\n }\n },\n \"requires\": \"5.7\",\n \"tested\": \"6.7.2\",\n \"requires_php\": \"7.4\",\n \"requires_plugins\": [],\n \"rating\": 100,\n \"ratings\": {\n \"5\": 1,\n \"4\": 0,\n \"3\": 0,\n \"2\": 0,\n \"1\": 0\n },\n \"num_ratings\": 1,\n \"support_url\": \"https://github.com/wpengine/wp-graphql-content-blocks/issues\",\n \"support_threads\": 0,\n \"support_threads_resolved\": 0,\n \"active_installs\": 10,\n \"last_updated\": \"2025-03-05 18:23 GMT\",\n \"added\": \"2025-02-10\",\n \"homepage\": \"https://github.com/wpengine/wp-graphql-content-blocks/\",\n \"sections\": {\n \"description\": \"WordPress plugin that extends WPGraphQL to support querying (Gutenberg) Blocks as data.\",\n \"changelog\": \"\n Headless WordPress Toolkit\n
\n\n \n\n \n\n