【问题标题】:wordpress protected pageswordpress 保护页面
【发布时间】:2012-11-06 04:21:36
【问题描述】:

我想通过令牌访问受 WordPress 保护的页面。场景将是:我在 URL 中传递一个令牌,而不是检查请求的页面是否,如果是,则页面是否受保护,如果是,则检查 URL 是否具有令牌,是否检查令牌是否匹配或不是。

更新

我发现并在我的情况下有效的解决方法

    function check_token() {
        if (post_password_required() && (!empty($_GET['token'])) ){
            if($_GET['token'] == 'test'){
             global $post;
                $post->post_password=null;
            }
        }
    }

add_action('wp_head','check_token');

【问题讨论】:

    标签: php wordpress protected


    【解决方案1】:

    在页面模板的顶部,循环之前试试这个:

    if( get_query_var( 'token' ) == 'xyz' )
        query_posts( 'post_status' => array( 'publish', 'any' ) );
    

    我找不到与“受保护”相对应的状态的帖子 - 如何受保护?在列表中找到实际的帖子状态并将“任何”替换为:http://codex.wordpress.org/Class_Reference/WP_Query#Status_Parameters

    这里是如何注册“令牌”:

    add_filter( 'query_vars', function( $query_vars ) {
        $query_vars[] = 'token';
        return $query_vars;
    });
    

    【讨论】:

    • 感谢您的反馈。我认为这不起作用,因为页面保护包含 post 变量,据我所知,我应该首先注册 get 变量以使其在 wordpress 中工作,但也许我错了
    • 哦,是的!很好地抓住了这个错误。我更新了我的帖子。
    猜你喜欢
    • 2018-01-21
    • 1970-01-01
    • 2021-06-10
    • 2011-06-21
    • 2011-10-23
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多