2

我想通过令牌访问受 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');
4

1 回答 1

0

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

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;
});
于 2012-11-17T19:31:53.673 回答