According to the Content Visibility page, Private posts are visible only to those with sufficient permission levels. WordPress doesn’t expose them to non-logged-in users at all, hence (presumably) the 404
.
If you want to display a limited preview to non-members, instead of setting the post to Private, you could try something like this:
add_filter( 'the_content', 'wpse101968_preview' );
function wpse101968_preview( $content ) {
if( is_single() ) {
if( ! is_user_logged_in() ) {
$content = get_the_excerpt();
}
}
return $content;
}
And then your non-logged-in visitors will see the post’s excerpt instead of the entire post. You can customize the excerpts, too, so that they see only what you want them to see.
References
Codex:
Related Posts:
- AJAX requests within templates
- How to use Class
in Java? - Get name of the current template file
- How do you find out which template page is serving the current page?
- How to change the default registration email ? (plugin and/or non-plugin)
- How do I get the size of an attachment file?
- Is there any way to use get_template_part() with folders?
- Adding Page Attributes Metabox and Page Templates to the Posts Edit Page?
- How can i change email template for new user
- Any advantage to using get_header() over include(‘header.php’)?
- Enable page templates. How?
- Is it possible to override the result of get_template_part()?
- Use [embed] filter in template files
- What’s the purpose of the paged.php file?
- How do you access the Product Short Description in a WooCommerce email template? [closed]
- Prevent comments_template() to load comments.php
- Is there a way to list all used/unused WP templates?
- Page editor missing Templates drop down
- Print WordPress template filename(s) for debugging
- How to force TinyMCE in WordPress to replace newlines with tags and not with
- How to find the posts page (home page) programatically
- WooCommerce: Change template for single product page
- View WordPress page template usage (or unused)
- How to edit contents of dynamic_sidebar()?
- How to check if a shortcode exists?
- Where is get_header(‘shop’) file in Woocommerce templates
- Custom templates folder
- What is the link to my default “archive” page?
- How to get slug of current category in taxonomy template?
- How to show a under construction page for a domain but still be able to work on index.php?
- Change the name of the ‘Default Template’
- Customizing get_the_excerpt() to specific length and “Read More” output.
- How to Rename a Template File?
- get page templates
- Echoing Elementor page content in template, but it doesn’t get styles and some widgets are missing
- Using WordPress templating for HTML emails
- Loading partial templates with AJAX/PJAX
- WP frontend output of custom textarea fields not respecting line breaks. In admin it’s OK
- How do you check if a WordPress template file exist?
- Load entire NextGEN gallery from single thumbnail?
- I put my blog on a subpage, how do I get page title?
- A special single page templates for posts under a category and all its child category
- Custom reset password template after forgot password request
- Outputting Canonical Resource URLs Across a Multisite Network?
- Gravity Forms Custom Templates [closed]
- Child Theme: how to override variables?
- How do I get the URL of a specific size featured image?
- Where to store some per-template preferences?
- add/apend templates ‘transparently’ via plugin to currently active theme or child theme?
- stop blog page from using index.php?
- How can I modify the default reset (lost) password email text?
- How to create tag.php
- Template files missing after moving site
- How do I override template-tags.php in twentyseventeen theme
- Get template part vs locate template function
- Programmatically change post templates?
- How to hide/redirect the author page
- Tools for Converting an Existing Website Design to a WordPress Template?
- Gutenberg & Pre-formatted Templates: Core Block Attributes
- Restrict a search to a custom post type
- Gutenberg Editor – Template Doesn’t Match Error
- author.php added to template not working on Nginx server
- Test if page is child and has children, if so echo child pages also on grandchild pages
- Need to give custom page template for each language in WPML
- roots child theme can’t override header.php
- How did you incorporate WooCommerce in your own WordPress theme?
- Correct process for a new Page Template?
- Templates & CSS – Proper Programming Practice?
- How to assign a class to a page with a custom template?
- wordpress – load a template based on the URI
- When calling wp_title(), do you have to create some kind of “title.php” file?
- A shared custom taxonomy between two custom post types
- Creating a custom category page with pagination
- Create Page that uses specific template
- TwentyTen: Overloading template.php files vs. get_template_part
- Post formats template
- Sharing templates with the JSON API?
- How to include template according to meta post value
- New Template — copy existing template and change code? [duplicate]
- index.php template is used instead of blog page
- Using Includes in Templates in Document Head
- Proper Javascript Implementation
- How to show scaled featured image in template?
- Stream Video Player does not work with do_shortcode()?
- Same template for all the terms of a taxonomy
- Guest author’s post not display in author template
- Modifying searchform.php and search.php to have two kinds of searches
- Grid layout “last” class to every third item
- Where is the /blog/ url set from?
- Create a WordPress template without navigation and footer
- Load template inside a parent template
- Template redirect is_tax() not working
- Change site template from php
- Proper way to use get_the_content() in front-page.php and the content-home.php?
- How do you modify Page Template?
- Using “setup_postdata” with “get_template_part” does not work
- Hide Front-End Admin Bar Including 32 px Spacing
- NextGen Gallery template cache [closed]
- Passing variables to template parts
- How can I get the content of the home page?