Blue MUIOMUIO

Blogue pessoal de um Web Designer

Menu Dropdown nas pages do wordpress 2.0.2

Saturday June 10th 2006 Tutoriais

À 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 .

0 Comments / save to del.icio.us 0