Password protected sites

时间:2014-12-04 作者:pawel7318

我正在为一些小学校做WP页面。我想给老师们一些特别的空间。我创建了一个受密码保护的页面,效果很好。我想创建更多,并使用第一个来呈现链接。我将主站点设置为其他站点的父站点。这对我来说很重要user should be asked for the password just once.

我面临的问题:

如果我用密码(即使是同一个)保护所有这些页面,那么每个页面上都会要求用户输入密码。

如果我只保护第一页,而不是所有其他页面sitemap.xml (“Google XML Sitemaps”插件)

我可以从网站地图中排除某些类别,但每个人都可以通过搜索栏搜索该类别(我也使用“将类别映射到页面”插件)

我考虑使用无权限的特殊用户,并将这些页面设置为“私有”而不是“密码保护”。我没有测试该用户是否可以打开这样的页面,但我必须在登录到该主页后以某种方式重定向用户(即使对于那些不太喜欢互联网的老师来说,也必须易于使用)

那里的所有信息都不是很机密,但我想至少确保它不会以某种方式出现在某个搜索引擎页面上。

我设置Disallowrobots.txt 对于那个区域,我在谷歌网站管理员工具面板上降级了它。与此同时,我从那里得到警告,在我的sitemap.xml.

提前感谢您的帮助。

2 个回复
最合适的回答,由SO网友:mahdionnet 整理而成

更简单的方法是调用一组用户teachers 只允许教师小组访问该页面。

有许多用于权限处理和用户分组的插件,所以您只需搜索WordPress插件库。举个例子:groups plugin

Another possible answer 可以是:multi page password protection (因为我想提到答案所有者,所以我将链接放在这里!)

SO网友:Robert hue

我认为更好的解决方案是创建一个自定义页面模板,仅向登录用户显示内容,并将该模板用于所有受密码保护的页面。

然后,您可以为教师/员工创建一个用户,以便他们可以登录并查看内容。这样,他们只需在网站上登录一次即可查看多个页面。即使他们每次访问都不需要再次登录。

这是我创建的一个示例模板。它将向登录用户播撒内容,并向访问者显示登录表单。

<?php
/**
 * Template Name: Password Protected Page
 */
get_header(); ?>
    <div id="content">
        <?php
            if ( is_user_logged_in() ) :

                while ( have_posts() ) : the_post();
                    get_template_part( \'content\', \'page\' );
                endwhile;

            else:

                $args = array(
                    \'echo\'           => true,
                    \'redirect\'       => site_url( $_SERVER[\'REQUEST_URI\'] ),
                    \'remember\'       => true,
                    \'value_remember\' => true
                );

                wp_login_form( $args );

            endif;
        ?>
    </div>
<?php get_footer();

结束