Menu rozwijane bardzo ułatwia nawigacje w naszym wordpress dlatego też warto mieć coś takiego u siebie.
Menu rozwijane najlepiej wykonać za pomocą listy, ma to tą zaletę ze w kodzie html znajda sie wszystkie linki do naszych stron z menu, roboty z wyszukiwarek maje tez czasami problemy z javascript dlatego takie rozwiązanie z listą i CSS wydaje mi sie najpoprawniejsze. Menu działa w Firefox i Internet Explorer.
Od czego zaczynamy?
Musimy zlokalizować plik szablonu w którym jest wyświetlane dotychczasowe menu, szukamy więc funkcji wp_list_pages , najczęściej jest to w pliku header.php.
Zamieniamy kod:
<?php wp_list_pages(‚sort_column=menu_order&depth=1&title_li=’); ?>
Na kod:
<div id=”toolbar”>
<?php wp_list_pages(); ?>
</div>
Umieszczamy więc nasze menu w odpowiednio sformatowanym elemencie DIV
Dodajemy w pliku header.php poniższy kod:
<script language="javascript">sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);</script>
Modyfikujemy plik style.css i dodajemy formatowanie naszego menu:
/*menu */
#nav {
margin-left: 295px;
list-style: none;
background: #900;
padding: 0;
border: 1px solid #fff;
border-width: 0px 0px 0px 1px;
}
#nav ul {
margin: 0;
padding: 0;
height: 1em;
}
#toolbar form {
margin: 0;
padding: 0.1em 2em 0.1em 0em;
height: 1em;
}
#toolbar input {
margin: 1px;
}
#nav a {
display: block;
color: #fff;
text-decoration: none;
padding: 0.1em 2em;
}
#nav li {
float: left;
padding: 0;
background: #900;
border: 1px solid #fff;
border-width: 1px 0;
}
#nav li ul {
position: absolute;
left: -999em;
height: auto;
width: 14.4em;
width: 12.9em;
font-weight: normal;
border: 1px solid #fff;
margin: 0;
list-style: none;
}
#nav li li {
padding-right: 1em;
width: 13.4em;
border: 0px;
}
#nav li ul a {
width: 12em;
width: 9em;
}
#nav li ul ul {
margin: -1.75em 0 0 14em;
}
#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav li.sfhover ul ul ul {
left: -999em;
}
#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul {
left: auto;
}
#nav li:hover, #nav li.sfhover {
background: #F20000;
}
/* end menu */
Na sam koniec pozostało lekkie zmodyfikowanie funkcji wp_list_pages zdefiniowana w wordpress
W wersji 2.1.2 znajdziemy ją w pliku post-template.php w linii 253
Zamieniamy linie:
$output .= ‚<li class=”pagenav”>’ . $r[‚title_li’] . ‚<ul>’;
Na taką:
$output .= ‚<ul id=”nav”>’;
Modyfikacja funkcji moze spowodowac ze niektóre szablony mogą przestac wygladac tak jak kiedyś, aby temu zapobiec mozna zdefiniować funkcje ktora bedzie kopią wp_list_pages ale z naszymi porawkami.
I gotowe, przykład mozesz zobaczyc na tej stronie (jak zaimplementuje) albo tutaj na moim poligonie :
http://seo4you.org