首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除了两个页面之外,限制访问我的网站的最佳实践是什么

除了两个页面之外,限制访问我的网站的最佳实践是什么
EN

Stack Overflow用户
提问于 2020-05-27 19:49:06
回答 1查看 42关注 0票数 0

我正在用Bedrock/Timber/ACF在Wordpress上建立一个网站。这个网站在很大程度上受到了限制。

有4-5个页面可供匿名用户使用(主页、联系人、登录和法律/隐私策略页面)。

我目前使用木材路由来管理它,如下所示:

代码语言:javascript
复制
Routes::map('/blog/page/:num/', function ($params) {
    if (!is_user_logged_in()) {
        wp_redirect(home_url().'/login');
        exit();
    }
    $user = wp_get_current_user();
    if ($user->roles[0]=="subscriber") {
        $post_type="publish";
    } else {
        $post_type="any";
    }
    $query = 'order=ASC&orderby=title&paged='.$params['num'].'&post_status='.$post_type;
    Routes::load('list-blog.php', $params, $query, 200);
});

然而,我不知道这是否是一个好方法,因为我不能使用wordpress模板层次结构,在管理员端,每次我想要创建一个新页面时,我必须创建道路……

所以我的解决方案不灵活,也很难维护。

你有什么建议吗?

编辑:我几乎通过使用wordpress模板层次结构删除了我所有的路线。但是我仍然有指向登录页面的路由链接,因为我不想要mysite.com/wp/login,而是mysite.com/login。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-20 04:08:08

我将使用array_key_exists而不是检查第一个变量,因为存在订阅者角色是第二个的情况。

如果您正在使用ACF,您可以尝试在页面中添加一个复选框字段,并查询该字段的变量。

https://www.advancedcustomfields.com/resources/query-posts-custom-fields/

代码语言:javascript
复制
Routes::map('/blog/page/:num/', function ($params) {

    if (!is_user_logged_in()) {
        wp_redirect(home_url().'/login');
        exit();
    }

    $user = wp_get_current_user();  
    $post_type = array_key_exists("subscriber", $user->roles) ? "publish" : "any";

    $query = 'order=ASC&orderby=title&paged='.$params['num'].'&post_status='.$post_type;
    Routes::load('list-blog.php', $params, $query, 200);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62042416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档