Welcome to ManageWP.org

Register to share, discuss and vote for the best WordPress stories every day, find new ideas and inspiration for your business and network with other members of the WordPress community. Join the #1 WordPress news community!

×

11 min read Iain Poulson

Hooks, Line, and Sinker: WordPress’ New WP_Hook Class

WordPress 4.7 contained an overhaul of the hooks system in WordPress core. In our latest post Pete goes over some of the changes and the introduction of the WP_Hook class.

Hooks, Line, and Sinker: WordPress’ New WP_Hook Class

The hooks system is a central pillar of WordPress and with the 4.7 release a major overhaul of how it works was merged. The Trac ticket that initially raised an issue with the hooks system was logged over 6 years ago. After a few attempts, the updates finally made it into the 4.7 release and the venerable hooks system was overhauled. In this post I want to go over some of the technical changes and decisions that went into the new WP_Hook class. I’ll also go over some of the more interesting aspects of WordPress core development and look into what it takes to overhaul a major feature in WordPress core. For the purposes of this post I’m going to assume you know what the WordPress hooks system is (i.e. add_filter(), add_action(), apply_filters() and do_action()), and have a general idea of how it works. It would also be a good idea to read over the Make blog post that covers the changes.
What’s Changed?
One of the bigger changes introduced in WordPress 4.7 is that there is a new WP_Hook class. This new class is now used to handle all the internal hooks within WordPress core. It’s kind of a big deal. Pre-4.7, all the hook functions (add_filter() etc.) and logic were

11 min read Tom Zsomborgi
Development | kinsta.com | 1 day ago

A Developer's Introduction to the Twenty Seventeen Theme

This advanced tutorial shows how developers can get the most from the new WordPress default theme.

A Developer's Introduction to the Twenty Seventeen Theme

Development | kinsta.com | 1 day ago

With the release of WordPress 4.7, also came the new Twenty Seventeen theme. More than all its predecessors, the new default theme is highly customizable for both users and developers, it’s easy to use, and perfectly suitable for both personal and professional purposes. Moreover, it is great when it comes to site performance, as Brian explains in How to Score 100/100 in Google PageSpeed Insights with WordPress. The Twenty Seventeen theme provides the perfect dress for new amazing WordPress features like the customizable video header. Moreover, it provides theme specific features like front-page sections, SVG icons support, visible edit icons in the Customizer.
Much has already been written about Twenty Seventeen theme, so in this post I won’t make a new list of its cool features and functionalities. Rather, I will propose five small tutorials aiming to help developers and advanced users to get the most from the new WordPress default theme. Thanks to a child theme, we will:
A Child Theme to Enhance Twenty Seventeen Theme Functionalities
I will assume you are familiar with child theming in WordPress. If you’d need a refresher, take the time to have a read at our WordPress

1 min read David Bisset

The JavaScript for WordPress Show

Nice new podcast (videocast?) from Zac Gordon interviewing JavaScript influencers inside the WordPress community.

The JavaScript for WordPress Show

Welcome to the show where educator Zac Gordon asks JS influencers inside the WordPress community and without how they Learn(ed) JavaScript Deeply and what advice they have for others trying to do the same. Ep. 1 – “Stop Using WordPress” ~ with Roy Sivan

1 min read David Bisset

Theme Developer Handbook Released!

The WordPress Theme Developer Handbook has finally been released. Congrats to the almost 100 involved. Feedback welcomed.

Theme Developer Handbook Released!

Weekly Meetings As well as discussing docs issues here on the blog, we use Slack for group communication.
Individual teams have their own regular meetings – you can find details of those in the sidebar.

13 min read David Bisset
Development | blog.sucuri.net | 5 days ago

Sucuri's WordPress Performance Optimization Guide

This guide is basic, but well rounded: it should help the thought about performance and which areas to focus on.

Sucuri's WordPress Performance Optimization Guide

Development | blog.sucuri.net | 5 days ago

