I had the chance to talk to Remkus De Vries on his podcast to talk about WordPress performance. This was recorded a while ago ( which is why I am wearing a christmas jumper ). Remkus is really doing great things and if you are not already following on twitter ( @remkusdevries ) or subscribe to his newsletter.
Today, I am happy to annouce that I will working full time on the WordPress core performance project. I will be sponsored by XWP to work full time on work on WordPress core performance project and will be working closing with the Google and 10up teams.
Working on open source full time, has been a dream of mine for years. With this full time commitment, it means I can take on bigger core performance tasks and really try to move the neddle in terms of performance. My first day and is 1st of March. I will keep you updated via this blogs and social media.
I would like to thank everyone that reached out to support and help me with interview offers. I was blown away by the response I got from the last blog post. The WordPress community is the best and there is a reason why I love it soo much.
REST API Performance with Jonny Harris
I am on this month’s Headless WP Podcast. We talk about performance, scaling and the REST API. Really interesting conversion.
Improve WP_Query performance if using external object cache
Are you using an external object cache, like Memcache or Redis? Is so, there is a little one line piece of code that can improve the performance of
WP_Queryand performance in general on your site.
add_filter( 'split_the_query', 'wp_using_ext_object_cache' );
Why does this improve performance? See these lines in WordPress core. The filter
split_the_querydeterminants if the database query in
WP_Queryshould get posts by ID or load the whole post object. If the post is loaded by ID, it loads the whole post object by checking the cache and is not in the cache, calling
_prime_post_caches. In the case of site using an external object cache, the query should always just load the IDs, as the post object will 99.999% of the time, be in object cache already. This filter forces posts to be loaded from object cache and makes the database query simplier ( by only loading the ID). This filter is place for backwards compatibility reasons so it safe to use if you know what you are doing, but I don’t see many people using it. The above line can be put anywhere in your code, but I would recommend adding to to a mu-plugin.
Looking for a new role
What this also means is that XWP is no longer sponsoring me to work on WordPress core. Without XWP’s support here, I will no longer be able to commit the 15 hours a week I currently work on WordPress core and other related open source projects. This will sadly mean that work on the WordPress performance project will slow ( or stop ), while I work on securing new sponsors. If you are interested in sponsoring me or help me to get sponsored, then reach out or consider sponsoring me on Github.
I will be attending WordCamp Asia in February 2023. For anyone interested in talking, that might be a great place to meet face to face.
I would like to take the opportunity to thank XWP. It has been my home for 3 and half years. The community at XWP has been amazing to be part of and I have valued every second I worked there. I hope to keep strong ties with the XWP and the XWP community for many years to come.
Live stream: WordPress Performance Team: year 1
I am going to be involved in a live stream, where we talk about the first year of contributing to the WordPress performance project. Check it out.
📆: Monday Dec 19
⏰: 2p EST
Noteworthy Contributor in WordPress 6.1
I am super proud to have noted as a noteworthy contributor. It is such an honour to be featured in this list with such great people.
This was a really big release for me, getting many very long standing ticket merged into core, like adding caching to WP_Query. I worked really hard on performance, even finding last minute performance issues at 1am in the morning.
The performance improves to WordPress are notable. See these comparisons.
WordPress 5.9 – 2022 theme
WordPress 6.0 – 2022 Theme
WordPress 6.1 – 2022 Theme
If you are interested in some of the work, that I did as part of the WordPress 6.1 release, you can see the dev notes I wrote on the make WordPress Blog. If you are interested in sponsoring my work, this can be done on gitbub sponsor page.
Taking a break: 25th July until 5th of September
I am taking a break from open source and soical media from 25th July until 5th of September. There are a number of reason to do this. For one I am getting married but I am also just in need a digital detox and need a break from everything. So no checking twitter, facebook or linked in.
I will see you all again on the 5th of September.
Press This: How Google is Helping Make WordPress Core Faster with Thierry Muller
Checkout this interview with Thierry Muller from the Google open source team about the me and XWP having been doing on object caching to improve WordPress performance.
Dev notes for WordPress 6.0
The developer notes and I worked on / reviewed for WordPress 6.0. There is much work that goes into these.
Web Stories for WordPress
The team at XWP has written a great case study of the web stories plugin, I have been working on since 2019. Well work a read.
Announcing the Classic Menu Block plugin
Today I am happy to announce a new plugin I have been working on called classic menu block. This is a very simple plugin that adds a new classic menu block to the gutenberg editor. The classic menu block, allows you to embed all the existing menus you have setup on your site, using the existing core function, wp_nav_menu by rendering the block’s output in PHP. This means for those using menus with super custom walkers and plugins that hook into the existing menus filters, these can now be used within, blog posts, block based widget areas and even within full site editing. This differs from the new navigation block, which takes existing menu data and migrates to nested navigation link blocks. For information, checkout the announcement blog post.
This plugin requires WordPress 5.9 to function, as it relays on the new menus endpoints added in this function. This is something near and dear to my heart, as I worked on the menus endpoints for nearly 2 and half years to get them into core. More details on this announcement can be found on the make.WordPress.org blog.
For those that wish to customize attributes passed to the wp_nav_menu, there is a filter called classic_menu_block_attributes. This would allow you change any attributes passed to the wp_nav_menu function.
/** * Filters menu attributes. * * @since 0.1.0 * * @param array $menu_attrs Menu attributes. * @param array $attrs Block attributes. */ $menu_attrs = apply_filters( 'classic_menu_block_attributes', $menu_attrs, $attrs );
The plugin currently only comes with very basic styling of the menu block. Styling for this block, should come from the theme. However, if you are interested in contributing, please feel free to submit a pull request on github.
I wrote this plugin, to help those that are dipping their toes into the full site editing world. I hope this solves a problem for some people.
You must be logged in to post a comment.