考虑一个特定的模板来测试用户是否使用以下内容登录,怎么样
if ( is_user_logged_in() ) {
// your code for logged in user
} else {
// your code for logged out user (e.g. a "you must be logged in" message)
}
您甚至可以添加一个自定义字段,用于指示相关页面对登录用户是私有的,然后在您的页面中添加。php模板在确定要使用哪个页面模板之前,先测试该字段值的存在性。。。。我对需要用户登录的页面做了类似的操作,效果很好。
这也消除了您为任何人提供查看页面的密码的需要-他们只需使用自己的凭据登录即可。
更新:我想我应该扩展我的答案,以帮助那些可能不熟悉如何使用自定义字段和模板限制内容的人,所以我要做的是:
我使用了令人惊叹的“高级自定义字段”插件(pro版本值得花费,但免费插件可以很好地实现这一目的)。https://wordpress.org/plugins/advanced-custom-fields/
在ACF插件的设置中,我创建了一个自定义字段,该字段是一个标记为“受限”的复选框并将其应用于所有页面。因此,当我创建或编辑任何页面时,如果我想将其限制为登录用户,我可以选中该框
我修改了我的股票页面。我的主题附带的php模板文件,用于检查此字段(它是否包含值,例如是否选中),如果答案是“是”,则我调用内容页受限模板,如果答案是“否”,则使用普通内容页模板-以下是我的代码:
<?php if ( have_posts() ) :
while ( have_posts() ) : the_post();
$restrict = get_field(\'restricted\');
if($restrict) {
get_template_part( \'content\', \'page-restricted\' );
} else {
get_template_part( \'content\', \'page\' );
}
endwhile; endif; ?>
我复制了内容页。php模板到一个名为content page restricted的新模板。php,然后我对其进行了修改,添加了一个检查,以查看用户是否已登录,如果未登录,我会显示一条登录消息,并提供一个指向我们注册页面的链接,如果他们已登录,则可以查看内容。以下是我的代码:
<?php if ( !is_user_logged_in() ) {
echo\'<div id="signupMssg">Please <a class="fancybox-inline" href="#fancyboxID-2">Login</a> or <a href="../Signup">Sign Up</a>\';
echo \'<div style="display:none;"><div id="fancyboxID-2">\';
echo do_shortcode(\'[displayLogin]\');
echo \'</div></div></div>\';
} else if ( is_user_logged_in() ) {
// Follow the normal Page stuff here
?>
fancybox的东西就在那里,因为如果他们点击“登录”这个词,我会在弹出的覆盖图中显示登录表单。
我希望这能有所帮助,我发现这是一种限制内容的简单方法,比使用需要公共密码的“私人”页面效果更好。。。。