Since launching our website performance testing tool we have been getting a lot of questions about how to improve the speed and performance of WordPress websites. Many website owners are not aware how slow their sites are, so we are excited to help shed some light on the matter. There are a number of different resources available to help you dive into the world of performance optimization. In this article, I want to create a proper foundation for any website owner to start thinking about performance optimization.
This basic guide should help website owners understand how to think about performance and which areas to focus on. This information is designed as a high-level overview, but it is structured so that if you were interested in more data, you can follow the links provided for additional research, details, and tutorials online that help you optimize your website at every layer.
Performance – Core Domains
First, we have to understand that website performance can be divided into three domains. These areas each affect the speed of your website in different ways.
The basic performance principles for each domain can be delineated as follows:
Networking: Reduce distances
Software:

10 min read Iain Poulson

Performance Best Practices in the HTTP/2 Era

It’s been an exciting couple of years for the web, with the widespread adoption of HTTP/2 and Let’s Encrypt. Not only is the web becoming faster and more secure, but it’s easier than ever for developers and site owners to implement performance and security best practices. In this article Ash takes a look at what’s new in HTTP/2 and what that means for performance best practices going into 2017.

Performance Best Practices in the HTTP/2 Era

Hypertext Transfer Protocol (HTTP) has been around since 1991, and we haven’t seen a major update since 1999, when HTTP/1.1 was released. During this time a lot of performance best practices have been passed around the web to try and circumvent some of the shortcomings in HTTP/1.1. Sites such as Pingdom and GTmetrix are the de facto when it comes to measuring a site’s performance and for the most part they’re excellent tools. However, some of their recommendations aren’t relevant in the era of HTTP/2.
What’s New?
Let’s take a look at what’s new in HTTP/2 and what that means for performance best practices going into 2017.
Fully Multiplexed
This is arguably the flagship feature of HTTP/2, which fixes one of the biggest problems with HTTP/1.1, namely head-of-line blocking. In layman’s terms it means that only one request can be outstanding on a connection at a time, resulting in latency. This is because the next request is only issued once the response to the current request has been received, resulting in a “queue” of assets to be downloaded from the server.
In an attempt to circumvent this issue a browser may open multiple TCP

4 min read David Bisset
Development | rarst.net | 8 days ago

WordPress APIs Developer Satisfaction Survey Results

Andrey publishes results of a WordPress API survey from developers: their development experience with WordPress and how would they rate WordPress APIs.

WordPress APIs Developer Satisfaction Survey Results

Development | rarst.net | 8 days ago

When you spend a lot of time with it you get a distinct feel about WordPress developer experience. Some parts get job done and other are synonymous with trouble. Yet there is rarely organized conversation about this. Which WordPress APIs perform well and why? How do we get more to that point?
I had run WordPress APIs Developer Satisfaction survey to get some measured insights.
Responses
Survey asked two questions of participants:
Their development experience with WordPress — on the scale from 1–Novice to 5–Expert.
How would they rate WordPress APIs on the list of 30 — with possible ratings of: Horrible, Bad, Normal, Good, Excellent.
The results are summarized in following chart.
You can see raw responses and processed results as a spreadsheet. Thank you to everyone who participated!
Survey attracted responses from experienced developers. 62.7% rated their WordPress experience level 5/5 and 31.3% — 4/5.
The distribution of API ratings was:
40.3% positive (Good or Excellent)
33.1% Normal
26.6% negative (Bad or Horrible)
Familiarity
Most familiar
Admin Menus, Ajax (100%)
Admin Pages, Custom Post Types, Query (97%)
Custom Taxonomies, Database, Plugin (hooks),

What makes a great customization experience?

"Customization is one of the core focuses for 2017. We’ll be focusing on creating a great editing experience first, and then we’ll be extending that experience to encompass site building and customization." Comment comment comment comment comment comment!

What makes a great customization experience?

Customization is one of the core focuses for 2017. We’ll be focusing on creating a great editing experience first, and then we’ll be extending that experience to encompass site building and customization. There’s a lot of work we can do to improve customization in WordPress leading up to the convergence with editing.
What do you think makes a great site building and customization experience? Outside of WordPress, what are your favorite tools and services for making sites? What makes them great?
Conversely, what are some of the biggest pain points you see within our existing customization experience?
If you’re interested in working on customization, please join us in Slack in #core-customize. The next meeting will be January 16, 2017 6:00:00 PM GMT. Looking forward to kicking of 2017!

