@Alexander9229

Как сделать проверку по ссылке, чтобы подставить нужную мне кнопку?

Проект на wordpress.
Столкнулся с необходимостью использования самописного кода на PHP, но к сожалению его знаю очень поверхностно

Есть две кнопки, мне нужно написать условие, что:
если я перешел по ссылке - http://ссылка_на_проект/project-catalog/.../, тогда на странице будет выводиться кнопка - Наши проекты.
если я перешел по ссылке - http://ссылка_на_проект/objects/..../, тогда на странице будет выводиться кнопка - Наши дома.
Т.е. разница в ссылках только в /project-catalog/ и /objects/

Я попытался это реализовать так, но знаю что это говнокод еще тот :(
Полно ошибок и т.д.

<?php 
	$project_catalog = '<a href="<?php echo get_home_url(); ?>/#project-catalog" class="button ready-objects__link-last button--primary">Наши проекты</a>';
	$finished_objects = '<a href="<?php echo get_home_url(); ?>/#finished-objects" class="button ready-objects__link-center button--primary">Наши дома</a>';

	if ( preg_match( "/#finished-objects/" ) ) { ?>
	<?php echo $finished_objects; ?>
	<?php } else if ( preg_match( "/#project-catalog/" ) { ?>
	<?php echo $project_catalog; ?>
	<?php }
?>


Как можно реализовать правильно эту задачу?
Если есть решение проще этого, то без проблем рассмотрю его
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
@lolzqq
HTML,CSS,JS,PHP
Для разных страниц вы можете использовать разные шаблоны. Шаблоны обычно хранятся в корне темы. Нужный можете скопировать, переименовать, прописать внутри кнопку на html
Далее переходите по ссылке:
http://вашсайт.ру/wp-admin/edit.php?post_type=page
Справа ищете Аттрибуты страницы - там устанавливаете шаблон с нужной кнопкой
604a30e9ed745424869425.png

Код, как вы хотели:
<?php
// адрес текущей страницы
$actual_link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
// строки сравнения - части адреса, которые мы ищем
$project_catalog = '/project-catalog';
$finished_objects = '/finished-objects';

if(strpos($actual_link,$project_catalog)!==false){
	echo 'код вашей кнопки для каталога';
}else{
	if(strpos($actual_link,$finished_objects)!==false){
		echo 'код вашей кнопки для завершённых объектов';
	}
}

?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Alexander9229 Автор вопроса
Нашел вроде бы более менее начало условия, но как тут привязаться к ссылке не могу понять, чтобы сделать проверку на соответствие... :(

<?php 
   $project_catalog = '/#project-catalog';
   $finished_objects = '/#finished-objects';

	if ( $project_catalog ) { ?>
            <a href="<?php echo get_home_url(); ?>/#project-catalog" class="button ready-objects__link-last button--primary">Наши проекты</a>
	<?php
	} else if ( $finished_objects ) { ?>
		<a href="<?php echo get_home_url(); ?>/#finished-objects" class="button ready-objects__link-center button--primary">Наши дома</a>
	<?php
	} else {
		echo '0';
	}
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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