Как показывать div только на главной странице или в индексе блога в WordPress/PHP

5 мая 2012 г., 05:03:47
Просмотры: 18.7K
Голосов: 4

У меня есть сайт на WordPress. Мне нужно, чтобы определенный div отображался только на главной странице (в шапке сайта). Какой тип php условия мне нужно использовать...

Другими словами:

показывать <div>...</div> только в шапке главной страницы блога. Проблема в том, что шапка загружается на всех страницах.

Спасибо!

php
1
Комментарии
Все ответы на вопрос 4
8

См.: http://codex.wordpress.org/Function_Reference/is_home

<?php if(is_home()): ?>

<div>Ваш div.</div>

<?php endif; ?>
5 мая 2012 г. 05:10:32
Комментарии

спасибо... моя проблема в том, что моя тема фактически устанавливает главную страницу для отображения "категории". Существует ли аналогичное выражение, например (is_category_XXXX)?

User User
5 мая 2012 г. 05:14:43

@NKeating Это не сработало?

iambriansreed iambriansreed
5 мая 2012 г. 05:16:15

оно скрыло div на главной странице, потому что не определяет её как home.. Другими словами, главная страница настроена на отображение индекса категории под названием videos. Смотрите URL: http://speedsociety.com/

User User
5 мая 2012 г. 05:19:49

и я пытаюсь отобразить div "featured video" над основным индексом, но только на главной странице.

User User
5 мая 2012 г. 05:23:31

Также попробуйте: is_front_page().

iambriansreed iambriansreed
5 мая 2012 г. 05:25:48

Также попробуйте: прочитать весь codex.wordpress.org/Function_Reference/. Там есть полезная информация.

JakeParis JakeParis
5 мая 2012 г. 05:36:04

Вам определенно стоит использовать is_front_page() вместо is_home(). Первая функция соответствует Главной Странице Сайта; вторая — Индексу Записей Блога, который может быть или не быть на главной странице сайта.

Chip Bennett Chip Bennett
6 мая 2012 г. 02:45:21
Показать остальные 3 комментариев
0
<?php if(is_home()): ?>

<div>Ваш div.</div>

<?php endif; ?>

Приведенный выше код работает нормально до тех пор, пока вы не установите статическую страницу для отображения на главной в разделе: Администрирование > Настройки > Чтение.

<?php if(is_front_page()): ?>

<div>Ваш div.</div>

<?php endif; ?>

Но этот код будет работать независимо от того, отображается ли основная страница блога или вы установили статическую страницу для отображения на главной.

5 мая 2012 г. 08:52:30
1

Вы также можете решить проблему с помощью CSS.

Установите для div следующее:

#your-div{
display: none;
}

в вашем CSS.

Затем найдите класс body page-id для главной страницы и установите для него CSS следующим образом:

.body-class-page-id #your-div {
display: block;
}

Это скроет элемент на всех страницах, кроме той, на которой вы хотите его отобразить.

5 мая 2012 г. 11:11:36
Комментарии

В итоге для меня это оказалось более логичным.

little tiny man little tiny man
9 февр. 2021 г. 06:22:59
4

Всегда можно использовать $_SERVER['REQUEST_URI'] для определения текущей страницы. Для главной страницы это обычно просто '/'. Например:

<?php if( $_SERVER['REQUEST_URI'] == '/' ) { ?>
<div id="home_only">Содержимое здесь...</div>
<?php } ?>
5 мая 2012 г. 05:30:02
Комментарии

а) Что насчёт index.php? и б) такой тип решения не будет действительно работать с Wordpress.

JakeParis JakeParis
5 мая 2012 г. 05:37:08

а) Я не вижу причин, почему кто-то позволит людям просматривать их главную страницу как http://domain.com/index.php б) Почему ты думаешь, что это не сработает?

User User
5 мая 2012 г. 05:46:56

...Это работает?

JakeParis JakeParis
5 мая 2012 г. 05:48:49

Да, работает отлично.

User User
5 мая 2012 г. 05:51:32