12 min read Iain Poulson
Development | poststatus.com | 11 days ago

New Year's resolutions for WordPress developers • Post Status

Jack Lennox, a developer at Automattic, runs through some great practical tips for developers.

New Year's resolutions for WordPress developers • Post Status

Development | poststatus.com | 11 days ago

It’s a new year, and a great time to set some New Year’s resolutions as a WordPress developer. Here are some practical tips to up your game working with the WordPress code base. Editor’s Note: This is a guest post by Jack Lenox. Jack is a developer at Automattic and hails from the United Kingdom.
For just over a year now, I have been working on the WordPress.com VIP team at Automattic. I had been working at Automattic for the two years prior to this – and had been developing sites with PHP and WordPress for almost ten years prior to that. So you might imagine that I had a pretty good handle on developing stuff with WordPress.
And you would be wrong. Getting started with the VIP team was an eye-opening and occasionally terrifying learning experience, occasionally resulting in me thinking: “please excuse me for a moment while I go and fix some horrible vulnerability in all of my WordPress sites.”
Recently, I have cautiously found myself feeling slightly more comfortable with my position on the team. For some time, I have been wanting to document the most interesting and impactful things that I have learned in the past year.
As some readers may know,

5 min read Tang Rufus
Development | typist.tech | 13 days ago

WordPress Plugin Acceptance Test with Codeception on VVV - Typist Tech

Tutorial on how to leverage Varying Vagrant Vagrants, Codeception and wp-browser to write acceptance tests for WordPress plugins.

WordPress Plugin Acceptance Test with Codeception on VVV - Typist Tech

Development | typist.tech | 13 days ago

Ever anxious about pushing new release of WordPress plugin causing the white screen of death on your clients’ sites? You should write some acceptance tests! I will demonstrate how to leverage Varying Vagrant Vagrants, Codeception and wp-browser to write acceptance tests for WordPress plugins. Codeception is a PHP testing framework built on PHPUnit that automates acceptance testing. It does functional and unit tests also.
wp-browser is a WordPress specific set of extensions for Codeception written by theAverageDev.
The package includes a class extending Codeception PhpBrowser module that adds WordPress related assertions for cest and cept tests, an extension of Codeception own Db module meant to allow for more comfortable WordPress specific database handling and testing and a class taking care of installing and loading a WordPress installation relying on WordPress automated testing suite.
We’ll run our tests from within VVV because WP CLI, Node, and Composer are already installed for us there.
Before we actually writing the tests, we need a WordPress installation and a plugin to test. I use my plugin Remove Medium Cross Links as an example. All it does is remove the medium

8 min read Iain Poulson

Writing Functional Tests for WP-CLI Packages

While Matt has made WP-CLI commands and packages before, he didn’t have much experience with testing them. In this article, he takes a look at Behat (the testing framework WP-CLI uses) and how to write functional tests for his wp-installer package.

Writing Functional Tests for WP-CLI Packages

My last article was part of a short series on automating local WordPress site setup. In that series, we created a WP-CLI package that helps with installing and uninstalling WordPress development environments, and we even got it submitted to the WP-CLI Package Index. Since the command is available for anyone to use in the Package Index, it makes sense to improve on the command and make sure that it works for everyone. In this post we’re going to take a bit of a break from automating WordPress installs and start writing some functional tests to make sure that everything works as expected. While I’ll be writing the tests for the wp installer command, the same concepts should apply for any WP-CLI package.
Functional Tests? You mean Unit Tests?
You’ve probably heard of unit testing and tools like PHPUnit. Unit tests are a great way to test specific functions or methods in your projects, and focus more on the code side of things.
Functional tests are similar to unit tests, but differ in that instead of writing code to verify that your existing code works properly, you describe how you expect a specific feature to behave in human-readable terms. This can be done using a language

6 min read Donna Cavalier
Development | mor10.com | 27 days ago

The Case for WordPress Telemetry

Honestly, I didn't know what telemetry meant, but now that I've read the article, I'm definitely liking it. Good idea, as long as it is implemented correctly, as they mentioned.

The Case for WordPress Telemetry

Development | mor10.com | 27 days ago

WordPress prides itself on being an application built by the user for the user. The problem is with the popularity and reach of WordPress today, the distance between the WordPress 1% (or even .1%) and the average user is becoming so vast we (the people who contribute to WordPress core) know almost nothing about the actual people who use WordPress or how they use the application. This will become more of an issue as the application evolves, and it is high time we do something about it. Lack of data means we’re flying blind
During the development of WordPress 4.7, I was involved in several conversations centered around assumed use of features. The general argument was that based on the 80/20 rule, certain features should be added while others should be removed. I kept brining up the well known fact we don’t have a clue what features 80%, or even 20%, of WordPress users actually use so any claim of validity in the 80/20 rule is guesswork at best, and in response one developer told me, point blank, “we know what the user wants.” I don’t know about you, but in my book that is not the way to build an application for real people.
What we need is raw data based

2 min read David Bisset
Development | daily.jorb.in | 25 days ago

2016 WordPress Committer Stats

Aaron Jorbin compiles some interesting stats for 2016. Example: The total number of commits is down from 5106 to 2967.

2016 WordPress Committer Stats

Development | daily.jorb.in | 25 days ago

I’m sharing these stats with the duel caveat that commits aren’t a great measure of impact and that commits only represent one type of core contribution. When I talk about employers it’s with the caveat that some people change jobs. Also not everyone works on donated time. Now that I have looked at these numbers for two years I think that it’s interesting to see the trends. In 2015 31 people with 16 unique employers committed to WordPress core. In 2016 it’s 37 people with 20 employees.
The employer with the highest percentage of commits in 2016 remains Automattic at 14.66%. This is down from 20.37%.
The individual with the greatest number of commits is @ocean90 at 360. Last year it was @wonderboymusic.
The total number of commits is down from 5106 to 2967. While that number is big I don’t think it’s necessarily bad.
For props this year 750 individuals got props with 396 for the first time. This is up from 721 total and 379 first timers in 2015. 91 people contributed to every release in 2016 vs 94 in 2015.

6 min read Igor Benić
Development | tommcfarlin.com | 19 days ago

Writing Better Code For WordPress-Based Projects

Includes a great set of test questions that could make you a better developer. Really interesting ones. How much would you score on the test? I am around 6/7. Need to improve:)

Writing Better Code For WordPress-Based Projects

Development | tommcfarlin.com | 19 days ago

I don’t remember exactly when I first stumbled across Joel Spolsky’s blog Joel on Software, but it was at some point late in high school. I didn’t know enough about the whole software development process to get a lot of what he was talking about really, but I enjoyed his writing style, and I enjoyed what he had to say.
In fact, I was such a fan that when I graduated, I went on to buy his books (which were collections of the articles on his site) and read them cover-to-cover. I kept copies of them on my desk at work, and I used one of his books – Smart and Gets Things Done – when I was a team lead.
The articles that stuck out the most to me, though, were those that were about writing better code. Here’s the thing, though: Those articles included nothing about actually writing code.
Writing Better Code
Instead, it was all about the processes around better code. And I stumbled across an article – 16 years old, nonetheless – and I still find it as relevant today as I did when I first found it.
Except now, I find it myself wondering how it applies to my current development gig.
The Joel Test
First, the article in question is one that I find

2 min read David Bisset
Development | poststatus.com | Dec. 10, 2016

Exclusive: Matt Mullenweg Interview on New WordPress Dev Cycle

Nice interview (with audio-only or video) of Matt by Brian Krosgard at WordCamp US 2016. Nice one-on-one moment, usual great content from Post Status (this is public, open to all).

Exclusive: Matt Mullenweg Interview on New WordPress Dev Cycle

Development | poststatus.com | Dec. 10, 2016

I had the opportunity to interview Matt Mullenweg at the end of WordCamp US 2016, and we chatted about the new WordPress development cycle, the WordPress REST API, and more. During contributor day of WordCamp US in Philadelphia, I was able to interview Matt Mullenweg to follow up on several items he announced in the State of the Word.
We mostly discussed the new WordPress development cycle and how it will work with the three focus areas. We also discussed how that will affect other non-major updates and WordPress features.
Matt also talked about the WordPress REST API, how he defines success for it, what he hopes to see out of it, and what he thinks would cause it to revert to a plugin only feature.
And as this was the second and final year of WordCamp US in Philadelphia, we reflected on the event, and talked about what there is to look forward to in Nashville for WordCamp US 2017 and 2018.
You can listen to just the audio, also on our podcast, which you can find on iTunes, Google Play, Stitcher, and via RSS for your favorite podcatcher.
Or just watch the video on YouTube, or below for the full experience. And don’t forget to subscribe to my new channel on YouTube.

4 min read Rami Yushuvaev
Development | GenerateWP.com | 20 days ago

Retrieving Results Filtered by WP_Tax_Query – GenerateWP

After presenting the WP_Meta_Query and the WP_Date_Query Generators, in this third part of the series we are introducing the WP_Tax_Query Generator which allows you to filter queries by taxonomies.

Retrieving Results Filtered by WP_Tax_Query – GenerateWP

Development | GenerateWP.com | 20 days ago

In this third part of our series, after presenting the WP_Meta_Query and the WP_Date_Query Generators, we are introducing the WP_Tax_Query Generator which allows you to filter queries by taxonomies. Filtering by Taxonomies
Retrieving filtered data with WP_Query and other supported query classes is a no brainier. But for advanced filtering we may need to retrieve data assigned to a specific multiple categories, tags or any other taxonomy terms.
WordPress stores taxonomy-related data in separate database tables. wp_terms holds the term data. wp_term_relationships stores the relationships between terms (category, tag, custom) and an object (mostly posts but can be used for other objects in WordPress – like Users or Comments). wp_term_taxonomy describes the taxonomy (category, link or tag) for the entries in the wp_terms table.
To retrieve data from those tables it translates query data and conditions to SQL. But you shouldn’t write your own SQL – it’s a bad practice! WordPress will do it for you, in a secure way, with caching and other mechanisms that ensure maximum performance and utilization.
The WP_Query class retrieves taxonomy-related data using the tax_query

8 min read David Bisset
Development | wordpress.org | Dec. 6, 2016

WordPress 4.7 “Vaughan” Is Released!

It's here! Version 4.7 of WordPress, named “Vaughan” in honor of legendary jazz vocalist Sarah “Sassy” Vaughan.

WordPress 4.7 “Vaughan” Is Released!

Development | wordpress.org | Dec. 6, 2016

Version 4.7 of WordPress, named “Vaughan” in honor of legendary jazz vocalist Sarah “Sassy” Vaughan, is available for download or update in your WordPress dashboard. New features in 4.7 help you get your site set up the way you want it. Introducing WordPress 4.7Get Link to Video
Share
Play Video
Presenting Twenty Seventeen
A brand new default theme brings your site to life with immersive featured images and video headers.
Twenty Seventeen focuses on business sites and features a customizable front page with multiple sections. Personalize it with widgets, navigation, social menus, a logo, custom colors, and more. Our default theme for 2017 works great in many languages, on any device, and for a wide range of users.
Your Site, Your Way
WordPress 4.7 adds new features to the customizer to help take you through the initial setup of a theme, with non-destructive live previews of all your changes in one uninterrupted workflow.
Theme Starter Content
https://wordpress.org/news/files/2016/12/starter-content.mp4
To help give you a solid base to build from, individual themes can provide starter content that appears when you go to customize your brand new site. This can

Development | make.wordpress.org | Dec. 6, 2016

WordPress 4.7 Field Guide for Developers

A collection of useful links to all the things shipping with WordPress 4.7. A must-read for all WordPress developers.

WordPress 4.7 Field Guide for Developers

Development | make.wordpress.org | Dec. 6, 2016

WordPress 4.7 is shaping up to be the best WordPress yet! Users will receive new and refined features that make it easier to “Make your site, YOUR site”, and developers will be able to take advantage of 173 enhancements and feature requests added. Let’s look at the many improvements coming in 4.7… RESTing, RESTing: 1, 2, 3
The foundation for RESTful APIs has been in core since 4.4, and 4.7 sees the addition of Content Endpoints after a healthy discussion. We’ve defined four success metrics as part of the merge discussion and you can help by building themes and plugins on top of the API, using the API in custom development projects, and utilizing the API for a feature project, core features, or patches. So, dive in, start playing around, and let us know what you build!
Hi everyone, it’s your friendly REST API team here with our second merge proposal for WordPress core. (WordPress 4.4 included the REST API Infrastructure, if you’d like to check out our previous merge proposal.) Even if you’re familiar with the REST API right now, we’ve made some changes to how the project is organised, so … Continue reading
It don’t mean

4 min read Shawn Hooper
Development | shawnhooper.ca | 13 days ago

WordPress 4.7's do_shortcode_tag filter

I stumbled on a filter introduced in WordPress 4.7 that allows you to modify the output of a shortcode.

WordPress 4.7's do_shortcode_tag filter

Development | shawnhooper.ca | 13 days ago

For the last few months I’ve been using a modified version of “Better Click to Tweet“, a WordPress plugin by The WP Steward. It implements a simple shortcode that enables “Click to Tweet” functionality on a piece of text in your page or post. The problem was, I wanted to append content to the output of the shortcode each time it was used. I’d looked at the plugin source, and there were no filters that I could implement do this. So my solution was to modify the plugin’s source and use my forked version on my sites. Anyone who’s done this knows what’s coming next…. a new version of the plugin came out. Oh bother, now I need to download the new version and re-apply my changes.
TFW when you had to modify a plugin and now you need to redo your changes before upgrading…. without docs. Time to diff the original…
— Shawn Hooper (@ShawnHooper) January 11, 2017
This time around, I thought… “There has to be a better way!” and dug into WordPress’ core code. Lo and behold – WordPress 4.7 has a new filter that helps me do exactly what I needed to!
Enter: do_shortcode_tag
The new do_shortcode_tag

2 min read Iain Poulson

Local by Flywheel

Stop debugging local environments and spend more time launching WordPress sites.

Local by Flywheel

Here are a few (okay, many) of the reasons why Local is the best solution for local WordPress development! Isolated sites powered by Docker
Hot-swap between nginx or� Apache 2.4
Hot-swap between PHP versions
Change site URL by simply typing� in the new domain. Database will be safely updated
All files, databases, configs, and Local settings will be cloned
Site URL is automatically and safely changed
Available versions: 5.2.4, 5.2.17, �5.3.29, 5.6.20, 7.0.3, and more� coming soon
Xdebug included: One-click integration of Xdebug + PHPStorm (Included �Add-on)
Opcache included
Tunnel powered by ngrok
View your site on mobile devices, tablets, � and other computers around the world as � long as you have internet access
Test Stripe WebHooks, PayPal IPN, and �REST APIs
Support for both subdomain and �subdirectory installations
One-click to sync sub-domains to hosts file
Save any site as a blueprint to re-use later
All files, databases, config files, and Local settings will be restored
Export includes site files, databases, config� files, log files, and Local settings
Importing sites will restore all files, databases,� and configs automatically
Exclude files from your exports such as� archives,

5 min read Donna Cavalier
Development | tomjn.com | Dec. 6, 2016

Post Meta Abuse

Interesting article showing how post meta data can be disastrous for a site when queried, and that custom taxonomies is the easy answer to solving this problem.

Post Meta Abuse

Development | tomjn.com | Dec. 6, 2016

Post meta queries bring down databases, cripple traffic scaling, and dramatically inflate page load times. Thankfully there’s an almost trivial solution. Searching for Meta
The problem comes when you need to query for post meta. This is a data design failure. Examples include:
A meta key for posts that should appear on the homepage
Marking a post as belonging to another post to be shown in a list
Bundling posts together into threads
Setting a type, such as the type of fabric of a post of type t-shirt
Setting an items colour
These are all examples of post meta that we want to search for. We might want to show only the red items, or the t-shirts made of cotton. These sound reasonable, but the query to find those posts with that meta can have monstrous performance costs.
If post meta was built to be searched, we’d be using it to store categories and tags.
Isn’t this just good/bad practice pedantry?
No, sites have been brought down by this, and it’s the reason a number of popular plugins don’t scale to high traffic. Install Query Monitor on a slow site, and you’ll see these queries. Page builders and meta box frameworks are particularly prone to enabling

