Archive for February, 2008
Wednesday, February 27th, 2008
Trends are fun and fascinating, both online and off. I came across Google Trends a while ago, but I never used it. So recently I decided to see how WordPress measures up against its competition.
First, I compared WordPress to what I figure is its most direct competitor: Movable Type. Since 2004, WordPress has skyrocketed in search volume, while a gradual decline is visible for Movable Type:
(blue is WordPress, red is Movable Type

Then I decided to see how WordPress is measuring up to another Open Source software that’s been around for a long time: Joomla. Here’s the surprise: Joomla is way up over WordPress in search volume!

Do these results mean anything? Could this be suggesting that Joomla is primed to be the next favorite Open Source software, or that it already is?
Posted in News & Views | Tags: silly stuff | 20 Comments »
Monday, February 25th, 2008
Amazingly, I have never had to deal with podcast or audio files before in a WordPress blog or site. But a recent client needed a way to easily and attractively add mp3 files to her posts.
At first I tried the Podcasting plugin, but I didn’t have much luck. Then I tried the Audio Player Wordpress plugin, which worked great – it’s easy to activate and configure, and isn’t complicated for the blog owner to use.
There are various ways to use it, but here’s the way that I like best:
- Upload and activate the plugin.
- Go to Options > Audio Player.
- Under where it says “How do you want to use the audio player?” select the second option: Enclosure integration (for podcasters). This option detects if there is a link to an MP3 file in your post, and automatically adds a player for that file to the end of the post.
There are a few advantages to this format:
- You don’t have to set up a special folder for the audio files. You don’t really have to for the other options either, but if you don’t you make the user’s life a bit more difficult.
- The user doesn’t have to remember to use any types of brackets or code
- The post can include a flash player and a download link, so that people have the choice to listen the file online or offline. The other options that the plugin offers take the link and create a flash player from them, which means there isn’t a link to download the podcast.
Here’s an example: I really like this song by Yael Naim, an Israeli singer, which was used in the new Macbook Air commercial. You can download the link by right-clicking on Yael’s name above, or enjoy the song here in my snazzy new audio player (I hope).
Posted in Plugins | Tags: audio, Podcasts | 16 Comments »
Friday, February 22nd, 2008

Today, WordPress Garage turns one year old. Hasn’t our little baby grown up fast? Blow out the candles…
It is exactly one year ago today that I wrote my first post here. It was about Jerome’s Keywords Plugin, which was a popular plugin for creating tags in WordPress before they became a built-in feature.
The reason I started this blog is because at that time, I was building web sites for clients, but felt that I could not justify creating static sites anymore. I was searching desperately for a solution that would enable me to create sites with a content management system that wouldn’t break the bank, and that I could manipulate and customize without being a programming wizard.
I looked into many open source options, and found that WordPress was easiest to use from the designer/developer’s point-of-view, and from the user’s point-of-view. So my company started building sites on WordPress. As we built, we learned a lot and I felt like we really need a good way to organize the information we were gathering about good plugins and how to use them, themes, and code hacks.
And thus WordPress Garage was born. Between WordPress’ categories, tags, and the search function, I figured we’d always be able to locate the information we need within minutes.
Apparently, others also were looking for this information, and readership grew as well, which is good because it’s a lot more fun to write when you know people are listening.
Birthday presents
In honor of WordPress Garage’s birthday, I have two new presents:
- A WordPress Garage facebook page! If you like this blog, please come on over to this page and become a fan. I’d really like to get to know my readers a bit more.
- The WordPress Garage YahooGroup – I’m on the WordPress Pro mailing list, which is about the most dry and boring list on earth. I suggested that the list become more active, and while people said it wasn’t appropriate for that list, they liked the idea. So, this email list’s goal is to be a place where people can help other people with their WordPress issues. Looking for that perfect plugin? Can’t figure out why your blog is breaking? Join the list and ask!
Statistics and summary
It’s fun to compare my first month on WPG to this last month. Site visits have gone up 1,424%, and pageviews have gone up 841%. Now I get almost 8000 visitors a month according to Google Analytics, and over 14,000 page views. Most of my visitors come from Google Search, with the rest coming from StumbleUpon and other sites. My top referring sites in order of traffic are:
Most popular posts
The most popular posts on WPG at the moment are:
Best WP Garage tips
These posts aren’t necessarily the most visited, but the tips in them are pretty useful:
Most controversial posts
A little bit of controversy adds color to an otherwise boring monologue about loops and plugins. I don’t like to create conflict, but getting people to participate in an active discussion is just fun.
Consumer evangelists vs. lawyers: using “WordPress” in domain names – this is the post where Matt Mullenwegg commented three times. In this post, I argued that WordPress shouldn’t shun blogs (like mine) that use the word WordPress in their domain name, and should rather embrace these consumer “evangelists” who love the product so much that they volunteer their own time to talk or blog about it. After I wrote this post I finished Meatball Sundae by Seth Godin, and he also talks about this idea.
Anyways, Matt and Lorelle didn’t like my opinion, and accused me, or those like me, of “blatant[ly] disregard[ing]…a core tenet of our community,” of being like a scraper, and of legal violations. In the end Matt kind of softened up and he said he’s “thrilled about [me] or anyone who blogs about WordPress.” He said if I want clarification about their policies I should feel free to email or call him. So, mustering up some good ol’ Israeli chutzpah, I called him and left him a message. Despite his generosity, I think this blog is still shunned by the WordPress powers-that-be. Oh well.
Would we use WordPress if there were no plugins? – I just threw out this question to make us think about how valuable WordPress would be on its own. I think it’s value lies in the fact that it supports plugins.
ZDNet says WordPress not clunky, but also not CMS – I referred to an article by ZDNet about whether WordPress is a CMS and sparked a lively discussion.
WordPressGarage is being scraped! I want to stop them…now! – I realized that one particular site was scraping all of my content and republishing it. I threw the issue out to my readers, and got some interesting responses in the comments.
Is WordPress’ security vulnerable at its core? – WordPress is being upgraded all the time because of security issues. Plugins also have constant security vulnerabilities. Is this standard, or is there a problem with WordPress? BlogSecurity.net said there’s a problem with WordPress. Read the post to find out more.
Milestones
- Someone told me that I’m one of the coolest people in the WordPress community! Can you believe it? (No, it wasn’t my mother.) While in the real world I am far from being considered cool (mother with lots of kids who works hard to pay the bills with little time for play), I guess that in the WP community my geekiness is…cool…or something.
- WordPressGarage listed as one of Top 40 Blogs About WordPress!
- I’m sure there was something else I got excited about over this past year, but I can’t remember.
So happy birthday WordPress Garage, and may we enjoy another fun year of WordPress blogging together!
Posted in News & Views | Tags: backup, blogging, CMS, security | 16 Comments »
Tuesday, February 19th, 2008
The WP-Sticky WordPress plugin allows you to easily choose to “stick” certain posts at the top of your blog. This can also be done via code, as I explained in a post a few months ago where I wrote about some code that you can add to your index.php template file that will keep the latest post in your feature category at the top of your homepage. However, both the plugin and the code have advantages and disadvantages.
The coding method has the following advantages:
- By putting all your best posts in one category, you can easily highlight these posts in a number of places, like in the sidebar or on its own category page, and of course as a feature article.
- You can give the feature post its own styling, like a different background color, which helps it stand out even more.
- You don’t need a plugin.
However, this method also has the following disadvantages:
- You need to create a unique category for your feature posts. Sometimes you just want to highlight certain posts without putting them in their own category. Also, your features posts will end up needing two instead of one: “Feature,” and another category that really describes the type of article.
- With the code I gave, the feature post will appear at the top of every main page on your blog. What I mean is that if you click on “previous entries” or something like that at the bottom of the first page of your blog, the feature post will still appear at the top on the second page. This can be confusing to readers who will wonder if they have actually browsed to a new page.
- You need to hack your template file, which isn’t for everybody.
So I decided to try out another option, and settled on WP-Sticky by Lester Chan. The explanation on the plugin page and in the readme file is not clear, but I eventually came across a better explanation here.
After installing the plugin, it creates an additional box on the Write Post page at the bottom of the right-hand sidebar called Post Sticky Status. There, you have three options: Announcement, Sticky, and Normal.

If you select Announcement, that post will stay at the top of your blog forever, or at least until you define another post as an Announcement or change the post’s status to Normal. If you select Sticky, the post will stay at the top of your blog for the duration of the day on which you posted it, after which it will return to its place in the chronological order. This is good if you post multiple posts on one day, but want to highlight one of them by sticking it to the top of your blog.
Update February 20, 2008: Announcements can be styled! Here’s how:
You can style your feature posts as follows:
- Find the line in your index.php file that says the following:
<div class="post">
Note that it may say something a bit different, like it may have a different class name. Basically, it’s the code that appears before all the content related template tags in the loop, somewhere around line 13.
- Replace that line with the following:
<div class="post"<?php if (is_announcement()) {echo " id="announcement"";} ?>>
That code tells WordPress that if the post is an Announcement post, it should have a class of “post” and an id of “announcement.” This way the post keeps the styling of “post” and gets additional styling of “announcement.
- Add the following style to your style.css file:
#announcement {}
Put in the squiggly brackets whatever styles you want. Make the title a different size, color, give it a different background color, even add images like a “Feature” badge.
The disadvantages to the WP-Sticky WordPress plugin are:
You cannot give Announcement or Sticky posts their own styling.
- You need to use a plugin.
WP-Sticky Plugin
Posted in Plugins | Tags: categories | 10 Comments »
Thursday, February 14th, 2008
Blueprint CSS may just be the answer to all our CSS layout woes. Most, if not all, WordPress blog themes use CSS for laying out the design. But as any website or blog developer knows, using CSS for layouts can be one of the causes of early aging, high blood pressure, and sleeplessness.
Blueprint CSS is a CSS framework that you can use to cut down and ease your CSS development time. Here’s what the Google Code page says about Blueprint CSS:
[Blueprint CSS] gives you a solid CSS foundation to build your project on top of, with an easy-to-use grid, sensible typography, and even a stylesheet for printing…
Features:
- An easily customizable grid
- Sensible typography
- Relative font-sizes everywhere
- A typographic baseline
- An extendable plugin system
- Perfected CSS reset
- A stylesheet for printing
- Compressed version
- No bloat of any kind
Here are some more features of Blueprint CSS as listed on the blue flavor site:
- It performs a mass reset of browser default styles.
- It sets up sensible defaults for typography, including font families, header sizes, paragraph styles, list styles, a baseline grid, and more. It does all of this with relative sizes, so that it scales well in any browser.
- It gives you a methodology to use for customizable layout grids. Any number of columns and widths you can dream up is easily achievable.
- It provides a sensible default print stylesheet.
- It does all of these things in ways that work elegantly in most browsers your visitors are likely to be using, including Internet Explorer 6 and 7.

See these links to get an idea of what Blueprint can do:
Sample page built with Blueprint CSS
Demonstration of the Blueprint CSS grid
Demonstration of the typography
Blueprint CSS tutorials and tools:
Blueprint CSS wiki tutorial – a quick tutorial that introduces the files and capabilities of Blueprint CSS.
Blueprint CSS 101 – a great introductory tutorial that explains the benefits and methodology behind Blueprint CSS.
Blueprint Grid CSS Generator – This tool will help you generate more flexible versions of Blueprint’s grid.css and compressed.css and grid.png files. Whether you prefer 8, 10,16 or 24 columns in your design, this generator now enables you that flexibility.
Posted in Tips | Tags: Blueprint CSS, CSS | 6 Comments »
Wednesday, February 13th, 2008
Darren Hoyt, that brilliant WordPress developer and designer, explains how you can publish RSS feed headlines on your WordPress blog with a built-in WordPress function instead of using a plugin.
As Darren says, this code snippet is not intended for scrapers; it’s for people who have more than one blog, or are part of a blogging network, and would like to have their readers exposed to their other blog material.
The necessary code is what pulls all the Planet WordPress feeds into your WordPress dashboard. Darren took that code from wp-admin/index-extra.php and rewrote it into a snippet which you can insert into your theme files:
<?php
require_once (ABSPATH . WPINC . '/rss-functions.php');
// here's where to insert the feed address
$rss = @fetch_rss('http://www.darrensmusicnews.com/feed/');
if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<ul>
<?php
// here's (5) where to set the number of headlines
$rss->items = array_slice($rss->items, 0, 5);
foreach ($rss->items as $item ) {
?>
<li>
<a href='<?php echo wp_filter_kses($item['link']); ?>'>
<?php echo wp_specialchars($item['title']); ?>
</a>
</li>
<?php } ?>
</ul>
<?php } ?>
Obviously, you have to change the feed address on the fourth line to yours. You can also select how many items from the feed should appear.
In the comments, Darren says that you can publish multiple lists of feeds by copying the snippet with several different RSS feeds. If you want to aggregate a bunch of feeds into one single feed that you’ll republish on your blog, he recommends the Easy Blog Networking for WordPress Blogs plugin, which combines a bunch of feeds and republishes them in one list, or Yahoo Pipes.
Another Option from the WordPress Codex
Scot Hacker brings another variation for displaying RSS feeds on a site: the WordPress function fetch_rss. On the WordPress Codex, you can see an example for displaying a list of links for an existing RSS feed, limiting the selection to the most recent 5 items:
<h2><?php _e('Headlines from AP News'); ?></h2>
<?php // Get RSS Feed(s)
include_once(ABSPATH . WPINC . '/rss.php');
$rss = fetch_rss('http://example.com/rss/feed/goes/here');
$maxitems = 5;
$items = array_slice($rss->items, 0, $maxitems);
?>
<ul>
<?php if (empty($items)) echo '<li>No items</li>';
else
foreach ( $items as $item ) : ?>
<li><a href='<?php echo $item['link']; ?>'
title='<?php echo $item['title']; ?>'>
<?php echo $item['title']; ?>
</a></li>
<?php endforeach; ?>
</ul>
Posted in Tips | Tags: content, RSS | 13 Comments »
Monday, February 11th, 2008
Have you ever been working on your WordPress blog’s design, when you refresh the page only to find that it’s decided to revert to the default theme?
This has happened to me pretty often, and apparently I’m not the only one. Mark O’Neill says that his WordPress blog would revert to the default theme overnight while he was sleeping!
He did a search, and found this post on the topic, that explains that this glitch introduced itself in WordPress 2.2. A WordPress moderator on a forum topic related to this issue explained the problem as follows:
The root cause is that Wordpress reverts to default in certain cases where it cannot find the theme. A lot of conditions are known to cause this to happen falsely. For example, if the filesystem is slightly flaky, then there are instances where it may return an error incorrectly, causing Wordpress to reset to default. Another case is where somebody accesses the site at the exact moment you’re uploading a modified version of the theme.
The moderator goes on to say that it’s not a WordPress problem, so they’re not going to try to fix it:
Currently, there is no fix for this problem from the Wordpress side of things, because it’s not necessarily an issue with the Wordpress code. Wordpress is doing what it was designed to do. What’s happening is that Wordpress is getting false error codes and responding to them in unexpected ways.
One of the members on the forum pointed out that the problem only began when they upgraded to WordPress 2.2, and another member, justkristin, said that this avoidance of responsibility was unacceptable:
I have to say that, while I will continue to use WordPress because it is superior to everything else out there, I cannot help but be confused by the assertion that it is not WordPress’ problem. If I drove a car which, whenever I was in an accident, forcibly changed the clothes I was wearing, I would find that to be a problem with the car no matter who caused the accident. How can the resetting to default of a theme be a proper reaction to any server error?
The solution, as discovered by another member, tmuka:
- Rename your theme’s folder to default.
- Optional: delete all other themes from the server.
Posted in Tips | Tags: admin | 7 Comments »