← PHP

Active class php+css

Lida 4581 vezes

Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Pessoal estou a tentar criar um menu baseado nisto, mas de forma dinâmica.

Ou seja, quero que a class active do css, seja definida consoante a url em que a página está aberta. Será qualquer coisa como isto, mas falta um if, para que se não for a página em questão o li não ter nenhum class definida.

Não sei se me consegui explicar...

Código: [Seleccione]
<?php
$url 
explode('/',$_SERVER['REQUEST_URI']);
$dir $url[1] ? $url[1] : 'active';
?>

 
<ul id="menu">
<li class="<?php echo $dir ?>"><a href="<?php bloginfo('url');?>" class="home">Home</a></li>
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Pelo <?php bloginfo('url');?>, isto é para wordpress certo? Se sim, o wordpress já adiciona as paginas a class current_page_item.

Se não for para wordpress, usa o seguinte:
Código: [Seleccione]
<?php $url $_SERVER['REQUEST_URI']; ?>

<li <?php if ($url == 'index.php') { echo 'class="active"'; } ?>><a href="<?php bloginfo('url');?>" class="home">Home</a></li>

Vê se resulta e se é isso que queres.
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Vou experimentar...

O meu problema é que é para wordpress mas com links externos também no menu...
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Se os links forem para paginas dentro do WordPress, podes usar o seguinte:

Código: [Seleccione]
<li <?php if(is_home()) { ?> class="current_page_item" <?php ?>><a href="<?php echo get_option('home'); ?>/">Home</a></li>
<li <?php if(is_page('contacto')) { ?> class="current_page_item" <?php ?>><a href="<?php echo get_option('home'); ?>/contacto">Contacto</a></li>
<li <?php if(is_page('sobre')) { ?> class="current_page_item" <?php ?>><a href="<?php echo get_option('home'); ?>/sobre">Sobre</a></li>
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Solved, obrigado!

Tava complicado de adaptar este menu ao wordpress. Tenho de ver melhor estas conditional tags.
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Solved, obrigado!

Tava complicado de adaptar este menu ao wordpress. Tenho de ver melhor estas conditional tags.

De nada!

De que maneira fizeste?
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

É apenas substituir o class="current_page_item" por class="active". E funciona na perfeição.
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

É apenas substituir o class="current_page_item" por class="active". E funciona na perfeição.
No exemplo que te mostrei? Eu usei aqueles, para ficarem iguais ao do WordPress. :)
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Sim. Eu depois adaptei ao que precisava... Entre páginas, categorias, home, etc...
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Sim. Eu depois adaptei ao que precisava... Entre páginas, categorias, home, etc...
:)

As categorias funciona da mesma maneira, is_category('videos'). ;)
Offline

Rodrigo Diniz 
Membro
Mensagens 1 Gostos 0
Troféus totais: 14
Trófeus: (Ver todos)
Super Combination Combination Level 3 Level 2 Level 1 First Post Karma Seventh year Anniversary Sixth year Anniversary Fifth year Anniversary

:)

As categorias funciona da mesma maneira, is_category('videos'). ;)

E quando for o link para um post. Alguém já precisou? Nesse caso o is_category não funcionou para o post da categoria.
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

E quando for o link para um post. Alguém já precisou? Nesse caso o is_category não funcionou para o post da categoria.
Não percebi...