3 min read Ahmad Awais
Development | wp-cli.org | Nov. 29, 2016

WPCLI Version 1.0.0 released

This is huge! 5 years of effort, so many contributors and such an awesome tool for devs!

WPCLI Version 1.0.0 released

Development | wp-cli.org | Nov. 29, 2016

Woohoo! Over the course of 5+ years, hundreds of contributors have worked to bring you WP-CLI v1.0.0, which I’m proud to announce today.
This release represents a level of maturity few open source projects achieve. It also marks a moment of transition. The WP-CLI project will shift its focus to the WP-CLI package ecosystem, where it will enable innovation by building and encouraging new features as standalone packages. We hope this approach will promote faster iteration and more creativity, and more sustainably distribute the maintenance burden. As these community packages find success, we’ll bring their learnings back into WP-CLI, alongside bug fixes and minor enhancements.
Now that the issue backlog is down to zero, I’m personally looking forward to getting more ideas cooking for runcommand, my own WP-CLI innovation studio.
Headed to Philly this week? I’ll be at Post Status Publish and WCUS (although only until mid-afternoon Friday). Say hello - I’m @danielbachhuber on Twitter.
On with the show…
Introducing WP_CLI::runcommand()
WP_CLI::runcommand() (doc) is the new best way to run WP-CLI commands from within your WP-CLI command. It’s as though

4 min read David Bisset
Development | jeremyaboyd.com | Nov. 21, 2016

That Time I Brought Down Millions of WordPress Sites

We all make mistakes, and sometimes we need to hear about other's (larger potentially) mistakes to feel good.

That Time I Brought Down Millions of WordPress Sites

Development | jeremyaboyd.com | Nov. 21, 2016

I’m going to take you guys back to a time when I was doing some client work. I was at the time working on becoming a somebody in the WP Dev community. I attached myself to a really awesome designer George Wiscombe, and started working on a theme he designed called Handgloves. I began by widgetizing it (which was just starting to catch on — that probably dates me a little) then added a couple of built in social media hooks. I emailed him and told him I was working on it, and he released my changes, and because he is an AWESOME dude, gave me a byline on it.
We (Humankind) had a client that wanted a WordPress Multi-User (yep, before multi-site — dating myself yet again) installation for their interior design network, with an asset catalog that lived under the main root, but all the designers’ sites as sub-domains. We ran into a little problem, Handgloves used TimThumb, and TimThumb’s wordpress implementation at the time had a small problem. It was hard-coded to use only the local uploads folder by prepending the website URL to the uploads directory, then appending the image name.
I decided to do a quick fix for this, and post it up on my old personal blog.

12 min read Iain Poulson
Development | deliciousbrains.com | Nov. 29, 2016

On The Fly Image Processing Causes More Problems Than It Fixes

Images and media are a requirement for all WordPress powered sites, especially when creating themes and plugins. Implementing images correctly so your code is compatible with others isn’t too tricky, as long as we all play by the same rules. In this article, Ian McFarlan walks you through the benefits of following standards around images and the dangers of On The Fly (OTF) image processing libraries.

On The Fly Image Processing Causes More Problems Than It Fixes

Development | deliciousbrains.com | Nov. 29, 2016

Images are the bread and butter of the web. Without images and other media the web would be quite different and not nearly as enriching; they are like a rug that really ties the room together. However, there is a concerning trend in the WordPress community to use on the fly (OTF) image processing libraries. Avoidable compatibility issues arise when themes and plugins forego WordPress’ built-in image resizing functionality in favor of OTF processing libraries. In this article I’ll be going over the implications of OTF processing in WordPress, the benefits of following image standards, and how to get along with images (and subsequently other developers) in a WordPress environment.
What Is On The Fly Image Processing
Before we dive too deep, I should briefly explain what OTF image processing is, how to spot it, and where you can typically find it within WordPress projects. OTF image processing, also known as on-the-fly cropping, enables developers to reshape, crop, and filter images through the use of URL parameters (old school) or manipulation classes (more common approach nowadays). Using OTF processing enables the developer to define one-off, custom dimensions and manipulation