Bill Weye

Category: Tutorial (page 1 of 2)

Grabbing The Right People — Targeting Your Ads With Thesis And WordPress

One of the most annoying experiences on the Web today is being delivered the wrong ad at the wrong time. It doesn’t ruin my experience, but I’m always shaking my head, wondering why the programmers didn’t do a better job.

I was thinking about that during some redesign around here, then decided to solve a problem: deliver my Thesis affiliate image ads only to people that were reading posts related to the Thesis framework. Personally, I don’t like my site cluttered with ads, but at the right time, in the right place, to the right person, I want the flexibility of including an advertisement.

There are probably many other ways to do this, so if you have something interesting to share, please write a comment below. Now I’m going to show you how I did it.

First, you’ll need to have all your Thesis posts slapped with the same tag. You could do the same thing with categories, but I didn’t. I use the tag “thesis”. That’s how I target the right audience.

We’re going to drop some code into either the custom_functions.php file, or using the time saving plugin Thesis OpenHook, at thesis_hook_after_post. I’ll show you how to do this with OpenHook, but using the custom_functions.php file can be done too, with a little more effort.

Using Thesis OpenHook, look for thesis_hook_after_post and drop the following code in there:

<?php if (has_tag('thesis')) { ?>
<p style="text-align: center;">
<a href=";u=520806&amp;m=24570&amp;urllink=&amp;afftrack=">
<img src="" alt="Thesis Theme for WordPress:  Options Galore and a Helpful Support Community" border="0" />
<?php } ?>


screenshot of Thesis OpenHook interface

See that first WordPress conditional tag there, has_tag('thesis') — well, some people might have tried using the more common, is_tag(), but they would have been wrong. The difference between the two conditions is that one looks for a binary condition — yes or no — while the other, has_tag is looking for a positive result among many possibilities. Trust me, this is the way you want to do it.

