Поддержка → Проблемы и решения → Отражение меню в зависимости от страницы
Отражение меню в зависимости от страницы
-
Как сделать так, чтобы пункты меню отражались только на страницах, а в записях – нет?
Как нужно перезаписать? Или не в записях дело?
Спасибо
-
Не могу отпостить блоком записи из файла, так письмо их урывками показывает
1. Можно обернуть пункты меню условием:
<?php if ( is_page() ) : ?> ... <?php endif; ?>
2. Расскажите подробнее. Все слова по отдельности понятны, но суть проблемы ускользает.
ОК, Сергей.
Предполагается, что на моём сайте будет 4 страницы. При этом я хочу, чтобы входной была одна: 1-я («записи»). И соответственно она НЕ ДОЛЖНА содержать каких либо ссылок, внешних или внутренних. Я даже сайдбар поотключал, кроме одного. И тот НЕ содержит гиперссылок. И адрес этой «записи» соответствует основному имени сайта http://www.сайт.ru/
Доступ на остальные чел получает, если сочтёт содержание 1-й «записи» интересным для себя, т.е. после того, как свяжется со мной, я его переадресую на другие страницы.
Таким образом, я хочу сконцентрировать внимание «свежего» посетителя только на 1-й «записи». А впоследствии он получит доступ ко всем остальным страницам. Поэтому 1-я «запись» не должна содержать каких бы то ни было навигаций. А вот другие страницы — пускай будут обычными и ориентируют друг на друга, включая и 1-ю «запись».
Вот какая запись у меня в файле Header, касаемая меню:
</div> <div id="menu"> <ul> <li class="emphasis"><a href="<?php echo get_settings('home'); ?>">Home</a></li> <?php wp_list_pages('title_li=&depth=1'); ?> </ul> </div>
Вопрос: какую запись, в какой файл и куда надо внести, чтобы данная задумка работала?
Первую страницу вы можете нарисовать в HTML совершенно отдельно и положить ее в тему под именем
home.php
. Как-то так…Насчёт отдельной страницы мне приходила мысль. Но это гораздо дольше, да и забомблю я вопросами тогда по её созданию. Опыта нет. Так что если было бы возможно решить вопрос с помощью условия, внесённого в файл, то было бы круто.
Подскажите, плиз, какое можно сформулировать условие и в каком файле, чтобы меню отображалось только бы на «страницах» и отсутствовало бы в «записях»?
Если написать:
<?php if ( !is_page('ID, ярлык или заголовок страницы') ) : ?> <div id="menu"> <ul> <li class="emphasis"><a href="<?php echo get_settings('home'); ?>">Home</a></li> <?php wp_list_pages('title_li=&depth=1'); ?> </ul> </div> <?php endif; ?>
— меню будет на всех страницах, кроме указанной в условии.
Сергей, сайт ругнулся фразой
Parse error: syntax error, unexpected $end in …/header.php on line 44
line 44 — это <div id=»menu»>
Сорри, забыл
endif
в последней строчке. Добавил.Сергей, всё добавил, но меню как было на всех страницах, так и осталось. Ещё раз напомню, что исключаемая страница относится не к «страницам», а к «записям». Может ли это иметь зачение?
Ривизия. сейчас в header.php такой порядок записей:
</div> <?php if ( !is_page('4REALMAN') ) : ?> <div id="menu"> <ul> <li class="emphasis"><a href="<?php echo get_settings('home'); ?>">Home</a></li> <?php wp_list_pages('title_li=&depth=1'); ?> </ul> </div> <?php endif; ?> <!--header.php end-->
В качестве названия я вставил название страницы, которое видно слева сверху рядом со значком «е» — интернета. Хотелось бы в добавок спросить, как бы в файле отразились ID или ярлык для этой страницы? Чтоб знать.
Непонятно, где сбой
Что можно ещё предпринять для решения задачи?
1. Тогда вместо
is_page()
нужно использоватьis_single()
.
2. Ярлык — это часть адреса (если используются постоянные ссылки). Например, site.ru/about. Идентификатор можно посмотреть в адресной строке при редактировании страницы или записи.
- Тема «Отражение меню в зависимости от страницы» закрыта для новых ответов.