Strip Extra ImageScaler Attribute from Plugin-Generated Code

I am using the ImageScaler plugin for WordPress on a project, and I like what it does, but it adds a non-standards-compliant attribute to images, such as:

<img class="" src="http://www.example.com/imagescaler/generated-image.jpg" alt="Example" width="258" height="234" imagescaler="http://www.example.com/imagescaler/original-image.jpg" />

To strip imagescaler’s imagescaler attribute, add the following into your functions.php file:

add_filter('the_content', 'strip_imagescaler');
function strip_imagescaler($content) {
	$content = preg_replace('/imagescaler="(.*?)".?/s','', $content);
	return $content;
}

How to Display a Random Testimonial or Post in WordPress

Set up a testimonials category — no need for a plugin.

There are a couple of plugins designed specifically for testimonials, but I didn’t want to use them; they use their own databases, and don’t keep with WordPress’ simplicity. If possible, the best way to work with WordPress is to use it’s built-in functionality.

I also wanted to have the testimonials as a category in WP, rather than as a separate plugin. This code will work for any type of category, not just a testimonial.

Here’s how to create a random post item in your sidebar: Continue reading “How to Display a Random Testimonial or Post in WordPress”

How to Tell if Your WordPress Widget is Active

Check your  widget activation & settings

Also, How to Check Plugin Status

Ever wonder if your widget is activated on an external site?

Here’s how to find out.

When you register a sidebar widget, you use code like this:

register_sidebar_widget(array('Name of Widget', 'class-of-widget'), 'widget_function');

If you want to check whether the widget is activated (you may want to for a variety of reasons), you can do it like this (the “class-of-widget” value from above will be used in the code below): Continue reading “How to Tell if Your WordPress Widget is Active”

Get medium image size in WordPress

This is for everyone who’s been trying to find out how to get the medium image size of a post attachment in WordPress:

You’ve got to send the function the ID you’re trying to get the medium images for.

$medium = wp_get_attachment_image_src($picture->ID, 'medium', false);
$med_url = $medium[0];
$med_width = $medium[1];
$med_height = $medium[2];

There are a lot more things you can find out by analyzing wp-includes/gallery.php.

How I fixed WP-DownloadManager 404 errors

Lester Chan's header
I use LesterChan‘s Download Manager plugin, and it’s great. Good interface, simple purpose. 

I recently found out that after upgrading a client’s site to WP 2.5, WP-DownloadManager was no longer working.  I followed the documentation on the plugin website, including resetting the permalink structure, but nothing worked.

For some reason the re-write wasn’t working properly: all the downloads were giving 404 errors.  I couldn’t figure it out, so I dove into the code.  I found the part of the plugin that rewrites the download links, and found the problem. Continue reading “How I fixed WP-DownloadManager 404 errors”

Building a Real Estate Website in WordPress – Part 1

Introducing IDX+, the best WordPress real estate plugin

I am designing and creating a real estate website with WordPress, and I’m going to be writing a few articles that detail how it’s done.  This article will get you started — please leave feedback with any questions or topic requests for the next installment. Real estate using WordPress Part 2 is now available!

A little background — why use WordPress?

I’m working with a Denver company on a real estate website. Their goal is to showcase their listings in an easy-to-update CMS.

I’ve worked with Open-Realty, and — to say it bluntly — it’s a huge pain in the ass.  When you scratch the surface of OR, you begin to realize how cobbled together it is. Customizing the code to work as it should requires a steep learning curve.  The templates are relatively simple to work with, but the administration section is horrible.  The Open Realty user experience is just awful.

WordPress is my CMS of choice currently, and it’s so easy to develop for that I recommend it to many of my clients. Continue reading “Building a Real Estate Website in WordPress – Part 1”

Optimizing a website for search: Google vs. Yahoo! and MSN

Google remains the Search Engine King (Pie Chart)

When I think SEO, I think of Google. Why? Is it because Google’s PageRank system determines better websites? Is it because Google’s advertising options are superior? It’s as simple as this: Google gets better results than any other search engine.

The major search engines often don’t agree

Optimizing websites for search is frustrating sometimes. The biggest search engines are Google, Yahoo!, and MSN. The frustrating part of optimization is the variation between the search engines. The variations in ranking can be huge. I will use Katz Web Design’s ranking information to show some examples:

Google Yahoo! MSN Difference
Denver Web Designer 1 8 3 4
Lakewood Website Design 26 7 298 292
Web Design Denver 27 52 103 66
Denver Web Page Design 20 519 > 1000 Over 980!

So you see, there’s a crazy variation between the search engines that can be frustrating. My statistics show, however, that even a bad ranking in Google is better than a good ranking on any other search engine.