After the beginning — <?php if (has_tag('thesis')) { ?> — you can drop in your affiliate code, what ever it may be. Of course, this method doesn’t only work with Thesis affiliate links. You could use Amazon code in their for book reviews, for example. I’m sure you can think of many other applications.

And you don’t have to put the affiliate code at the end of a post. Using Thesis hooks you can drop it many other places, at the right time, for the right person.

Do you have any other suggestions on how to target ads using Thesis? Drop a comment below.

Photograph by Hans Splinter and republished here under a Creative Commons license.

If You Don’t Fix This WordPress Problem Now, You’ll Hate Yourself Later

In 2006, Darren Rowse at the ProBlogger site wrote that more than 200,000 people were still using the default page text that appears when a WordPress blog is first installed. Do you know the words I’m talking about?

“This is an example of a WordPress page, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many pages like this one or sub-pages as you like and manage all of your content inside of WordPress.”

That was in 2006. Today a Google search will pull more than 13 million results for those words. Sad. On my search, on the first page of results, I found a friend’s site listed. I’m embarrassed enough for them, it’s hard to mention what I found.

Part of the problem is that when people start their blogs, write new pages, then never delete the default page that’s created at installation. One other issue seems to be that some people don’t understand the difference between a page and a post, then write posts that should be pages, and never look at the Pages administration tab to delete the default page.

If you’ve installed a WordPress blog lately, double check your default page situation. Please.

Discover why I’m going fixed width on all my Thesis sites (and why you might want too)

I’m going fixed width (pixel based) on all my Thesis sites because I don’t want them looking like just another apple in the Thesis barrel. Now, please read the argument and rationale.

I was having a conversation with another Thesis developer last week, talking about what we liked most and least about Thesis, when I realized that one of the things that bothered me the most had nothing to do with Thesis itself, but the people who used it.  No, the problem isn’t that I personally dislike people who use Thesis.

Many people who use Thesis never get radical and make highly customized Web sites. Look at 100 random Web sites built with Thesis and you’ll probably find 80 of them very “Thesisy”; that is, the sites all have a common look or pattern to them because most of the default design options haven’t been changed very much. To change-up the common Thesis look, people need to learn some new tricks or hire the people that know the tricks. (I’m not going to link to examples of Thesisy sites because that wouldn’t be fair.)

Why is this Thesis pattern of Web design propagating across the Web? There’s a simple explanation, I think. People have the misperception that Thesis is a theme, though it does have some theme features (the design options). Thesis is really a framework (Wikipedia entry for framework). The Wikipedia entry details 4 elements of a framework:

  1. inversion of control
  2. default behavior
  3. extensibility
  4. non-modifiable framework code

By that criteria, Thesis is a framework; however, in addition to a default behavior, Thesis includes default design elements that are too irresistible not to use. If there was a framework purity test, the design options in Thesis would probably be out.

This is why I’m going with fixed width (pixel based) Thesis sites: because I can. And hardly anybody else it doing it. Thesis is a framework; I’ll do the design, thank you.

What do you think? Get it off your chest. Leave a comment below.

Photo by *Kicki* and republished here under a Creative Commons license.

Don’t be just another WordPress Chump

One thing about WordPress drives me crazy: people that don’t change important default settings when they set up a new blog. Here are the 2 most common settings people forget to change: user display name and the tag line “Just Another WordPress Blog”.

Photo by karola riegler photography and republished here under a Creative Commons license.

Do you make these image mistakes with your Web site design?

Yes! Ninety-five percent of Web design is typography. That’s why that other five percent — images and video — is so important. If your design goes screwy with images or video, it’s like a turd floating on the Web page. How can you read the text with that turd floating in the sidebar?!

Since I began working with the Thesis theme, one thing has bothered me: the scaling of images in an em-based design. Along with that, I have one other note about effectively displaying images in your Web designs.

Of course, Thesis isn’t the only theme scaling images in an em-based design, but I’m going to use this as an example. Actually, other than two minor issues, I’m a huge fan of Thesis. Hey, not everything is perfect.

normal size image, not scaled

normal size image, not scaled

Here’s the problem: if you’re working with an em-based design and you’ve got images that are supposed to 100% span a column or header, then you need to also scale those images with an em-based formula, otherwise the images won’t span 100%. There’s no way around it.

Let’s look at this example from the Copyblogger sidebar. The right hand sidebar includes some image links that are scaled to the width of the column using ems. The images are 260 pixels wide, as you can see with the image to the right.

as it appears with em-based scaling

But, look at the image to the left, which is from a screen grab of the site in default size on Safari for Mac OS X. (The same thing happens to a lesser degree using Firefox for Mac OS X.) See the difference? That’s what I see every time I go to Copyblogger. Notice the quality degradation of the image, how the edges are blurry? That’s what happens when images are scaled using ems (or any relative measure for that matter).

How did they scale those sidebar images? Using this rule in the CSS:


li.widget_premium a img {
display: block;
width: 26em;
height: 12.5em;
background: #d4d2c3;


Hey, it’s not my site. They can do what they want, but I think because most Web sites are typographically intense, images that are used should have pop.

What are some other options besides scaling images relationally? You can go with a fixed width layout, then using images that don’t need scaling isn’t a problem. You might also try creating images without scaling and centering them in the column. The only problem is that there might be a lot of space around the images because they aren’t filling the column. Other than that, do you know any other solutions that don’t require em-based image scaling?

Don’t scale images with HTML

I have one last similar note about using images in your Web designs.

Believe it or not, people still use HTML to scale images instead of using an image editing program. At least a half dozen times a week I see HTML scaling of images on Web sites, which then slows down entire pages from loading quickly. You’ve seen what I’m talking about: the page is completely loaded except for some images that seem to be churning away, loading slowly from top to bottom.

I did this on purpose with the image to the right, which is really 1024 pixels wide, though using HTML it’s scaled down to 206 pixels wide using width="206" in the <img> tag (right mouse click and “view image” to see what I mean). The image might look fine, but it’s slowing down this page when it loads. Also, sometimes the image might not look so fine if you haven’t figured out the correct height/width ratio before doing your HTML scaling.

Those are just two issues I see with using images in Web design. Do you have any others? Please leave them in the comments for everybody to learn from.

Photo by thebudman84 and republished here under a Creative Commons license.

How I wrangled Thesis for WordPress in 5 minutes and got a static CSS layout

This brief tutorial will show you how to customize your Thesis theme, changing it from an em based layout (flexible) to a pixel based one (fixed).

If you look at 100 Web sites built with the Thesis theme and WordPress, I would estimate that 98 of them are using the em based layout (the default). That is, the layout is flexible, not pixel based and fixed. I like flexible layouts, whether they’re em or percentage based, but sometimes that’s not the most appropriate design solution for a given project.

It’s pretty easy to build a fixed width Thesis site if you know what CSS rules to change in your custom.css file. There are four steps to change your layout from flexible to fixed:

  1. Set up your column layout in Thesis > Design Options
  2. Copy the “core layout elements” from the layout.css file
  3. Paste the core layout elements into custom.css, adding “.custom” before each rule
  4. Change appropriate em based definitions to px

Those are the basic steps we’re going to take. Let’s get into the details.

Column layout in Thesis

column preferences for

The first thing you’ll need to do is set up your layout preferences in Thesis > Design Options.

First, here’s my obligatory rant about how these preferences are labeled. As of Thesis 1.7, the labels for column widths in the preferences are defined as “pixels”. In fact, you are not entering the pixel width you want, but rather a number that’s then translated into ems using a formula. I’m not going to go on any further, except to say that I explain this problem with more detail in my tutorial, creating a flexible header in Thesis.

Back from my rant … define the column order and widths you want. At this point, the column widths aren’t too important, but you might as well give them the pixel widths you want. The number of columns and the order you want is very important. Define these preferences and save your work.

Copying the “core layout elements”

Now you need to copy the CSS rules that define the layout of your site. There are any number of ways to get these CSS rules; I’ll briefly show you one tool that I use, Web Developer add-on for Firefox. Using that tool you can easily open up all the CSS files. Look under layout.css and find the core layout elements section, then copy all the rules under that block. These are the layout rules for this site in that block (don’t copy these! yours may differ):


/*---:[ core layout elements ]:---*/
#container { width: 87.1em; margin: 0 auto; }
#page { padding: 1em; }
#header, #footer
       { padding-right: 1em; padding-left: 1em; }
#content_box { width: 100%; }
   .no_sidebars { background: none !important; }
#content { width: 58.1em; float: left; }
    .no_sidebars #content { width: 100%; }
    .post_box, .teasers_box, .full_width #content_box .page
           { margin: 0 2.1em 0 1em; }
    .full_width #content_box .page { width: auto; }
    .no_sidebars .post_box { margin: 0 1em; }
    .teasers_box { width: 55em; }
       .teaser { width: 26.5em; }
#archive_info, .prev_next
     { padding-right: 2.1em; padding-left: 1em; }
#sidebars { width: 27em; border: 0; float: right; }
    .sidebar { width: 100%; }
#sidebar_1 { border: 0; }
    .sidebar ul.sidebar_list
        { padding-right: 1em; padding-left: 1em; }


[Beware that the formating of the CSS code on this page will look different from what you’ll find in the layout.css file. It’s just the word wrapping that’s different, otherwise the code is correct.]

Did you find your CSS code? Great, copy it and we’re onto the next step.

Paste core layout elements into custom.css

Now that you’ve copied the core layout elements, we’re going to paste those into custom.css and add “.custom” before every rule, like this:


/*---:[ core layout elements ]:---*/
.custom #container { width: 87.1em; margin: 0 auto; }
.custom #page { padding: 1em; }
.custom #header,.custom  #footer
       { padding-right: 1em; padding-left: 1em; }
.custom #content_box { width: 100%; }
   .custom .no_sidebars { background: none !important; }
.custom #content { width: 58.1em; float: left; }
    .custom .no_sidebars #content { width: 100%; }
    .custom .post_box, .custom .teasers_box,
    .custom .full_width #content_box .page
           { margin: 0 2.1em 0 1em; }
    .custom .full_width #content_box .page { width: auto; }
    .custom .no_sidebars .post_box { margin: 0 1em; }
    .custom .teasers_box { width: 55em; }
       .custom .teaser { width: 26.5em; }
.custom #archive_info,.custom  .prev_next
     { padding-right: 2.1em; padding-left: 1em; }
.custom #sidebars { width: 27em; border: 0; float: right; }
    .custom .sidebar { width: 100%; }
.custom #sidebar_1 { border: 0; }
    .custom .sidebar ul.sidebar_list
        { padding-right: 1em; padding-left: 1em; }


Pretty simple. Now we move onto the heavy lifting in creating a fixed width layout.

Making changes to em based definitions

We’ve pasted our code into custom.css, added “.custom” to all the rules, and now we need to change most of the “em” definitions to pixel definitions. A couple of notes here: 1) I’m using this site as an example, so what you’ll need to change will differ; and 2) always test your site on multiple browsers and operating systems.

