Перенаправление страницы входа / регистрации WordPress на пользовательскую страницу входа / регистрации

У меня есть веб-сайт с пользовательской системой. Я хочу интегрировать систему пользователя WordPress в этот веб-сайт, но я все же хочу использовать страницы регистрации / входа в веб-сайт. Я не хочу, чтобы кто-либо мог войти в систему или зарегистрироваться с помощью регистрационных форм WordPress. Вместо этого, когда они пытаются получить доступ к страницам входа / регистрации в WordPress, я хочу, чтобы эти страницы перенаправляли их на мои собственные страницы входа / регистрации.

Есть ли способ сделать это? Я пробовал Google, но все, что я мог найти, это перенаправление ПОСЛЕ того, как пользователь входит в систему или регистрируется, чего я не хочу.

Заранее спасибо.

Solutions Collecting From Web of "Перенаправление страницы входа / регистрации WordPress на пользовательскую страницу входа / регистрации"

add_action('init','possibly_redirect'); function possibly_redirect(){ global $pagenow; if( 'wp-login.php' == $pagenow ) { wp_redirect('http://google.com/'); exit(); } } 

Чтобы ограничить прямой доступ только для «wp-login.php», без запроса POST или GET (полезно для пользовательских форм пользовательской формы ajax), я использую расширенную функцию:

 function possibly_redirect(){ global $pagenow; if( 'wp-login.php' == $pagenow ) { if ( isset( $_POST['wp-submit'] ) || // in case of LOGIN ( isset($_GET['action']) && $_GET['action']=='logout') || // in case of LOGOUT ( isset($_GET['checkemail']) && $_GET['checkemail']=='confirm') || // in case of LOST PASSWORD ( isset($_GET['checkemail']) && $_GET['checkemail']=='registered') ) return; // in case of REGISTER else wp_redirect( home_url() ); // or wp_redirect(home_url('/login')); exit(); } } add_action('init','possibly_redirect'); 

Если вы используете пользовательскую страницу входа, но все еще используете wp_login_form (), имейте в виду, что форма будет POST для wp-login.php, поэтому вам нужно будет проверить, пуст ли $ _POST до перенаправления.

 function prefix_wp_login_redirect() { global $pagenow; if( $pagenow == 'wp-login.php' && empty($_POST)) { auth_redirect(); exit(); } } 

Возможно, вы сможете защелкнуться на крюке login_head и выпустить там перенаправление.

Правильный крюк действия – login_init который запускается только на wp-login.php .

Здесь нет запроса ?action=action-name , поэтому это главная страница входа:

 add_action('login_init', function(){ if( !isset( $_GET['action'] ) ) { wp_redirect( 'http://example.com' ); } }); 

Для всех запросов мы можем использовать определенный крючок login_form_ACTION-NAME , т. postpass , logout , lostpassword , retrievepassword , resetpass , register и login . Пример:

 add_action('login_form_register', function(){ wp_redirect( site_url('custom-registration/') ); });