不需要任何插件就可以很容易地做到这一点。如果您只需要使用自己创建的帐户访问单个页面,请尝试使用以下内容创建页面模板。注意:您应该创建任何新帐户作为subscriber
.
<?php
/*
Template Name: Private Page
*/
get_header();
?>
<?php
if( current_user_can(\'subscriber\') { ?>
// stuff here
<?php } else {
echo do_shortcode(\'[frontend-login-form]\');
} ?>
<?php get_footer(); ?>
在上面的示例中,我们有一个短代码,它来自下面的代码,您应该将其添加到
functions.php
文件
function frontend_user_manager_init() {
add_shortcode( \'frontend-login-form\', \'frontend_login_form\' );
}
add_action(\'init\', \'frontend_user_manager_init\');
/**
* Print a login form or current user login
*
* @param array $atts An array of arguments
* @return string The form mark-up or the current user login
*/
function frontend_login_form( $atts ){
if( ! is_user_logged_in() ){
$args = array(
\'echo\' => false,
\'remember\' => true,
\'redirect\' => get_permalink(),
\'form_id\' => \'loginform\',
\'id_username\' => \'user_login\',
\'id_password\' => \'user_pass\',
\'id_remember\' => \'rememberme\',
\'id_submit\' => \'wp-submit\',
\'label_username\' => __( \'Username\' ),
\'label_password\' => __( \'Password\' ),
\'label_remember\' => __( \'Remember Me\' ),
\'label_log_in\' => __( \'Log In\' ),
\'value_username\' => \'\',
\'value_remember\' => false
);
$output = wp_login_form( $args );
}else{
$current_user = wp_get_current_user();
$output = \'<p>\' . sprintf( __( \'Howdy %s\' ), $current_user->user_login ) . \'</p>\';
$output .= \'<p>\' . wp_loginout( get_permalink(), false ) . \'</p>\';
}
return $output;
}
// Process shortcodes in text widgets
add_filter(\'widget_text\', \'do_shortcode\');
订阅者角色的访问权限非常有限,即仅允许用户维护其配置文件,但是如果您不想允许,请尝试将以下代码添加到您的
functions.php
文件
add_action( \'init\', \'blockusers_init\' );
function blockusers_init() {
if ( is_admin() && ! current_user_can( \'administrator\' ) && ! ( defined( \'DOING_AJAX\' ) && DOING_AJAX ) ) {
wp_redirect( home_url() );
exit;
}
}