Let me show you the changes I made to the above code for this site, then I’ll explain those changes to you. Here are the fixed width CSS rules for this site:


/*---:[ core layout elements ]:---*/
.custom #container { width: 930px; margin: 0 auto; }
.custom #page { padding: 10px 0; }
.custom #header,.custom  #footer
       { padding-right: 0; padding-left: 0; }
.custom #content_box { width: 100%; }
   .custom .no_sidebars { background: none !important; }
.custom #content { width: 550px; float: left; }
    .custom .no_sidebars #content { width: 100%; }
    .custom .post_box, .custom .teasers_box,
    .custom .full_width #content_box .page
           { margin: 0 10px 0 0; }
    .custom .full_width #content_box .page { width: auto; }
    .custom .no_sidebars .post_box { margin: 0 1em; }
    .custom .teasers_box { width: 545px; }
       .custom .teaser { width: 270px; }
.custom #archive_info,.custom  .prev_next
     { padding-right: 2.1em; padding-left: 1em; }
.custom #sidebars { width: 360px; border: 0; float: right; }
    .custom .sidebar { width: 100%; }
.custom #sidebar_1
   { border: 0; background-color:#f5f5f5;
border: 1px solid #ddd; margin-top: 2em; }
    .custom .sidebar ul.sidebar_list
        { padding-right: 10px; padding-left: 10px; }


First, note that I didn’t change all of the rules (the rule changes are highlighted in red). For example, I didn’t change any of .no_sidebars rules — it wasn’t necessary because at this time I don’t have any such pages, but when and if I do, I can easily make those changes in my custom.css file. Also, there are some rules that weren’t necessary to change, but they were in the same block of code so for the sake of simplicity I grabbed it all.

The trickiest change to make is the first, the #container width. That number is the product of the addition of either 2 or 3 numbers (in this example 3 numbers are added). #container is the width of your page with all the content inside, so we’ll need to add the width of your main post section and the sidebars, plus (!) any additional margins we add. In this example I added

#content (550px) + #sidebars (360px) + ul.sidebar_list (20px) = #container (930px)

The last number I added, ul.sidebar_list, is the left and right margin of the sidebar list, which pulls it away from the background and border I styled.

I’m not going to cover all the changes I made above, but let me draw your attention to a few details. On the #content_box .page I needed to take out all the margin space except for the right margin, which gives me space next to the sidebar. For the .teasers_box, that should either be the same or a little less than the #content (mine is 5 pixels less, just in case); and the .teaser should be half or less than the .teasers_box.

Otherwise, the changes should be self explanatory. If you have any questions, please leave them in the comments and I’ll try my best to answer them.

I hope you found this tutorial useful. If you have any improvements to suggest, please leave them in the comments.

Photo by ctankcycles and republished here under a Creative Commons license.

Get the most out of Google Analytics and Thesis for WordPress

There are many things you can do with Google Analytics, WordPress, and a little Thesis theme magic, but really the tips I’ll go over here don’t require Thesis. Most of what you’ll learn here can also be applied to just about any WordPress theme with a bit of customization.

Before I lay the tips on you, let me point out that there’s a useful plugin called Stats. Don’t let the name fool you, the plugin is for self hosted ( blogs. In addition, you might also want to use Popular Posts (you need Stats for this plugin); the Popular Posts plugin gives me that widget on the sidebar of I like using the Stats plugin because it provides a quick, rough idea in real-time of my blog traffic, which isn’t Google Analytics’ strong suit.

Tools you’ll need

There aren’t many things you’ll need to improve the data collection from your blog using Google Analytics. Start with these plugins:

This tutorial assumes that you have a Google Analytics account, have it set up, and have some very basic understanding of how it works. This isn’t a tutorial about how to use Analytics, it’s to show you how to capture customized blog traffic and action data with Analytics if you’re using a Thesis theme (or not).

Tip 1: Installing your Analytics code

We have to start with this one if you’re using the Thesis theme: under Thesis > Site Options > Stats Software/Scripts never add your Google Analytics code here (I don’t know anything about Mint or other stats software). Never. I know what the fine folks at DIY Themes say; still, don’t install your Analytics code using their method. If you do, then Analytics will also be tracking page views of your traffic on the site, which doesn’t make much sense. To get the most accurate site traffic data, you shouldn’t be tracking any of the administrators, editors, or authors on the site (or at least segment that traffic, which you can do with a Analytics plugin). This is one reason you’re going to install the Google Analyticator plugin, to cut out all of undesirable traffic from your stats.

Tip 2: Getting the most out of your Google Analytics plugin

Before we start customizing the theme, let’s get the most we can out of our Analytics plugin. I’m going to reference Google Analyticator, but for the most part all of the WordPress Analytics plugins have the same features.

As I said above, you do not want to track logged-in users, so make sure that feature is turned off. There are now more granular options in the plugin for logging specific user roles, such as premium subscriber or subscribers. This is a nice feature.

Enable both “event tracking” and “outbound link tracking”. When visitors click on outbound links or downloads, those are events that should be tracked.

If Google Adsense ads are on your site, you should definitely enter your account ID (make sure your Adsense and Analytics accounts are linked). This is going to give you much more information in Analytics, such as what pages are generating the most ad clicks. If you have one page that’s outperforming all the others, you can study the page for the reasons the ads are performing well and try to replicated that formula on other pages.

Tip 3: Using tracking codes for site visitor behavior

Links good for event tracking

Tracking the behavior of visitors to your site might be important. For example, wouldn’t you like to know every time someone subscribes to your RSS feed? That’s an event to be tracked. If you’re using the Thesis theme that may be tricky, depending on what you’re looking to track. In this example, I’ve developed a RSS subscribing widget that fits my needs, that includes other things like a YouTube, Flickr, and LinkedIn links (in another tutorial I’ll go over my “stay in touch” widget). I can go in there and manually edit all those links. First, the code you’ll need:

<a href=""
onClick="pageTracker._trackEvent('category', 'action', 'optional label');">Anchor Text</a>

What you need to do now is customize the variables of the event: category, action, and optional label. For example this is how I might track people clicking on my LinkedIn profile link:

<a href=""
onClick="pageTracker._trackEvent('intouch', 'followlink', 'linkedin');">Anchor Text</a>

Many people get confused about what variables that can or should use when tracking events. The short answer is, there is no wrong answer; it’s totally up to you and what kind of data that you want to gather. With that said, you want to be smart. In this example, my logic was pretty simple. For the category I used the name of the area where I’m tracking links; any tracking code under Stay In Touch will have the category of “intouch”. The action I was tracking was following links, thus I used “followlink” (note: I will probably use this action with other links on the page because it isn’t category dependent). Lastly, the label is “linkedin”, which is self explanatory; this label should be the one unique variable that you use.

These variables are important because they’ll help you create some great reports in Analytics. In this example, I can create reports that tell me all about the Stay In Touch area (category), or create reports about one specific action on my site (followlink), or I can combine “followlink” and the label “linkedin” (imagine I was tracking multiple “linkedin” links on my site) and see in total how many people were clicking on my LinkedIn profile link. You could go wild creating customized reports if you capture the right data.

Tip 4: Advanced data capture

Let’s continue with the same example, my “stay in touch” widget. But now I want see how effective that widget is on my home page, compared any other page on my site. I’m thinking that even though my home page gets the most traffic, for some reason the widget’s not performing as well as when it’s on a single entry page. That’s the premise for this tip.

"stay in touch" with widget logic

Given this problem, what I need to do is create two “stay in touch” widgets that are the same except for the tracking code, then serve these different widgets onto the appropriate pages (home page, then all other pages).

To begin, we need to install the Widget Logic plugin I mention above. There are similar plugins that purport to be simpler, but I don’t find them such because their user interfaces are convoluted. With the Widget Logic plugin and a little knowledge about WordPress conditional tags, you can do some clever things.

If you look at the image to the left you’ll see my “stay in touch” widget with the Widget Logic field highlighted. That’s where you enter the conditional tags (this example is simple; using PHP you can get pretty elaborate). We’re going to create two of these widgets, one that has is_front_page() (is the front page) and the other with !is_front_page() (is not the front page) in the Widget Logic field.

Next we want to make changes to our tracking code, leaving everything else untouched for our experiment. For the home page (is_front_page()) I’ll use this as the tracking code:

onClick="pageTracker._trackEvent('intouchhome', 'followlink', 'linkedin');"

and for all other pages (!is_front_page()) I’ll use this tracking:

onClick="pageTracker._trackEvent('intouchothers', 'followlink', 'linkedin');"

Notice how I changed up the category? Now in Analytics I can create reports comparing the two.

Of course, this is a simple example of what you could do using Widget Logic. If you’ve done some other cool things, please drop a note in the comments.

I’ve got many other ideas for Thesis/Analytics tutorials. What do you think would be most useful?

Creating quick watermarks in iMovie ’09

You can find a lot of tutorials on how to create watermarks in iMovie ’09. Most of the tutorials require you to use an alpha image (transparency) like a png or gif file. My method is quick and easy, and doesn’t require creating an image.

Watch how you can create a quick watermark for your video in iMovie ’09:

Give birth to 10 WordPress blogs in 30 minutes

If you need to roll out multiple WordPress blogs, this article is for you. I’m going to show you how to set up 10 blogs in 30 minutes, or I’ll eat my hat! Not only that, but we’ll set them up with a standard group of plugins, extra search engine optimization, and security hardening to prevent hacking of your blog.

Here are the 4 basic steps:

  1. prepare the WordPress and plugins upload
  2. set-up your databases
  3. configure your wp-config.php file
  4. WordPress install process

Let’s get started.

Preparing a WordPress installation archive

First, download the latest version of WordPress (WP). Here’s the clever part of this step: because of the WordPress automatic update, you’ll never have to do this again. As I write this WP is at version 2.9.2, but when the next version is released and I want to install a new blog, I’m going to upload the older version (that I’m going to customize) from my computer. After I upload version 2.9.2 I’ll upgrade by going to Tools > Upgrade.

Now that you’ve downloaded and opened the zip file to your computer, let’s customize a couple of things. You’re going to need a plain text editor like Notepad (Windows) or TextEdit (Mac) to create four files. Make sure it’s a plain text editor that can create asci text files, otherwise you might have problems.

The first text file you create is named robots.txt. This file is where you’ll include the rules for search engines that index your site; if you restrict the search engine bots from indexing extraneous files on your site, it’s better for the good content on your site. These are the rules for your robots.txt file:


User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Disallow: /trackback
Disallow: /feed
Disallow: /comments
Disallow: /category/*/*
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Disallow: /*?*
Disallow: /*?



See that last line? That tells search engine bots where you’re site map is; we’ll get to that in a moment, but for now just change the domain to yours. Save the robots.txt file into the WP directory that you unzipped.

Next we’re going to create the .htaccess file. This file can do many things, among them it includes the rules for your permanent link structure (found under Settings > Permalinks). Add the following rules to your .htaccess file and save it into the WP directory.


Options All -Indexes

# protect wp-config.php
<files wp-config.php>
Order deny,allow
deny from all

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]


wordpress directory

Highlighted files we'll be working with

First, note that depending on how the preferences are defined on your personal computer (Mac or Windows), you may or may not be able to see any file that begins with a period, as in “.htaccess”. Because of this, it’s probably best to not include the period when you save the file into your unzipped WP directory; you can add the period (don’t forget) after all the files in the WP directory are uploaded to your server using FTP (or better, SFTP). Also, after uploading  the file, removed the “.txt” so that the file’s name is “.htaccess”.

Looking back at the code I gave you for the .htaccess file, let’s review it from the top. To begin with, the first rule tells the server NOT to display the contents of any directory that doesn’t include any type of index file, such as index.php or index.html. This is for the security of WordPress and your server.

The next rule is also for security, and depending on your server may be redundant, but nevertheless won’t hurt anything. The rule allows access to your WP configuration file only from your server.

The last rule in the .htaccess file is for better tracking of statistics if you’re using something like Google Analytics. Did you know that “” and “” are two different things for search engines and site stats applications like Analytics? True. That means if you don’t force all your site visitors to one or the other domain URL, you may only be tracking some people. So, that last rule forces the server to always add “www” to your domain URL.

The last two text files you’ll create are “sitemap.xml” and “sitemap.xml.gz“. These are empty files that’ll be used by a plugin we’ll talk about soon. Don’t worry about them, though note that you might have to change their permissions using your FTP program in the future, depending on how the server is configured. The plugin will throw an error and tell you if that’s the case. No worries!

Gathering your WordPress plugins

Part of what makes the process I’m showing you so efficient is that you’re doing preparation that doesn’t have to be repeated in the future. So, gathering your plugins first and putting them into the ‘wp-content/plugins’ directory (unzip the plugins and delete the .zip files) will make your life easier. It makes sense because, at least for me, with minor exceptions, I generally always use the same plugins across many different WP Web sites.

You can develop your own set of go-to plugins (favorites), but here are the ones I recommend:

Again, this is the set of plugins I commonly use. Your set might be different. But, as with the easy updating of WordPress, the same is true with the plugins. If after uploading the WP directory you see that some of the plugins need updating, no problem: go to Tools > Upgrade and update all the plugins in one shot. Finished.

Set-up your databases

Because there are so many variations on how to set-up your database, depending on your server, I’m not going to get too deep into the details. I will note one thing: use strong passwords and unique database and user names. Make them a little weird, for security sake. Other than that, copy down the database info and let’s move on.

Configuring the wp-config.php file

This is straight forward, though let me recommend two things you should do. Under “Authentication Unique Keys” always make the effort to get your keys from and copy them into your wp-config file. Always.

Second, under “WordPress Database Table prefix” always change the default “wp_”. This is for the security of your database. Never use the default. I always throw some random numbers in there like this: “w865p_”. It’s another small step for security, not using default or easily guessed values in your blog configuration.

Installing 10 Blogs Process

You’re ready. You’ve created a customized WordPress directory that you can upload multiple times. Look at that image above of the directory; does yours look like that? It should.

With your first database set-up and the wp-config file squared away, start uploading to your server. While that’s happening, on your other domains create your the WP databases, copying down the corresponding information. After the first upload is finished, move onto the second domain by editing the wp-config file again with the new information, then save. Upload to the second domain. And so on.

See how easy it is to roll out many WordPress blogs once you have a customized directory set up?

If you have any other tips that should be included in this tutorial, leave them in the comments. I can always learn something new.

Photo by Scott Beale (Laughing Squid) and republished here under a Creative Commons license.

How to use Craigslist and Google Reader for power searches (and getting free stuff)

Have you found discovering good deals on Craigslist more trouble than is worth the effort? If you know exactly what you’re looking for, the search works great. But returning day after day is a pain. What if you’re looking for good deals on stuff, but aren’t sure what you’ll buy?  Let me show you how I scan hundreds of ads and laser in on what interests me using one tool and a couple of keywords. Plus, I’ll show you how to find piles of free stuff (could be junk).

I use Craigslist 3 different ways, every day. I look for free things, scan everything being sold in my town, and I’m usually looking for a couple of specific things. I do all of this without going to the Craigslist site; the information just comes to me.

Keywords and free stuff

curb alert - click to enlarge

Savvy users of Craigslist with things they want out of the garage or basement put their crap (in the eyes of some) curb side with the sign “free stuff”. I’m sure you’ve seen these piles. Here’s where Craigslist comes in: you then post an ad with the keywords “curb alert” in the title. Give a basic list of things people can find, your address, and the time you left the things curb side. Believe me, no matter the backwoods road you may live on, people will come and pick through your pile.

Do you want to find these piles of free things? Go to your local Craigslist and search for “curb alert”. The ads will come flooding at you.

Want to keep an eye on what’s being sold in your city or town? Search for your town name — mine’s “Sunderland.”

Are you looking for something specific on Craigslist? Search for “dumbbells” (one of my recent searches).

I probably haven’t told you anything you didn’t know already, so let’s start cooking with gas and push all this information to you automatically.

Using RSS feeds to track searches on Craigslist

Google Reader - click to enlarge

Enlarge the above photo to the left and you’ll see that I circled the orange “RSS” link. You’ve probably seen these before on sites all over the Web; if you didn’t know, that stands for Really Simple Syndication (Wikipedia). This is the tool we’re going to use to get the custom Craigslist searches delivered to you. After doing your custom search, at the bottom of every page, you’ll find that RSS link. The data inside that link will update in real-time; whenever a new ad is posted that falls into your custom search, your RSS link will also update. Simple!

But before copying that RSS link, you need a tool that can process it and output the data into a format your eyes can read. I use the free Google Reader software, but there are many other tools. You can Google “rss reader mac” or “rss reader windows” or “rss reader web” (for Web based software like Google Reader). Find your RSS reader, set it up, copy your Craigslist RSS link, then “add subscription”.

The image to the right is of my “curb alert” RSS feed inside Google Reader. Notice the second ad? They forgot to include their address so people could pick up the free stuff. That’s a common mistake.

Are you overwhelmed? I hope not, because in the long run you’ll save a lot of time and money.

If you have any other Craigslist/RSS tips, please leave them in the comments below.

Photo (CC) by Kevin Dean and republished here under a Creative Commons license.


Copyright © 2019 Bill Weye

Up ↑