Vladddosss
@Vladddosss

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

Добрый день.
На сайте выводятся хлебные крошки, мне нужно, чтобы они отображались на странице вывода записей то есть is_home , но они не должны отображаться на главной странице, когда главная в настройках еще не выбрана. Когда главная в настройках не выбрана, то на главной отображаются последние записи, вот про эту страницу идет речь, как сделать проверку для нее?
Если делать is_home то это повлияет и на страницу блога.
Кто знает ответ.
Спасибо.
  • Вопрос задан
  • 52 просмотра
Решения вопроса 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() говорит да в любом случае, если мы на главной....
Выбирайте вариант по вкусу...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
23 авг. 2019, в 20:51
10000 руб./за проект
23 авг. 2019, в 20:03
1000 руб./за проект
23 авг. 2019, в 20:02
500 руб./за проект