Vladddosss
@Vladddosss

Как получить главную страницу сайта (что именно имею ввиду напишу в описании)?

Добрый день.
На сайте выводятся хлебные крошки, мне нужно, чтобы они отображались на странице вывода записей то есть is_home , но они не должны отображаться на главной странице, когда главная в настройках еще не выбрана. Когда главная в настройках не выбрана, то на главной отображаются последние записи, вот про эту страницу идет речь, как сделать проверку для нее?
Если делать is_home то это повлияет и на страницу блога.
Кто знает ответ.
Спасибо.
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
V_A_B
@V_A_B
¯\_(ツ)_/¯
у меня стоит проверка is_home для страницы постов и она наверно перебивает is_front_page
да только с is_home надо конкретизировать для случаев со страницей... Давайте разберемся с настройкой...
5d34ca8acafe3282871089.jpeg
Открываем инженерную панель и смотрим атрибут name у наших радио кнопок. Он будет одинаковым для обоих. Это опция в базе данных show_on_front. По умолчанию, если настройки не указаны, либо, если Мы их сами выставляем на записи, то в опцию ложится значение value данной радио кнопки - posts. Если выбрать страницу значение будет page (см. value). Пример:
$opt=get_option('show_on_front');
if($opt=='page'){echo 'page';}else if($opt=='posts'){echo 'posts';}

Мы можем, чтобы не ломать голову, прям в шаблоне, который отвечает за вывод главной страницы сделать эту проверку. И в зависимости от условий выводить дополнительные данные, либо подключить отдельный файл с особой разметкой... Ну смотря, что Вам нужно...
Так же Вы можете добавить условия внутри Ваших условий, заменив is_home на is_front_page. Т.к. is_home проверяет показывается ли страница с последними постами, обычно это главная страница сайта. Т.е. is_home не для случая, когда в настройках будет выбрана страница
Типо:
if(is_front_page()){
	$opt=get_option('show_on_front');
	if($opt=='page'){//если в настройках выбрана страница
		echo 'page';
	}else if($opt=='posts'){//если в настройках выбраны записи
		echo 'posts';
	}}

аналог:
if(is_home()){echo 'записи';}else if(!is_home()&&is_front_page()){echo 'страница';}

т.е is_home() это, примерно, то же самое, что и:
if(is_front_page()){
	$opt=get_option('show_on_front');
	if($opt=='posts'){//если в настройках выбраны записи
			echo 'posts';
		}}

но без учета страницы:
if($opt=='page'){//если в настройках выбрана страница
		echo 'page';
	}

Иными словами - мы спрашиваем является ли страница главной через is_home(). Нам придет ответ да только, если выбраны записи... is_front_page() говорит да в любом случае, если мы на главной....
Выбирайте вариант по вкусу...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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