Какие существуют способы определения домашней страницы в wordpress?

Какие существуют способы определения домашней страницы WordPress

кроме is_front_page() и is_home()

Спасибо


person Tushar Ahirrao    schedule 07.02.2011    source источник
comment
Что не так с is_home() ?   -  person alex    schedule 07.02.2011
comment
в моем блоге не работает :(   -  person Tushar Ahirrao    schedule 07.02.2011
comment
Я плохо знаю WordPress, но не могли бы вы сделать это быстро и просто с помощью $isHome = ($_SERVER['REQUEST_URI'] == '/') (или любой другой вашей домашней страницы)?   -  person alex    schedule 07.02.2011
comment
Каков адрес вашей домашней страницы? И всегда ли он возвращает false?   -  person powtac    schedule 07.02.2011


Ответы (7)


is_front_page() это то, что вы хотите.

Я предполагаю, что по тому, что is_home() не работает, ваша домашняя страница статическая, согласно настройкам в wp-admin.

is_home() возвращает true на главной странице вашего блога, тогда как is_front_page() возвращает true на любой странице, которая определена как главная, независимо от того, лента это или нет.

Из кодекса:

Этот условный тег проверяет, является ли главная страница постами или страницей. Это логическая функция, то есть она возвращает либо ИСТИНА, либо ЛОЖЬ. Он возвращает значение TRUE, когда отображается главная страница блога, а для отображения Настройки->Чтение->Главная страница установлено значение «Ваши последние сообщения» или когда установлено значение «Статическая страница», а значение «Главная страница» равно отображается текущая страница.

person Mild Fuzz    schedule 07.02.2011

Я просто делаю следующее:

if ( $_SERVER["REQUEST_URI"] == '/' ) { }

Это работает и не слишком усложняет вещи, тем более что is_front_page() и is_home() не всегда работают так, как вы ожидаете.

person Liam Galvin    schedule 07.02.2011
comment
Кажется, это единственная проверка, которая надежно работает, если у вас есть категория на главной странице. - person Ikram Hawramani; 03.05.2014

снаружи цикла:

if(get_option("page_on_front") == $post->ID){
    //do front page stuff here
}
person Chris Chalmers    schedule 19.09.2017
comment
Я также смог использовать этот подход в админке WP, так как is_front_page() там не работает. - person Eric K; 27.05.2020

С Twenty Ten я использую:

<?php
 if ( $_SERVER["REQUEST_URI"] == '/' ) { ?>
   <h1 class="site-title"><?php bloginfo( 'name' ); ?></h1>
   <h2 class="site-description"><?php bloginfo( 'description' ); ?></h2>
<?php
} else { ?>
   <p class="site-title"><?php bloginfo( 'name' ); ?></p>
   <p class="site-description"><?php bloginfo( 'description' ); ?></p>
<?php } ?>

Работает как шарм... Я всегда использую $_SERVER, и он всегда работает.

person TBar    schedule 09.02.2014

Во многих ситуациях сайт Wordpress может иметь is_home и is_frontpage как eval как true на НАСТОЯЩЕЙ домашней странице, так и на главной странице блога. После создания сайтов в Wordpress около 4 лет меня это все еще беспокоит.

Например, если у вас есть сайт, на главной странице которого размещены ваши последние сообщения, может быть слайдер или какие-то другие элементы, ориентированные на главную страницу, И есть еще одна страница блога, то is_frontpage и is_home будут оценены как истинные на ОБЕИХ страницах. Таким образом, Wordpress не имеет четкой условной функции для истинной домашней страницы, по крайней мере, так, как большинство людей думают о домашней странице веб-сайта.

Поэтому я согласен с Лиамом, что если вы попадете в запутанную ситуацию, что-то вроде if ( $_SERVER["REQUEST_URI"] == '/' ) { }

является более надежным.

person Jim Camomile    schedule 18.06.2013

Для меня is_front_page() и is_home() не работают так, как мне нужно проверить домашнюю страницу, поэтому вместо этого я пишу это условие:

global $wp;  
$current_url = home_url(add_query_arg(array($_GET), $wp->request));
if ($current_url==get_site_url()) { 
    // code for homepage 
}
person Gediminas    schedule 27.09.2019

is_home() это путь.

Вы пробовали этот метод, и он не работает? Если да, то обычно это связано с настройками mod_rewrite или с настройками WordPress.

person nino    schedule 07.02.2011