На PHP можно сделать вот такое динамическое меню:
<div id="nav">
<ul>
<li><?php
$theuri = $_SERVER['REQUEST_URI'];
if ( ($theuri =="/") or ($theuri =="/index.php") ) {
$itemis = "Home";
}
else {
$itemis = "<a href=\"/\">Home</a>";
}
echo $itemis;
?>
</li>
<li><?php
$theuri = $_SERVER['REQUEST_URI'];
if ( ($theuri =="/about/") or ($theuri =="/about/index.php") ) {
$itemis = "About";
}
else {
$itemis = "<a href=\"/about/\">About</a>";
}
echo $itemis;
?>
</li>
</ul>
</div>
Оно реализует один очень важный (с точки зрения Якоба Нильсена :lol:) эффект. Отсутствует ссылка на активную страницу! Что, в принципе, с позиции юзабилити, на самом деле очень важная вещь.
Так вот, проблема в следующем… Как, то же самое сделать в связке с wp-тегом wp_page_menu()?
У меня самого, что-то пока мозгов не хватает…
Ну кто-нибудь, подскажите, пожалуйста!
Может я непонятно сформулировал вопрос?
Мне нужно, чтобы вставив тег wp_page_menu() и создав в админке меню, оно было не простым, а чтобы активный пункт не был ссылкой. Например на главной странице по адресу http://mysite.ru/, было так:
Home | [url]About[/url],
а на странице About по адресу http://mysite.ru/about/, было так:
[url]Home[/url] | About
Есть, вышеприведённый php-код, который это реализует, но тогда меню надо делать вручную, без тега wp_page_menu() и соответственно им нельзя будет управлять из админки (менять пункты меню, порядок и т. д.).
Вот, как это всё совместить???
Возможно, будет полезен плагин Remove Link to Current Page: http://wordpress.org/extend/plugins/remove-link-from-current-page/.
Однако есть нюанс:
Меню, которое создаётся в админке, отображается при помощи функции wp_nav_menu(). Если вы её и имели в виду, то в плагине это предусмотрено.
Если речь идёт именно о wp_page_menu(), то могут потребоваться изменения.
Ну, можно и wp_nav_menu().
Просто хотелось обойтись без плагина. Лучше прописать что-нибудь в functions.php.
Этот плагин пробовал, действительно работает.
Даже хотел в нём разобраться, чтобы раздербанить его и прописать всё в functions.php, но не смотря на то, что в плагине всего шесть строчек, ничего не понял (всё таки с php у меня пока туго).
Блин, только четыре дня назад читал где-то, что лучше использовать wp_page_menu() вместо wp_nav_menu(). Но уже забыл где и почему лучше…
Добавил в плагин строчку
теперь работает и с тегом wp_page_menu().
Но, как обойтись вообще без плагина, так и не понял…
Всё разобрался!
Тупо прописал в functions.php весь код плагина:
и всё заработало!
Сергей, спасибо за подсказку!