Shipping used to be a global list of methods each carrying its own availability rules, which meant every method had to know about every country. 2.6 inverted it:…
Every WP_Query runs a second query to count the total number of matching rows, so that pagination can be rendered. If the query is powering a sidebar widget…
A default wp-config.php leaves the file editor enabled, revisions unlimited and debugging output aimed at the browser. Four constants close most of that, and they belong in the…
get_posts() is a thin wrapper over WP_Query, so they are usually described as interchangeable. They are not: get_posts() defaults suppress_filters to true, which disables every posts_* filter for…
The two families are constantly swapped because both “clean up a string”. Sanitising decides what is allowed to be stored; escaping decides how it is rendered safely in…
add_image_size() registers a size that WordPress will generate at upload time. Adding one to a theme has no effect on the several thousand images already in the library,…
Five filters over 30,000 variations, and a request that never returns. Replacing EAV meta joins with a denormalised index table kept in sync by product hooks.
query_posts() replaces the main query after WordPress has already run it, which throws away the first result set, breaks pagination and leaves conditional tags lying about what page…