By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
437,751 Members | 1,158 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 437,751 IT Pros & Developers. It's quick & easy.

Underline the Current Page's Title in menu

P: 8
Hey all!

I'm building a site for a friend which uses this Wordpress theme:

http://www.felixkrusch.de/about

^ As you can see by visting the site, the title of the current page is always underlined on the main menu.

In the code the menu is displayed by this code:

Expand|Select|Wrap|Line Numbers
  1. <li <?php if(is_home()){echo 'class="current_page_item"';}?>><a href="<?php bloginfo('siteurl'); ?>" title="Home">Home</a></li>
  2.  
  3. <?php wp_list_pages('title_li=&depth=1');?>
and a snippet of css in the stylesheet:

Expand|Select|Wrap|Line Numbers
  1. .current_page_item a {
  2.  
  3. color:#000;
  4.  
  5. text-decoration: underline;
  6.  
  7. }
I want to add links to category pages in the menu, but if I add an example like this to the menu:

Expand|Select|Wrap|Line Numbers
  1. <a href="blahblah.com/cat/videos">Videos</a>
There is no underline for that page.

Does anyone know a way that I can achieve the same underline effect for non-Pages I add to the menu?

There must be some way to adapt this code for other URLs?

Expand|Select|Wrap|Line Numbers
  1. <li <?php if(is_home()){echo 'class="current_page_item"';}?>><a href="<?php bloginfo('siteurl'); ?>" title="Home">Home</a></li>
If anyone can help I'd be hugely grateful, thank you in advance!
Sep 4 '08 #1
Share this Question
Share on Google+
11 Replies


Dormilich
Expert Mod 5K+
P: 8,639
put your link in an element (li, div, span, ...) that contains the current_page_item class.
Expand|Select|Wrap|Line Numbers
  1. <span class="current_page_item">
  2.   <a href="_your_uri_">_link_text_</a>
  3. </span>
regards
Sep 4 '08 #2

P: 8
I might be wrong but I don't think that would work.

I want the underline to appear only on the page currently being browsed by the visitor. If I added the above bit of code, would it not always apply the underline?

Thanks,
Sep 4 '08 #3

Expert 100+
P: 397

There must be some way to adapt this code for other URLs?

Expand|Select|Wrap|Line Numbers
  1. <li <?php if(is_home()){echo 'class="current_page_item"';}?>><a href="<?php bloginfo('siteurl'); ?>" title="Home">Home</a></li>
Try the PHP forum PHP forum
Sep 4 '08 #4

P: 8
Thanks for the help all,

I will move this conversation to the PHP forum, cheers.
Sep 8 '08 #5

eWish
Expert 100+
P: 971
Moving to PHP Forum.

--Kevin
Sep 8 '08 #6

Dormilich
Expert Mod 5K+
P: 8,639
There must be some way to adapt this code for other URLs?
Expand|Select|Wrap|Line Numbers
  1. <li <?php if(is_home()){echo 'class="current_page_item"';}?>>
  2.     <a href="<?php bloginfo('siteurl'); ?>" title="Home">Home</a>
  3. </li>
do you know, how the is_home() function works? then you could it adapt for categories too.
Sep 9 '08 #7

P: 8
do you know, how the is_home() function works? then you could it adapt for categories too.
Dormilich: I have no idea how the is_home() function works.

Do you have any idea?

Repeating it for categories would be perfect.

Thanks
Sep 10 '08 #8

Dormilich
Expert Mod 5K+
P: 8,639
option 1 - you have access to the server and the function is defined somewhere in a script file on the server - just scan the script files for this function

option 2 - is_home() belongs to a wordpress hosted script - no luck

option 3 - there is a wordpress documentation

option 4 - write your own is_category() function

for option 4 I'd like to see more of the script, because this function also depends on how the category menu is build. as a general idea the function would probably compare the siteurl with the category link (e.g. preg_match()).

regards
Sep 11 '08 #9

P: 8
I think option 3:

http://codex.wordpress.org/Condition..._Category_Page

I am wholly uneducated in PHP so I hope you can confirm or deny my theory, that I should be able to get the result I want using the structure below.

Expand|Select|Wrap|Line Numbers
  1.       <li <?php if(is_home()){echo 'class="current_page_item"';}?>>
  2.           <a href="http://homepage.com" title="Home">Home</a>
  3.       </li>
  4.  
  5.     <li <?php if(is_category('9')){echo 'class="current_page_item"';}?>>
  6.           <a href="http://homepage.com/cat/apple" title="Posts Filed in Apple">Apple</a>
  7.  
  8.     <li <?php if(is_category('10')){echo 'class="current_page_item"';}?>>
  9.           <a href="http://homepage.com/cat/windows" title="Posts Filed in Windows">Windows</a>
  10.  
For the record: categories are each given a numeric value besides its name, Apple might be 9, Windows might be 10, and so on, like I've shown here.
Sep 11 '08 #10

Dormilich
Expert Mod 5K+
P: 8,639
That's exactly how I would do that. despite is_category() fires only if the page displayed is the category's top page, maybe you want to go for in_category() (marking all pages that belong to that category)

regards
Sep 11 '08 #11

P: 8
Thanks for the great advice, I truly appreciate your help!

Will repost here to let you know how I get on.

Best,
Sep 12 '08 #12

Post your reply

Sign in to post your reply or Sign up for a free account.