wp menu item add-custom|add-post|add-term Doesn't Calculate menu_order
$ wp menu item add … takes the --position argument literally and inserts it into the database exactly as specified. This is a problem when you are trying to insert one menu item between two others.
For example, on a site that already has a handful of menu links (one of which is in position 3), let's add an item like so:
$ wp menu item add-post example-menu 123 --position=3
In the wp_posts table, the two menu links will have the same menu_order value. This creates mixed results on the frontend of WordPress.
Now, if I go to the menu manager in WordPress and click Save Menu, WordPress recalculates and updates the duplicate menu_order values.
Can WP-CLI do what WordPress is doing here?
Yup, I experience this too... After using --position option, my db results also show duplicated menu_order values.
wp_posts table:
menu_order
-----------
1
2
3 <- duplicate
3 <- duplicate
4
5
6
Here's a screenshot to show wp_posts table when filtering by nav_menu_item
Hi there @schlessera
I'm new to github (and your project). Can I ask you to review this commit: https://github.com/petruchek/entity-command/commit/03110087f70a1e153b594333ef0274a91b4ea7cc
My questions are:
- Does this approach look like the proper way to fix this bug?
- If yes, what tests do you suggest I add before sending a PR?
N.B. I'm also changing menu orders when delete command is called.
Here's the branch: https://github.com/petruchek/entity-command/tree/wp-cli-issue-5047 since I'm adding to it
Hi there, please have a look at the following PR: https://github.com/wp-cli/entity-command/pull/275 and let me know what's missing.