A block showing the five most recent posts cannot store its output, because the output is different tomorrow. A render callback runs on every page load instead. The…
A block is stored in post_content as an HTML comment wrapping markup, and its attributes are JSON inside that comment — which is why the post is still…
Scripts for the editing screen do not go on admin_enqueue_scripts — there is a dedicated hook, and using the wrong one loads the editor bundle on every admin…
A plain SQL find-and-replace on a WordPress database corrupts every serialised array containing the string, because PHP serialisation records string lengths and the replacement changes them. –dry-run first…
Reaching for a GUI to answer one question about a database means finding credentials, a tunnel and a browser, when the site’s own configuration already has all of…
A custom post type registered without show_in_rest opens in the classic editor even on 5.0, silently, because the new editor has no way to load or save it.…
permission_callback was optional until recently and defaulting it to __return_true is the same as having no authorisation at all, which is how endpoints intended for the admin end…
The privacy tooling that arrived in core 4.9.6 and WooCommerce 3.4 covers the standard data, and everything a custom plugin stored is yours to declare. The pagination in…