You can make a WordPress page only viewable when a user is logged in by installing the WordPress plugin Simple Access Control (Plugin website pr3).
What I like about 'Simple Access Control' is that it's simple and efficient.
You can add code or text that is displayed on the page if the visitor isn't logged in by:
- Click on 'Settings'.
- Click on 'Simple Access Control'.
- Enter text and markup into the field. If you include the word 'login', the 'Simple Access Control' plugin will automatically detect it and turn it into a link to the login page.
Note: This special generated login link will redirect users to the page they were attempting to view before they were forced to login. - Click the 'Save changes' button.
To specify what pages or posts require a login:
- Click on 'Pages' or 'Posts'.
- Click the page you want to force login for.
- Specify settings under the 'Simple Access Control' section.
- Click the 'Update' button.