# 不使用插件，实现wordpress登录才能查看网站内容

- 原文链接：https://www.xintheme.com/wpjiaocheng/1849.html
- 发布日期：2018-06-22
- 更新时间：2026-08-22
- 作者：大胡子 | XinTheme
- 分类目录：WordPress教程
- 标签：WordPress企业主题、WordPress教程、WordPress登录后可见

## 摘要

WordPress登录才能查看网站内容，未登录就跳转到登录页面。有这样需求的人还不少，一般都是用在WordPress博客主题，有的可能是资料类什么的，有的人就是...

## 正文

[WordPress](https://www.xintheme.com)登录才能查看网站内容，未登录就跳转到登录页面。有这样需求的人还不少，一般都是用在[WordPress博客主题](https://www.xintheme.com)，有的可能是资料类什么的，有的人就是用来搞擦边球，对于[WordPress企业主题](https://www.xintheme.com)的用户基本上是没有什么需求的。

实现代码很简单，找一个全站一定会执行的钩子即可，这里我们就选了一个template\_redirect钩子，这个动作钩子在加载模板时执行，当然其它很多都可以用。

\[php\]//template\_redirect动作钩子是一定会执行的，所以用这个钩子对全站有效  
add\_action( 'template\_redirect', 'ashuwp\_show\_only\_login', 0 );  
function ashuwp\_show\_only\_login(){  
//判断登录  
if( !is\_user\_logged\_in() ){  
auth\_redirect(); //跳转到登录页面  
exit();  
}  
}\[/php\]

更复杂的需求，有人需要整站再留一两个页面，比如留个“公告说明”页面提供访问，那在判断登录的代码里面增加一个页面判断即可，范例：

\[php\]//template\_redirect动作钩子是一定会执行的，所以用这个钩子对全站有效  
add\_action( 'template\_redirect', 'ashuwp\_show\_only\_login', 0 );  
function ashuwp\_show\_only\_login(){  
//判断登录，about页面就允许访问  
if( !is\_page('about') &amp;&amp; !is\_user\_logged\_in() ){  
auth\_redirect(); //跳转到登录页面  
exit();  
}  
}\[/php\]