Make WordPress Core

Opened 9 years ago

Last modified 4 months ago

#39942 new defect (bug)

Restored Post may steal slug to published Post

Reported by: ziodave's profile ziodave Owned by:
Milestone: Future Release Priority: normal
Severity: normal Version:
Component: Posts, Post Types Keywords: needs-testing
Focuses: Cc:

Description

Steps to reproduce:

  1. Create a Post 1 with title "Post",
  2. Assign the slug 'post' to Post 1,
  3. Publish Post 1,
  4. Unpublish Post 1 by setting it as 'Draft', then Update,
  5. After Update, Trash Post 1,
  6. Repeat 1-5 for Post 2,
  7. Create a Post 3 with title "Post",
  8. Assign the slug 'post' to Post 3,
  9. Publish Post 3,
  10. Now restore Post 2,
  11. Open/Reload the edit screen for Post 3,
  12. It'll show 'post-2' as slug,
  13. Saving/Updating Post 3 will change the slug from 'post' to 'post-2'.

Probably the following functions participate in the issue:

  • wp_add_trashed_suffix_to_post_name_for_post, which is checking for
if ( '__trashed' === substr( $post->post_name, -9 ) ) {

while Post 2 has post__trashed-2 as post name

  • wp_unique_post_slug, which is not checking the uniqueness of the slug if the post is draft.

Change History (2)

This ticket was mentioned in Slack in #core by ziodave. View the logs.


9 years ago

#2 @SirLouen
4 months ago

  • Keywords needs-testing added
  • Milestone changed from Awaiting Review to Future Release
  • Version 4.7.2 deleted

Related #61996 #47552
I'm not sure if this (or the other) are duplicates #61996. Look very similar, need reproduction

Note: See TracTickets for help on using tickets.