This has been bugging me for a while so I sat down and after about an hour of looking around I found where it’s being called from. My solution assumes a bit of knowledge up front as it involves editing the database, either by hand or through phpmyadmin.
There is a table in the wordpress database that marries the post_id with the category_id, called wp_post2cat. This is where the change needs to be made.
First step is to generate a list of your categories and then match it against your page_id. Replace specific post information from my example with your own.
mysql> select * from wp_categories; (will generate the list)
mysql> select * from wp_post2cat where post_id = “1104”;
+——–+———+————-+
| rel_id | post_id | category_id |
+——–+———+————-+
| 147 | 1104 | 1 |
+——–+———+————-+
1 row in set (0.01 sec)
Now that you’ve made sure it’s there and what the id is:
mysql> UPDATE wp_post2cat
-> SET category_id = ‘5’
-> WHERE post_id = ‘1104’;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
And that’s it. You’ve just changed the category.