I said above that what I experienced was obviously a javascript failure. That’s ultimately what it was related to, in a roundabout manner, and I feel it’s obvious when the page loads looks beautiful but the javascript-reliant links & features don’t do anything.
So if you can load the widgets page and see everything with no errors, but the javascript isn’t kicking in (no dragging, dropping, or response to clicking on widgets) that would be the first thing to check.
Apparently some people are experiencing a similar, but not identical problem with the Thesis theme — and that there’s a new version. So if you’re on Thesis do take a look at that.
You can test out the javascript relationship by disabling javascript in your browser — I used Firefox’s web developer plugin to check that and, sure enough, I got a non-javascript-compatible version of the widgets admin that worked just fine.
As I mentioned above, I was also able to see with Firebug’s net console that load-scripts.php wasn’t getting included…but since it appeared to be in the right place, I next thought that perhaps the automatic update I did had misplaced or failed to add some new scripts. I didn’t see some of the scripts in /wp-admin/js, so that seemed plausible.
But I took a look at load-scripts.php and at least some of the scripts specified to load are in /wp-includes/js — that’s where the jquery is, anyway. It looked like all files were accounted for, but I also determined that load-scripts.php doesn’t use PHP to return a 404 if it fails to find a script file (well, or not that I saw).
Those possibilities investigated, I figured the 404 had to be an override on the server level, so I took a look at my .htaccess file.
My mystery is solved, because in my case load-scripts.php was failing because of a mod_rewrite rule from Perishable Press’s 4G blacklist. Specifically:
RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare|drop).* [NC]
As you can see, jquery-ui-droppable, has “drop” in it, so the rewrite rule kicks in and the load-scripts.php can’t load. So if anyone else is using the Perishable Press blacklist, take a look at that condition. I just took out “drop” for the moment, but another way to do it is to have the expression check for a space after the words.
There are a bunch of other reasons the javascript might not be kicking in, though. And it’s certainly possible it’s related to a plugin or theme — but I wouldn’t make any extreme attempts to monkey with innocent plugins until you ascertain that the required scripts are actually being loaded.
Try going directly to https://www.example.com/wp-admin/load-scripts.php?c=1&load=hoverIntent,common,jquery-color,jquery-ui-core,jquery-ui-sortable,postbox,jquery-ui-draggable,jquery-ui-droppable,admin-widgets&ver=82de755528af303bcbf947f7ca91f741 (replace with your URL) and make sure it has the jQuery core and UI files in it. Since it’s combined & compressed you can’t actually use it as a checklist for each of the files listed, but there are comments and it will at least serve as a simple indicator.
I hope it works out!