I’m setting up the categories for my website and I have them like so:
That’s it, I have children of the same name but they are not interchangeable. If that bugs you just think that they have different names.
Then I go to a post and I want to add categories to it and now the tree is completely gone and the categories order is completely messed up:
Why is this happening? It’s not always like this, sometimes the tree shows up nicely but that behaviour is not consistent. I have seen this happening countless times on other blogs and so far I’ve just ignored this behaviour because I (or the web admin) could identify which category is child of which parent but this is not the case because some names are repeating. Anyway even if my categories may not be the best practise, maybe for the end user is not transparent that one category is child of another one if the tree is broken like that, right?
EDIT: This is only happening when editing a post, when I add a new one everything is fine and dandy:
Category-list uses the function wp_terms_checklist() in wp-admin/includes/template.php on row 90. The parameter “checked_ontop” is set to true. So the checked checkboxes will be on top.
This is only happening when editing a post, when I add a new one everything is fine and dandy
Thats because when you create a post, none of the categories are checked and the list will be intact, but when you saves one it will appear on the top because of the “checked_ontop is set to true”.
You can prevent this by changing the parameter checked_ontop to false by adding this to your theme function.php.
Or just install my simple plugin on this code: https://github.com/pontusab/WordPress-Category-List
The result:
I see that you have selected all the parent categories for your post. When you add a new post, the order is well maintained. But when you edit such a post, the categories associated with the post stack at the top while rest of the categories appear at the bottom. In case you have selected the parent categories, their association with the child categories get lost and that’s why they don’t appear properly. This behavior is by design only.