The problem is that changing the post visibility to private invokes a status change, in a way private is not only a visibility but also a publishing status. Or to quote the WordPress Codex, section »Content Visibility – Private Content«.
Once you change the visibility to private, the post or page status
changes to “Privately Published” as shown. Private posts are
automatically published (…).
To achieve what you want you probably have to work with the publish_post or even better the publish_future_post hook. Another possibility is to work with Post Status Transitions and the according hooks.
Related Posts:
- Let private posts stay in status “private” after edit through “editors”
- What differences are there between a Privately Published post and a Draft post?
- Private Posts/Pages & Search
- Are private posts visible to search engines?
- Whitelist Author of Private Post
- Show certain posts in a LIST format that members have been granted access to
- Post visibility based on user role
- Manage Private Posts
- How can I create an RSS feed that includes “Private” posts?
- Posts and Pages w. private visibility don’t show up in existing content
- How to set a Post’s default visibility to ‘Private’ in Gutenberg?
- Filtering private Posts
- How can I make my blog private? [closed]
- Making a private post visitable by link?
- Hide PUBLIC posts in the LOOP from LOGGED-IN users
- Get WordPress post content by post id
- Get page ID of page that is set as the posts page
- Get Posts Under Custom Taxonomy
- How to limit the number of posts that WP_Query gets?
- Stop WordPress Wrapping Images In A “P” Tag
- When is the ‘post_content_filtered’ column in database cleared by WordPress?
- Turn a URL into an Attachment / Post ID
- GET the excerpt by ID
- Stop WordPress automatically adding tags to post content
- Determine if page is the Posts Page
- How to get ‘post_content’ without stripping tags?
- How to add an admin notice upon post save/update
- Print Current Post Index number within Loop
- Should we trust the post globals?
- Optimize post insert and delete for bulk operations?
- Get the Current Page Number
- How do you add thumbnail support for custom post types?
- How to mark every 3rd post
- Change Posts per page count
- Keep featured content post in homepage with original order
- How to display related posts from same category?
- Can posts have parents?
- Is there a action hook for the “Empty Trash” button?
- How to end the excerpt with a sentence rather than a word?
- How do I check if I linked to a post before I delete it?
- How to change the case of all post titles to “Title Case”
- Appending content with broken in 4.4
- How to get posts published between a date and today?
- ZIP up all images displayed in a [gallery] and offer as download link
- How to detect single.php (but not single-portfolio.php)?
- How to check if post meta key exists or not in wordpress database
- How to remove a column from the Posts page
- removing inline styles from wp-caption div
- What is the use of to_ping and pinged column?
- How to use “Add link” pop up for a WordPress widget
- Remove Categories / Tags From Admin Menu
- How to retrieve text only from wp_content() not from wp_excerpt()?
- Stop WP from creating “Sample Page” and “Hello World!” post
- Where is the old post permalink slug stored?
- How to Create Editable Blocks of Text for the Homepage?
- Keyboard shortcut for updating a page or post?
- Add custom Attachment Display Setting for images
- Rewriting post slug before post save
- Apply the_title() filter in post & page title, but not in menu title
- How to Change Order of Posts in Admin?
- is it possible to get next_post_link
- Get post content by ID
- How to get post creation date?
- Update post counts (published, draft, unattached) in admin interface
- Function to execute when a post is moved to trash .
- How to get post ID of the current page/post inside a widget?
- add action only on post publish – not update
- How to display by default only published posts/pages in the admin area?
- How do you add Read more … link to posts?
- How to make comments work for a post loaded per Ajax?
- Is there an if statement that can determine if a post in the loop is the last post?
- Get current menu_order
- How to show related posts by category
- Changing the post date and time with function
- simply loop through posts
- Difference between an archive and a page listing posts
- Delete Associated Media Upon Page Deletion
- Set Default Listing “View” in Admin
- Access post from post id in URL
- Count posts within a custom post type and specific taxonomy and terms?
- How to add category to: ‘wp-admin/post-new.php’?
- Post preview mechanism architecture
- How to prevent posts from being published too close to each other?
- Passing current cookies in wp_remote_get to get Draft Post Preview
- How to hide specific Gutenberg blocks settings from users
- Post featured image column on admin post list page
- How to Display a List of Users Who Have Made at Least 1 Post?
- The next_posts_link() works only with original $wp_query
- display all posts in wordpress admin
- Front-End Post Submission
- Is there a way I can write a series in WordPress?
- Get content from one page and show it on another page
- Get Next / Prev 3 Posts in Relation to Current Post
- How to Check if a Page Exists by URL?
- Including categories in search results
- How To Disable (or Remove) “All Posts, Published, and Trash” in Dashboard Posts
- How to protect pages with double authentication: password + email (in custom field)
- How To Have Two Gutenberg Editors On One Post?
- How can I make it so the Add New Post page has Visibility set to Private by default?
- Use category base slug in posts’ permalink