Ja korzystam z pewnej skompletowanej funkcji
plik functions.php
function baw_no_admin_access()
{
if( !current_user_can( 'edit_posts' ) ) {
wp_redirect( home_url() );
die();
}
}
add_action( 'admin_init', 'baw_no_admin_access', 1 );
function login_failed() {
$login_page = home_url( '/archiwum-plikow/' );
wp_redirect( $login_page . '?login=failed' );
exit;
}
add_action( 'wp_login_failed', 'login_failed' );
function verify_username_password( $user, $username, $password ) {
$login_page = home_url( '/archiwum-plikow/' );
if( $username == "" || $password == "" ) {
wp_redirect( $login_page . "?login=empty" );
exit;
}
}
add_filter( 'authenticate', 'verify_username_password', 1, 3);
function logout_page() {
$login_page = home_url( '/archiwum-plikow/' );
wp_redirect( $login_page . "?login=false" );
exit;
}
add_action('wp_logout','logout_page');
kod z formularzem logowania
<div class="panellogowania">
<div class="formularzlogowania">
<div class="zamknijform"></div>
<h3>Logowanie dla słuchaczy</h3>
<p>Zaloguj się aby uzyskać dostęp do archiwum dokumentów.</p>
<?php
$args = array(
'redirect' => home_url( '/archiwum-plikow/' ),
'form_id' => 'loginform',
'id_username' => 'user',
'id_password' => 'pass',
'label_username' => __( 'Username' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'label_log_in' => __( 'Log In' ),
)
;?>
<?php wp_login_form( $args ); ?>
</div>
</div>
page-archiwum-plikow.php
<?php $login = (isset($_GET['login']) ) ? $_GET['login'] : 0; ?>
<?php if ( $login === "failed" ) {
echo '<p class="login-msg"><strong>BŁĄD:</strong> Błędne dane logowania.</p>';
} elseif ( $login === "empty" ) {
echo '<p class="login-msg"><strong>BŁĄD:</strong> Nie wszystkie pola logowania zostały wypełnione.</p>';
} elseif ( $login === "false" ) {
echo '<p class="login-msg">Wylogowano.</p>';
} ?>
<?php the_content(); ?>
<?php if( current_user_can('administrator') || current_user_can('editor') ) { ?>
twoje treści
<?php } ?>
za pomocą wtyczki user role editor tworzysz sobie nowe grupy użtkowników i im blokujesz dostęp, tylko admin ma możliwość wejścia do panelu
aha i jeszcze rename-wp-login aby zmienić adres strony logowania z wp-admin na jakiś inny np twojastrona.pl/paneladmina