Without digging into this thread, I do agree that there is a lack in the "privacy area" in WordPress. I mean, "password protected" is a joke. Or if you switch a published page into "Private" it is still visible in menues, even if if you cant access them. And so on.
WordPress development Should take a look at core functions as it is 2010s, instead of just updating "responsive nice icons" or "add image size Medium-Large" Wow! ...
A true HIDDEN "statement" would be nice. I do Wote YES in this suggestion, But how( in what case/ who and when) as Default statement?
There are SOM MANY scenarios! We (Intervik development) been working with this for YEARS! And once we found a "base" solution - a few ascenarios later - we need to re-think...
Like myself and Many comments here, is not thought through by architecture, only by needs.
Adding one "Hidden" solution as core, will propably needed to be unhooked by complex wordpress inviroment that actually not using Worpdress as a homepage or Blog.
A situation like commented below, can easy be (and should) accomplished by extensions or plugins:
...need to have 'hidden' pages that are accessible only by shared links.
Its just like CSS if you comapare "display - none" with "visibility - hidden". The latter, Something is still there, taking space (generated page) but Hidden on the homepage crosslink functionality.
Hidden, invisible or disguised as cloked?
But what if I deactivate a plugin, but wanna keep the installed pages and content for them, but wanna Hide them as long as the plugin is deactivated?
- Like Woocommerce "Cart" pages?
- Like WPML all translated dublications?
Do we wanna hide access to them or "hide" them?
Consider the WordPress default architecture of POST STATUS. Thats the easyest way to "HIDE" content, and "un-cloak" for some situations, like a role in the case below.
Many tasks in this topics, is already there:
The example below shows the many complex if or not / statement the status can provide.
function intervik_custom_hidden_status(){
if(current_user_can( 'update_core')) $p = true;
else $p = false;
register_post_status('archive', array(
'label' => _x( 'Hidden', 'post' ),
'public' => $p,
'exclude_from_search' => true,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'protected' => false,
// '_builtin' => true, /* internal use only. */
'label_count' => _n_noop( 'Hidden <span class="count">(%s)</span>', 'Hidden <span class="count">(%s)</span>' )
));
}
add_action( 'init', 'intervik_custom_hidden_status' );
Above is something that WordPress developers could consider as a good start of "HIDDEN" checkbox...
/ Just sharing a though around this "Hidden" topic