у меня стоит проверка is_home для страницы постов и она наверно перебивает is_front_page
да только с is_home надо конкретизировать для случаев со страницей... Давайте разберемся с настройкой...
Открываем инженерную панель и смотрим атрибут 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() говорит да в любом случае, если мы на главной....
Выбирайте вариант по вкусу...