Задать вопрос
@romanshatskikh

Как скрыть контент и показывать только после ввода кода?

Сайт на Wordpress
Нужно скрыть контент от пользователя.
Вместо него выводится форма ввода кода.
Ввёл код верно = увидел контент.

Подскажите, как сделать.
В идеале, какой-то плагин.
  • Вопрос задан
  • 356 просмотров
Подписаться 3 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
V_A_B
@V_A_B
¯\_(ツ)_/¯
Зачем же сразу плагины? Можно, например, использовать сессию. Не забываем, что сессию и куки объявляем до вывода любой информации:
<?php session_start();#Template Name: Загрузка файлов из списка на сервер с новым именем
get_header();
	if(have_posts()):
		while(have_posts()):the_post();
			get_template_part('VAB_template_parts/forms/VAB','FilesLoadServer');
		endwhile;
	endif;
get_sidebar();get_footer();

Ну и сам собственно код куда-нибудь:
if(!function_exists('VAB_Authentication()')){function VAB_Authentication(){
$pass='session_password';//это пароль
$errorSession='';
	if(isset($_POST['pass_value'],$_POST['pass_btn'])){
		if($pass==$_POST['pass_value']){$_SESSION['unique_ProtecT']=true;
		}else{$_SESSION['ProtecT']=false;$errorSession='<div title="'.__('Неверный пароль!','VAB').'">'.__('Неверный пароль!','VAB').'</div>';}}
	if(empty($_SESSION['unique_ProtecT'])){?>
		<div class="contact_message">
			<div class="ProtecT">
				<center>
					<h4><?php echo $errorSession;printf(__('Страница для Администрации','VAB'));?></h4>
					<form method="POST">
						<div><?php printf(__('Введите пароль','VAB'));?>:&nbsp;&nbsp;&nbsp;<input type="text" name="pass_value" size="30" />&nbsp;&nbsp;&nbsp;<input type="submit" value="<?php printf(__('Ввод','VAB'));?>" name="pass_btn" />
						</div>
					</form>
					<br><a href="<?php bloginfo('url');?>"><?php printf(__('Отмена','VAB'));?></a>
				</center>
			</div>
		</div>
<?php }}}
if(function_exists('VAB_Authentication')):VAB_Authentication();endif;

Вариант, где пароль устанавливается через кастомайзер или какой-либо раздел по управлению темой. В данном случае через мой раздел по управлению темой...:
if(VABMoD('VAB_pass_session'))://если в опции есть какое-либо значение, то пароль есть значение опции
     $pass=VABMoD('VAB_pass_session');
else://иначе пароль по умолчанию
    $pass='session_password';
endif;

Мы можем используя данную функцию просто затемнить экран(но вся разметка будет доступна в инженерной панели):
5d4061ac7d5e0375154361.jpeg
либо после вызова функции остановить все скрипты:
if(function_exists('VAB_Authentication')):VAB_Authentication();endif;
exit();//завершает все скрипты после... в том числе и сайдбары и футер и т.д.

5d4061e606bfc663618253.jpeg
или комбинируем оба варианта(оформляем, наводим красоту... баннеры на бакграунд и прочую чех**ню)
Помимо можно просто обернуть блок, который необходимо скрыть в проверку:
if(isset($_SESSION['unique_ProtecT'])&&$_SESSION['unique_ProtecT']==true){
//скрытый контент(включая инженерную панель разумеется)
}
Ответ написан
Комментировать
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
В блоке Опубликовать выбрать Видимость -> Защищено паролем, задать нужный пароль и щелкнуть Обновить/Опубликовать.
5d3fd900d9bdd558078598.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы