приведу код шоркода
<?php
add_shortcode('logining', 'logining_func');
function logining_func ( $attr, $shortcode_content = null )
{
$args = array(
'echo' => false,
'redirect' => site_url( $_SERVER['REQUEST_URI'] ),
'form_id' => 'logining',
'label_username' => __( 'Имя пользователя' ),
'label_password' => __( 'Пароль' ),
'label_remember' => __( 'Запомнить меня' ),
'label_log_in' => __( 'Войти' ),
'id_username' => 'user_logining',
'id_password' => 'user_pass_logining',
'id_remember' => 'rememberme_logining',
'id_submit' => 'wp-submit_logining',
'remember' => true,
'value_username' => NULL,
'value_remember' => true );
return wp_login_form($args);
}
?>
Получается что хоть форма подгрузилась, но не подгрузились какие-то скрипты, и нажатие на кнопку войти не срабатывает правильно
У вас вместо стандартной формы wp-login.php
открывается HTML-заглушка, которая сразу же перенаправляет на форму:
<html>
<head>
<!-- без тайтла, чтобы в истории FireFox рядом с именем сайта не отображалось Service Temporarily Unavailable -->
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta http-equiv="refresh" content="0; url=?pass=1">
<style>
* { font-family: verdana; font-size: 10pt; COLOR: gray; }
b { font-weight: bold; }
table { height: 40%; border: 1px solid gray;}
td { text-align: center; padding: 25;}
</style>
</head>
<body>
<center>
<br><br><br><br>
<table>
<tr><td>
Для доступа в административную панель Вашего сайта, пожалуйста, перейдите по ссылке ниже. <br /><br />
<a href="?pass=1">Вход в административную панель сайта.</a></td></tr>
</table>
</center>
</body>
</html>
Она передаёт форме логина параметр ?pass=1
, а все остальные — не передаёт.
Если это инициатива хостинг-провайдера — попробуйте её отключить.
Также можно попробовать направить форму на wp-login.php?pass=1
вместо стандартного адреса, добавив в конце функции шорткода замену:
$form = str_replace( 'wp-login.php', 'wp-login.php?pass=1', wp_login_form( $args ) );
return $form;
@sergeybiryukov, спасибо, тему отмечу решенной
заменил return wp_login_form($args);
на
$form = str_replace( 'wp-login.php', 'wp-login.php?pass=1', wp_login_form( $args ) );
return $form;
срабатывает как нужно — происходит вход на сайт без каких-либо окон. А с точки зрения логики wordpress эти перенаправления нормальны?
А с точки зрения логики wordpress эти перенаправления нормальны?
С точки зрения движка лучше не заменять стандартные страницы кустарной защитой от ботов, но у некоторых хостинг-провайдеров своё мнение на этот счёт, и в этом случае приходится работать с тем, что есть 🙂
Sergey (@sergeybiryukov), в моем коде используются стандартные страницы? и мне нельзя приделать какую-то каптчу к ним? а то много фейковых регистраций идет.
просьба ещё подсказать как правильно использовать стандартные php-функции — надо сделать чтобы при вводе неправильных данных при авторизации пользователь не перебрасывался на станицу сайта http://jurvrn.ru/?login=failed
, а всплывало предупреждение о неправильном вводе данных и предлагалось заново ввести данные (или отмена)?
по ссылке под чатом «Войти на сайт» (код тот что указан выше с учетом вашей правки)