Menu Dropdown nas pages do wordpress 2.0.2
À uns dias tive um problema em que queria criar um [tag]menu dropdown[/tag] no [tag]wordpress[/tag], mas como a microsoft não é amiga do web designer, o IE não quis colaborar comigo e fui obrigado a procurar uma alternativa que me permitisse criar um menu dropdown que funcionasse no IE.
A melhor solução que encontrei foi este tutorial http://www.invokemedia.com/category/web-technologies/cms-systems/ mas que contem um erro que não deixava o script funcionar correctamente.
Este artigo é basicamente a tradução do tutorial para português.
Indice
1- Editar a Sidebar
2- Editar o Header
3- O codigo javascript
4- O CSS
5- template-functions-post.php
Editar o sidebar
Dependendo do theme que usam podem ou não passar este passo.
Editem o ficheiro sidebar.php e removam a parte onde está o código wp_list_pages();
Editar o Header
Abram o ficheiro header.php e coloquem o seguinte codigo onde querem que apareça o menu.
<div id=”toolbar”>< ?php wp_list_pages(); ?></div>
O codigo Javascript
<script language=”javascript”>
sfHover = function() {
var sfEls = document.getElementById(”nav”).getElementsByTagName(”LI”);
for (var i=0; i
sfEls[i].onmouseover=function() {
this.className+=” sfhover”;
}
sfEls[i].onmouseout=function() {
this.className-=” sfhover”;
}
}
}if (window.attachEvent) window.attachEvent(”onload”, sfHover);
</script>
Ainda no header.php coloquem este código mesmo por cima da tag </head>
A diferença do outro tutorial para este é na função do onmouseout. A mim o problema que me deu foi que quando fazia onmouseout o menu não se escondia. A solução foi alterar a função de
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(” sfhover\b”), “”);
Para
sfEls[i].onmouseout=function() { this.className-=” sfhover”; }
E tem funcionado perfeitamente no IE e no Firefox.
Editar o CSS
Neste caso a ideia era colocar a lista de paginas no topo, por baixo do logotipo por isso escolhi um menu horizontal.
Coloquem o código no ficheiro style.css e editem a vosso gosto.
/*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;
w\idth: 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;
w\idth: 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 */
Editar o ficheiro template-functions-post.php
Este passo é importante para que tudo funcione como deve ser.
O ficheiro encontra-se na directoria wp-include. Abram o ficheiro e procurem esta linha:
$output .= ‘<li class=”pagenav”>’ . $r['title_li'] . ‘<ul>’;
devem substitui-la por
$output .= ‘<ul id=”nav”>’;
E pronto agora é só criarem as páginas .
Sem Comentários
Deixa um comentário
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> , Comentários com * são obrigatórios

