Redirecționarea wp-login.php către o altă pagină

7 ian. 2014, 12:54:25
Vizualizări: 19.9K
Voturi: 3

Aș dori să redirecționez această pagină wp-login.php către pagina /login. Astfel, când un utilizator face click pe un link de genul <a href="/wp-login.php">login</a>, WordPress îl va redirecționa către /register.

Am găsit această funcție și am modificat-o:

add_action('init','custom_login');

function custom_login(){
 global $pagenow;
 if (( 'wp-login.php' == $pagenow ) && (!is_user_logged_in())) {
  wp_redirect('/login');
  exit();
 }

Nu sunt foarte priceput la programarea în WordPress.

Redirecționarea funcționează bine, dar autentificarea pare să fie defectă. Când introduc datele de autentificare (login/parolă), aceeași pagină (/login) se reîncarcă fără a fi autentificat.

Aveți vreo sugestie pentru a repara funcția de redirecționare?

1
Comentarii

ce vrei este o pagină de login personalizată, poți găsi numeroase tutoriale despre cum să o faci, iar despre oprirea redirecționării paginii de login personalizate către wp-login.php, următorul Link te poate ajuta.

Maruti Mohanty Maruti Mohanty
7 ian. 2014 13:17:09
Toate răspunsurile la întrebare 4
0

Dacă vă preocupați doar de linkurile de autentificare afișate pe paginile dvs., ar trebui să puteți modifica URL-ul prin conectarea la filtrul login_url. Acest lucru nu va redirecționa un utilizator care introduce direct în browser http://SITULMEU/wp-login.php, dar ar trebui să afecteze linkurile de autentificare afișate pe întregul site.

Acesta este codul exemplu de pe pagina Codex login_url:

add_filter( 'login_url', 'my_login_page', 10, 2 );
function my_login_page( $login_url, $redirect ) {
  return home_url( '/pagina-mea-de-login/?redirect_to=' . $redirect );
}
28 ian. 2016 13:05:13
0

1. Modifică fișierul tău .htaccess – adaugă această linie după regula de rescriere index.php:

RewriteRule ^index\.php$ – [L]<br />
RewriteRule ^yoursecretpath$ wp-login.php [L,NC,QSA]

unde yoursecretpath reprezintă calea ta către panoul de administrare.

2. Modifică funcția login_header din fișierul wp-login.php – adaugă acest cod chiar înainte de linia 59 (unde începe tag-ul HTML doc type, pentru a preveni eroarea de trimitere a headerelor):

<?php $uri = $_SERVER['REQUEST_URI']; if(stripos($uri, ‘wp-login’) or stripos($uri, ‘wp-admin’) && !stripos($GLOBALS["HTTP_COOKIE"], ‘wordpress_logged_in’)) {  header("Location: ".get_site_url().'/yoursecretpath' ); exit(); } ?>
7 ian. 2014 15:39:58
0

De fapt, am deja un plugin open source care face deja acest lucru:

https://github.com/tripflex/wp-login-flow

A fost creat pentru a necesita ca utilizatorii să-și verifice emailurile, dar poți dezactiva această funcție și să folosești doar funcția de rescriere, care este funcțională în cea mai recentă versiune din depozitul WordPress (1.0.0).

Poți arunca o privire la cod pentru a vedea cum gestionăm rescrierile:

https://github.com/tripflex/wp-login-flow/blob/master/classes/rewrite.php#L312

De fapt, lucrez acum la acest plugin pentru a adăuga actualizări majore și patch-uri, dar pentru moment versiunea 1.0.0 funcționează perfect pentru rescrieri. Distracție plăcută :)

7 mai 2015 02:50:59
0
-2

Dacă veți crea o pagină personalizată de autentificare la adresa /login, atunci creați o rescriere:

function restrict_admin() {

    if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
                wp_redirect( site_url() );
    }
}
add_action( 'admin_init', 'restrict_admin', 1 );

Acest cod va verifica dacă utilizatorul este administrator și dacă nu este, WordPress îl va redirecționa înapoi la pagina principală a site-ului.

Creați de asemenea un șablon separat pentru autentificarea personalizată și utilizați funcțiile implicite de autentificare din WordPress în cadrul șablonului:

$args = array( 'redirect' => site_url( $_SERVER['REQUEST_URI'] ) );
wp_login_form( $args );

Puteți de asemenea schimba adresa de redirecționare pentru pagina de autentificare. Dar este util și să verificați erorile de autentificare și poate să adăugați cod pentru redirecționarea corectă după o încercare eșuată. Pentru aceste sarcini utilizați hook-urile wp_login_failed și authenticate.

7 ian. 2014 14:48:18