Ranking Update:

Since I wrote this post, my site has come up significantly in search results for the terms listed. As a result, the disparity of the results is much less than it had been. Here are the stats as of November 8, 2008:

Google Yahoo! MSN Difference
Denver Web Designer 3 3 2 1
Lakewood Website Design 359 120 96 263
Web Design Denver 27 11 18 16
Denver Web Page Design 24 2 3 22

92% of my organic keyword search traffic comes from Google

A vast majority of my traffic to my website comes from Google. What about my some of my clients?

Google % Yahoo % MSN % Google % Difference
Client A 83.1 6.6 7 76.1
Client B 85.9 6.73 5.74 79.17
Client C 70.4 20.37 0 50.03
Client D 80.4 8.1 8.0 72.3

These clients have similar ranking placement on Google, MSN, and Yahoo! for many of their keywords. You can see that even so, Google still sends an average of 69.4% more visitors to these websites. Optimizing for other search engines doesn’t have the same return on investment as optimizing for Google does. Google remains king.

What’s your experience with optimizing for various keywords across the search engines?

Exploring and learning: Are you taking alternate routes?

Denver Map

When you first move to a new city, you aren’t familiar with the roads. You buy a map to help guide you, you ask Google how to get you from here to there most efficiently, and you stop and ask people directions.

After you’ve lived in the city for a while, you become familiar and confident. You start to understand the road naming conventions, the north/south corridors that are the fastest, the quickest way downtown from your location.

The more experience you have with the city, the better you understand how to arrive exactly where you want to without running into any snags. But yet, there’s always more to learn.

Like a city, every profession has its own learning curve. Are you exploring past your comfort zone?

Continue reading “Exploring and learning: Are you taking alternate routes?”

Cars and Code – Not all that different

Customizing under the hood

I was talking with one of my clients who is a mechanic, and he was telling me about how he used to do a lot of car customization and performance enhancing, and that he really loved it.He told me that the problem with customizing cars is that when you start tinkering around under the hood, every little change presents new problems that need fixing, and soon, the project becomes unmanageable.

I’ve done my deal of modifying code (check out this custom XHTML osCommerce installation) and let me tell you: it doesn’t pay. My clients generally don’t care about how the site is tableless, CSS/XHTML valid, et cetera. They want to know that it works properly.

WordPress is beautiful and talks sweet to me.

WordPress is my dream in that regard: it’s beautifully coded out of the box so that creating templates is a logical, simple project. They make functions such as is_page() that allow you to simply ask “Is this the page I think it is?,” then continue to make progress. WordPress is my love. I will continue to be her bedfellow codefellow.

Both my mechanic client and I agreed: customizing is great fun, and very personally rewarding in the end. However, it’s a huge pain in the ass, and the rewards rarely (if ever) equal the effort.

How to "Hack" VonageMe™

Integrating Call Me Link into Your Website

VonageMe™ is a new service from the VoIP service Vonage. If you have service from Vonage, you should have a VonageMe account.

How to set up click to talk using Vonage

Vonage uses a simple form to enable the calling feature. Instead of using their form, you can style your own…or you can create an anchor link using the following pattern:https://me.vonage.com/username?fromnumber=12223334444For me, that code translates to https://me.vonage.com/303zachary?fromnumber=13035551212

Three steps to VoIP fun!

  1. Go to me.vonage.com and sign in using your Vonage account login (this is to confirm you have the service).
  2. Fill in their information if you want, but it’s not necessary—you will see why next.
  3. Create a HTML form on your website with a text input with id/name “fromnumber” and the form action as https://me.vonage.com/username, with username being your Vonage username.

The final code:

<form action="https://me.vonage.com/username" method="post">
<fieldset><legend>Call me now</legend>
	<div>
		<label for="fromnumber">Your phone number</label>
		<input type="text" id="fromnumber" name="fromnumber" size="12" />
		<small>( 1 + area code + number ). No dashes or spaces, please.</small>
	</div>
	<div>
		<input type="submit" value="submit" />
	</div>
</fieldset>
</form>


Next steps for even better results

Using simple form validation Javascript, you will be able to weed out people who use dashes and spaces in their phone numbers, or even better, create a script to automatically reformat them. View Update below.

You can try the code out on my website as it’s currently formated. It uses the exact code from above, but replaces username with my Vonage username, 303zachary.

Update:

I’ve used the Adobe Spry Validation Widget to make sure that the phone number is properly entered. Below is the code to ensure proper number formatting:

var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "phone_number", {format:"phone_custom", pattern:"10000000000", hint:"Sample: 13033620451", useCharacterMasking:true});