Quick and Easy Apple.com Style Breadcrumb Trail for WordPress

Almost a year ago, Janko Jovanovic posted a guide on how a little xHTML and CSS can duplicate the Apple.com store breadcrumb trail. Today, I’m going to show you how to apply Janko’s code to WordPress using Breadcrumb NavXT.

Ok, now with the requirements. You’ll need a WordPress blog (everyone should be running 2.8.1 by now), and Breadcrumb NavXT 3.2.1 (or newer).

First up, the xHTML. We are going to use the function bcn_display_list(), which was introduced in Breadcrumb NavXT 3.2.0. This will output a breadcrumb trail in list form. It is worth noting that bcn_display_list() does not output a <ul> or <ol> tag, those must be added around the calling function. We want to wrap the code with <ul> tags.

<ul class="breadcrumb_trail"> <?php if(function_exists('bcn_display_list')) { bcn_display_list(); } ?> </ul> 

Place this code where you want the breadcrumb trail to show up, I recommend placing it in your theme’s header.php file. That is all the xHTML work that we need to do. Now, on to the CSS. Open up your theme’s style.css file. We’ll start with styling the <ul>.

.breadcrumb_trail { font: 11px Arial, Helvetica, sans-serif; background: url('images/bc_bg.png') repeat-x; height:30px; line-height:30px; color:#9b9b9b; border:solid 1px #cacaca; width:100%; overflow:hidden; margin:0px; padding:0px; }

Line by line this is setting the font to the Arial/Helvetica family at the 11px size for the breadcrumb trail. Then, we set the background to an image and will repeat it horizontally across the screen. We set the height to 30 pixels for the unordered list and all text within it. This is because the background image is 30 pixels high, and the second will allow the text to be centered vertically without extra work. We set the text color to a shade of grey, this ends up being just the color of the current item breadcrumb text. We set the boarder to be 1 pixel high and a dark shade of grey in color. Next, the width of the unordered list element is set to be 100% of its containing element. We don’t want the trail to ever go outside of the preallocated area for the list, so we tell the browser to hide any overflowing content. Finally, we zero out the margin and padding.

Next we should get rid of those ugly bullet points next to each breadcrumb. Add the following code in below the code we just placed in the style.css file.

.breadcrumb_trail li { list-style:none; float:left; padding-left:10px; } 

This code will remove the bullet points next to each breadcrumb, cause the breadcrumbs to line in order from left to right and to keep 10 pixels of padding between each of them. Next, let’s style up those anchors (links).

.breadcrumb_trail a { height:30px; display:block; background:url('images/bc_separator.png') right no-repeat; padding-right: 15px; text-decoration: none; color:#454545; } 

Line by line this code will set the anchor height to 30 pixels. The anchors will be treated as block elements rather than inline elements. A background image will be used as our breadcrumb separator, we’ll set it to show up to the right of the anchor. We’ll allow 15 pixels to the right of each anchor so that the separator image displays properly. The normal anchor underline is removed, and finally we set the text color to a darkish gray.

Now we have a few, very short blocks of CSS styling for the hover condition on the anchor and the home breadcrumb icon.

.breadcrumb_trail a:hover { color:#0088ff; } 

When the anchors are hovered over this code will set the color of the anchor to a color similar to teal.

.breadcrumb_trail .home img { border: none; margin: 9px 0px; } 

This centers the home icon vertically within the home breadcrumb. Now, save your style.css file.

Time to change a few settings in the Breadcrumb NavXT page. If Breadcrumb NavXT is not already activated, activate it at this time. The next step is different depending on the version of Breadcrumb NavXT you are using.

  • For Breadcrumb NavXT versions prior to 4.0: Under the General tab in the Breadcrumb NavXT settings page, change the Home Title from “Home” to <img src="YOUR_BLOG_URL/wp-content/themes/YOUR_ACTIVE_THEME/images/home.png" alt="Home" />.
  • For Breadcrumb NavXT 4.x: Under the General tab in the Breadcrumb NavXT settings page, change the Home Template to <a class="%type%" title="Go to %title%." href="%link%"><img src="YOUR_BLOG_URL/wp-content/themes/YOUR_ACTIVE_THEME/images/home.png" alt="%title%" /></a> and the Home Template (Unlinked) to <img src="YOUR_BLOG_URL/wp-content/themes/YOUR_ACTIVE_THEME/images/home.png" alt="%title%" />.

Remember to replace YOUR_BLOG_URL with the URL for your blog, and YOUR_ACTIVE_THEME with the folder name for your currently active theme. Save the settings. Note: this will have to be changed every time you change themes. If you feel adventurous, you can directly access the bcn_breadcrumb_trail class, which will allow you to assign a dynamic Home Title.

Finally, download this archive with the three images, home.png, bc_seperator.png, and bc_bg.png (The home.png was replaced from Janko’s originals as I didn’t like it). Upload it to your current theme’s images directory. If this directory does not exist, make one and place the images in it. Now, you should have a breadcrumb trail that looks like that on Apple.com.

-John Havlik

[end of transmission, stay tuned]

Weblogs.us Plagiarism Policy

This week Weblogs.us encountered a sad first. It involves violations of the TOS, and subsequent suspension of the accounts in question. We had an influx of ‘UK’ based blogger request accounts so they could blog on the topics of ‘health’, ‘beauty’, and ‘sexual health’. The email requests all appeared to be from a template, awkwardly warm greeting, fake pseudonym, referred to our service as our “blogging platform”, and they all wanted to talk about ‘health’, ‘beauty’, and ‘sexual health’.

JD had granted a few of them blogs, all of which have now been suspended. What tipped us off to issues was one of the spam bloggers complained that they could not make any posts. Before looking at the error logs, I knew it was a mod_security rule that had been tripped. Sure enough, upon inspection it was. However, what tripped mod_security was interesting. Instead of the common anti-injection attack filters, it was the anti-spam filters. The logs revealed another interesting tidbit, the user behind one of the blogs was behind another newly hosted blog by Weblogs.us.

After looking at the exact content that they attempted to post, I did a quick Google search, and found they had just copied and pasted an article by someone else, and claimed it as their own. I immediately suspended their account for plagiarism. The funny thing is the user contacted us wondering why his/her blog was suspended. Apparently, he/she agreed to our TOS without reading it.

Plagiarism, as with copyright infringement in general, is prohibited on Weblogs.us. Depending on the extent of the violation, the blog may be suspended immediately, and without notice. This particularly applies to verbatim copying of content from other sources without citation of the source.

-John Havlik

[end of transmission, stay tuned]

Moab Trip 2009 “The Plants” Photoset

I’ve finally synchronized my camera’s memory with my laptop and began sorting through the pictures I took on my trip to Moab, Utah in June. Below are some of the better shots of plants in the area. Surprisingly, many of the plants were still green and flowering, or just finished flowering. It’s too bad I don’t have anything better than a Cannon PowerShot SD850 IS with CHDK, getting it to focus on the correct object can be a pain at times (plus there is a caveat with using 4GB SDHC cards (FAT32 format is the culprit) and CHDK where it won’t auto boot).

-John Havlik

[end of transmission, stay tuned]

goto code_hell;

code_hell: echo 'Yes, PHP 5.3 has the goto operator';

In one’s opinion, the only people that should be allowed to use the goto operator are expert assembly language programmers (and you are not one). Besides, most things written in PHP are not “low level” enough to warrant the use of goto. However, if you must use the goto operator, please do so responsibly. Use it as if it costs $10,000 per use, and properly document what’s going on.

-John Havlik

[end of transmission, stay tuned]

Windows 7 PunkBuster Revisit

Well, well, well, look what we have here. Looks like Even Balance finally got their act together. Anyone taking part in the Battlefield Heroes Beta will know that DICE now has PunkBuster enabled for it. Amazingly, Battlefield Heroes still works in Windows 7, no false-positive PunkBuster related kicks. Even better, the PunkBuster client for Battlefield 2142 now works correctly on Windows 7 64Bit now as well. One was able to play on four different Battlefield 2142 servers for more than 30 minutes each today without a single kick, therefore the PunkBuster related issues appear to be solved. No hacks, no compatibility mode, no running as administrator, it just works. Hurray for silent updates! Oh wait, they are still a major security risk.

-John Havlik

[end of transmission, stay tuned]