admin管理员组

文章数量:1279115

I'm working on a website that is still being built; however, the client would like to launch a landing page while it is being finished. What is the easiest way to make it so all the pages of the site are hidden from view except for the landing page to non-logged in users? (For logged-in users I'd like it to function normally so I can finish building the site.) I'd like the hidden pages to show a simple message or 404 in case someone happens to navigate to one, but nothing else (not the header, footer or menu). I figured there'd be a plugin for this, but alas, that doesn't seem to be the case. Any help is appreciated!

I'm working on a website that is still being built; however, the client would like to launch a landing page while it is being finished. What is the easiest way to make it so all the pages of the site are hidden from view except for the landing page to non-logged in users? (For logged-in users I'd like it to function normally so I can finish building the site.) I'd like the hidden pages to show a simple message or 404 in case someone happens to navigate to one, but nothing else (not the header, footer or menu). I figured there'd be a plugin for this, but alas, that doesn't seem to be the case. Any help is appreciated!

Share Improve this question asked Oct 6, 2021 at 5:35 Psychedelic WizardPsychedelic Wizard 113 bronze badges 2
  • 1 What I usually do in cases like this is add a condition in header.php that checks for logged in users, if user is not logged in I do get_template_part('some-template') then die;, in the template I create all my code, usually hard coded without wp_head() and wp_footer() (because this template doesn't contain much code and don't need to load WP resources). – Buttered_Toast Commented Oct 6, 2021 at 6:13
  • 1 lookup a "coming soon" plugin. You're missing an opportunity for SEO building if you're not redirecting correctly – rudtek Commented Oct 6, 2021 at 15:17
Add a comment  | 

1 Answer 1

Reset to default 1

I'd go with a similar approach as @Buttered_Toast:

  • Create a template for a specific page (see template hierarchy, especially single page) and set this one as the home page. This then is your "landing page". Do not forget to remove all references to wp_head, wp_footer, etc.
  • Add a condition into the header for all other pages/posts that checks for is_user_logged_in() and do a wp_redirect() to the home page, if the user is not logged in. This is a nicer solution than a message or a 404, IMHO.

This way you can easily continue working, but the landing page will be there.


Sidenote: I would NOT recommend to develop on a site that is publicly available. All your debug messages will be exposed. Create a development environment (if nothing else, take a subfolder and lock it with htpasswd), develop there, and if you are ready, migrate everything to the production system.

本文标签: user accessHide all pages except landing page