Как я могу изменить ссылку на страницу входа в Wordpress по умолчанию для кнопки? - PullRequest
1 голос
/ 02 ноября 2019

Я использую тему OceanWP с плагином WP Job Manager для создания своего веб-сайта со списком вакансий.

Когда пользователь пытается «Опубликовать работу», когда он не зарегистрирован в плагине WP Job Manager, отображаетсякнопка входа в систему по умолчанию, которая направляет их на страницу wp-login.php по умолчанию: http://prntscr.com/pr86qn

Но я хотел, чтобы пользователь был перенаправлен на новую пользовательскую страницу входа / регистрации, которую я создал, поскольку на ней нетЛоготип Wordpress на нем, а также позволяет пользователям регистрироваться, если у них нет учетной записи.

Когда я нажал опцию «осмотреть элемент» на этой кнопке «Войти», я увидел ссылку здесь:http://prntscr.com/pr8951

Таким образом, я хотел бы изменить ссылку:

<a class="button" href="https://www.XXXXXXXXXX.co.uk/wp-login.php?redirect_to=https%3A%2F%2Fwww.XXXXXXXXXX.co.uk%2Fpost-a-job%2F">Sign in</a>

(у меня есть имя XX на моем сайте, так как я бы предпочел, чтобы оно непоказать в любых результатах поиска Google)

... чтобы он вместо этого перенаправлял пользователя на мою новую пользовательскую страницу входа / регистрации.

Может кто-нибудь посоветовать, из какого файла я могу изменить эту ссылку? или если есть лучший способ изменить тего ссылка?

спасибо

Ответы [ 3 ]

1 голос
/ 02 ноября 2019

Этот фрагмент перенаправит все ссылки для входа на указанную страницу (просто замените / login-page / в строке 3 фрагментом вашей пользовательской страницы входа):

add_filter( 'login_url', 'my_login_page', 10, 2 );
function my_login_page( $login_url, $redirect ) {
    return home_url( '/login-page/?redirect_to=' . $redirect );
}

Исправьте проблему с перенаправлением

/** Log in redirect to previous page by logicdigger **/
// start global session for saving the referer url
function start_session() {
    if(!session_id()) {
        session_start();
    }
}
add_action('init', 'start_session', 1);

// get the referer url and save it to the session
function redirect_url() {
    if (! is_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } else {
        session_destroy();
    }
}
add_action( 'template_redirect', 'redirect_url' );

//login redirect to referer url
function login_redirect() {
    if (isset($_SESSION['referer_url'])) {
        wp_redirect($_SESSION['referer_url']);
    } else {
        wp_redirect(home_url());
    }
}
add_filter('woocommerce_login_redirect', 'login_redirect', 1100, 2);
0 голосов
/ 02 ноября 2019

Я думаю, вам нужна более продвинутая функция, упомянутая ранее здесь

Добавьте это в свой файл функций.

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');

Пожалуйста, пройдите по FTP

0 голосов
/ 02 ноября 2019

Попробуйте Плагин LoginPress , чтобы настроить страницу входа по умолчанию https://wordpress.org/plugins/loginpress/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...