You could make your entire WordPress site private. If you run a WordPress.com site (not self-hosted as this site is) you can turn the entire site private by simply changing a single setting. In the WordPress Dashboard, choose Settings -> Privacy and turn on the “I would like my site to be private, visible only to users I choose”.
If you run a self-hosted site (as this one is) you can use a plugin to accomplish this. The plugin PageRestrict, for example, lets you prevent people for accessing specific pages (or your entire site) until they log in.
If you don’t want to do that because you really only want to make certain selected posts private and leave the rest as public. To make a post private, you have two options:
- Password Protected
- Private Posts
Each post is protected with a password. You need to enter the password to view the post, unless you are a logged-in Administrator or Editor. Password protection does not affect them. For an example of a password protected post on this site go here. The password is password.
Private posts are hidden from everyone except for logged in Administrators and Editors. Some of your posts are marked as Private. Now, only logged in Administrators and Editors will be able to view them and everyone else will have no clue that these private posts even exist. They will not appear in the post list, show up in searches, or appear when you browse by category, tag, date or author.
None of these options may be what you need. You may want to have a private portion to your site that only people who have paid money can get access to. You will need a plugin for this. One example is Paid Memberships Pro.
There are other plugins to choose from.