Wordpress не работает is_front_page()
11416 сообщений
#7 лет назад
Какая-то ерунда, никак не могу понять в чем дело.Пишу в functions.php
if (is_front_page()) {echo 'TEST';}
Надпись не выводится. Главная страница сделана через файл home.php
Почему такое может быть? На других сайтах все работало)
731 сообщение
#7 лет назад
Если else добавить, выводит то что в else ?Попробуйте через is_home()
Когда-то тоже были кони с is_front_page, но честно как выкрутился уже не могу вспомнить
834 сообщения
#7 лет назад
По всей видимости перед is_front_page() выполняется какой то не стандартный wp_query или query_postsисправить можно или добавив wp_reset_query() перед is_front_page() или использовать if ( (is_home())&&!(is_paged()) ) {
11416 сообщений
#7 лет назад
wp_reset_query(); if (is_front_page()) {echo '111111111';} else {echo '22222222222';}
if ( (is_home()) && !is_paged()) {echo '111111111';} else {echo '22222222222';}
В обоих случаях выводится 22222222222
834 сообщения
#7 лет назад
А в настройках отображения случайно не страница выбрана? а у этой страницы может быть выбран свой шаблон справа в меню?а что выводит если распечатать параметры запроса вот так
global $wp_query;
print_r($wp_query);
есть такое ? => 1
Что то из этого списка ссылка должно быть 1 =) выяснить что, потом выяснить почему=))
11416 сообщений
#7 лет назад
Нет, в настройках чтения все по умолчанию без выбора страниц.is_home - пусто
=> 1
единичка только тут
Чудеса) первый раз такое вижу...
834 сообщения
#7 лет назад
Нашел код который ставит приватным, точней не приватным в прямом смысле, а как я понял измененным, не кастомным, поэтому оставльные is_ в нулях// Set a flag if a pre_get_posts hook changed the query vars.Попробовать найти pre_get_posts в шаблоне вашем+)) Что то такое ощущение что это у вас WooCommerce=)
$hash = md5( serialize( $this->query_vars ) );
if ( $hash != $this->query_vars_hash ) {
$this->query_vars_changed = true;
$this->query_vars_hash = $hash;
}
Может не стоит парится, а сделать костыль по request_uri что бы определить главную?
11416 сообщений
#7 лет назад
Цитата (micros):Что то такое ощущение что это у вас WooCommerce=)
Да не, сам шаблон пилю с нуля в том то и дело. Скорее всего плагин какой-то портит картину.
Пожалуй да, попробую через request_uri, спасибо!
834 сообщения
#7 лет назад
Hungry_Hunter, if( $wp_query->is_front_page() ){
//тут главная
}
Нашел, вот так может сработать, если используется функция pre_get_posts и ей подобные.
Т.е не свойство брать, а метод вызывать=)
11416 сообщений
#7 лет назад
Не для моего случая Тоже не срабатывает, сделал как вы и писали через request_uri
834 сообщения
#7 лет назад
Странно что не сработало, видимо что то там не так в плагинах=)))у меня сработал и $wp_query->is_front_page() и $wp_query->is_home()
после добавления pre_get_posts =)
При этом как обычно is_front_page() не работает после pre_get_posts=)
Ну да ладно, костыль тоже надежный=))