Я пытаюсь настроить страницу с одним полем ввода пароля, которое при отправке перенаправляет пользователя на соответствующую запись для данного пароля.Поле с одним паролем для сообщений
Мысль что-то, как это будет работать:
Шаблон:
<form action="" method="POST">
<input type="password" name="post_password" value=""/>
<input type="submit" name="submit" value="Submit"/>
</form>
<?php
$result = $wpdb->get_results("SELECT id FROM wp_posts WHERE post_password = '{$_POST['post_password']}'");
if ($result) {
$location = $result[0]->id;
do_action('init', $location);
} else {
echo '<p>Invalid password</p>';
}
?>
functions.php:
function process_post($arg0){
if (isset($arg0) {
wp_safe_redirect(get_bloginfo('url'). "/?page_id=" . $arg0);
exit();
}
}
add_action('init', 'process_post', 10, 1);
Но не работает. Подумал, что использование крючка init позволит избежать ошибки, связанной с сообщением заголовка, но я все еще получаю ее.
По-прежнему необходимо установить пароль для отправки в качестве значения cookie - есть ли функция WP для этого?
Это не фактическая установка в вашем шаблоне права? Код php после формы без каких-либо действий? –
@koala_dev, параметр действия не обязательно должен быть определен. Если оставить пустым, форма отправляется на текущий адрес. – Nadh
@NADH вы правы, мне жаль, что я не думал прямо, я должен сейчас лечь спать ... –