Web and WordPress Development
(678) 694-1709 // Email Us

Stupid WordPress Tricks

To totally bang home my love for WordPress I wanted to share a nice page that breaks down a lot of useful expansions on the basic WP functionality: Stupid WordPress Tricks

There’s a lot there, in fact there are 76 tricks to peruse. Most of it is somewhat technical as far as how to implement it, but I wanted to share because sometimes examples of what you can do with a tool gives you that “Aha!” moment to really add on some cool stuff to your own projects.

So peruse that list. Find some cool stuff to do, and know it can be done so you can ask for it.

One thing I think I may do with that list is show examples of how to use that added functionality in your own project. First up Meta Descriptions without a plugin. This is a pretty easy one, and you can see it in action on the LegalOut.com site that I set up in WordPress. Outside of just the meta description we set up several custom fields to display different content on different pages.

I’m definitely looking forward to pulling a lot of added functionality ideas from this list.



Ordering lists, UI example

jQuery is definitely my javascript library of choice.

Easy to use and you can spit out awesome stuff pretty quickly and easily.

My latest conquest is drag and drop ordering. Basically what I wanted to do was have two lists. Then you can drag options from one list to the other, and order items within each list.

Here’s a demo of the drag and drop functionality in action

Originally I built this to use in a WordPress plugin I was writing. The point would be to give users some options and let them order the options they selected.

The nice part of this is what goes on behind the scenes. When a user moves an item around (either from one list to the other, or within the list itself to reorder things) the code fires off an ajax call and stores/updates the list in a database.

This is the pretty basic instance of this functionality though. The plugin comes with a lot of options that you can use to really customize the user experience.

Some other options you have is triggering an event (an alert, popup, changing colors on something, etc.) when a person selects an item, when they drop the item, when they put one item above or below another item (before or after they drop it there, warnings anyone?). It’s a nice way to give a lot of feedback to the user as they are interacting with the page and the lists.

And the effects don’t have to stop there. By re-ordering a list on one part of the page could effect layout or content or any other number of things on a page.



A Constant Contact “Case Study”

Yeah I put case study in quotes. Not sure if this really qualifies as an official case study, but definitely worth a post.

Recently did a quick job with a client to update some of their mailing lists.

In a nutshell they needed some custom data added for each contact. The data was created using an algorithm provided by the client, but relied on some unique information from each subscriber.

So the process in pseudocode:

  1. Connect to Constant Contact’s API
  2. Get all of the contacts in a specific list
  3. For each contact get some of their information such as the user id, email address, etc.
  4. Build a string based on this data
  5. Update the contact’s information in Constant contact with this new data

Simple process, but a nice challenge.

Here are a few fun facts I learned:

  • Constant Contact returns its contact data in paged lists. So you can’t just ask for all of the contacts in a specific list and get one result set. You have to ask for each page. Yay recursive-ness.
  • There are limits to how many characters you can put in a field. Since the url that got built didn’t really fit logically in any of the provided fields I decided to use the custom fields CC provides. Fun fact: you can only put 50 characters in each custom field.
  • From the sending side of things, Constant Contact only allows you to enter subscriber fields into an email if the email is XHTML. And you must have valid XHTML or no dice on even getting the email out of draft stage.

All in all it was a bit frustrating, but successful. Which adds up to a fun programming day. And I got this nice little code sample I can post for you guys which includes a PHP class provided by Constant Contact, and my own custom code to use that class to do stuff to subscribers in a list.

If you’re interested in the code you can check it out here: download Constant Contact Class and case use files



Your system will fail

Two jobs ago (a lifetime it seems!) I worked with this great programmer who came from a job with the military. The Air Force to be exact. His job was to maintain a system that managed inventory for parts for aircraft. Seems like a simple system, but when he got into the depth of the inventory it blew my mind. They tracked everything down to each nut, each bolt, exactly where each part was on the aircraft, it was amazing the detail they had to keep track of.

The main reason for all this detail was the massive amount of redundancy in the construction. Basically if you’re flying into enemy territory and start taking fire you don’t want a bullet or shell to hit the wire that links the joystick to the wings. Or any wire for that matter (turns out they’re all pretty important) . So you put the wire in a place that has the lowest percentage of being hit.

But there’s still a chance (even small) it could get disabled. And when millions of dollars of aircraft and at least one human life are at stake, you want to get as close to 0% as possible. So you add in another wire that does the same job in a different place. Just in case.

But there’s still a chance right? So you add another wire in another spot.

The end of the story is, there are several redundant wires, nuts, bolts, hardware, software, everything. All in different spots. All to back up the other. All to make sure that if one fails the plane doesn’t fall out of the sky.

And why not? If one little wire is the difference between life and death, and there’s room and time and money to put it in, why not?

Luckily Twitter does not work for the military

A less dire example (and the point of this rant) is Twitter. For me the twitter service is sketchy at best. I set it up to get the tweets from the people I want to hear the most directly on my phone. The rest I monitor through the web or rss.

It rarely works 100%.

Case in point, this morning I got an email from twitter about a direct message from someone I follow. It was about some potential work. Even though I have my account set up to send his tweets to my phone I never got the message that way. I went to my feed online (and rss) but since it was a direct message I didn’t see the notification there. Luckily I’m a big fan of redundancy so I have direct messages sent to my email. Crisis averted. And luckily so because the work that came from it looks to be a good gig, and has tons of upside for a future working relationship.

The question is, does your web site or application have that redundancy? If someone is trying to contact you, do you have fail safes in case one way doesn’t work? Will it lose you money if it fails? Do you give your users the opportunity to be paranoid, sometimes justly?

If not, maybe now is a good time to check out your processes and add in that extra wire.



Latest Posts

Launchfest

It seems like February has been the month for launches. And it’s been keeping us busy.

Not just launches with new sites, or the final touches on the standard web development projects, but launches for a lot of our partner’s personal projects. [More]

Using jQuery to make your designs more interactive

Most of my work entails taking flat Photoshop files and turning them into functioning interactive web sites. One of the bigger issues is I usually don’t know what the page is supposed to actually do. Falling back on a few years experience helps, and some stuff is pretty obvious (click here, go there), but most of the time I’d much rather be lazy and have someone just tell me what it needs to do. [More]

Paper Canopy is a Web development shop specializing in Web development, database development, application development and WordPress integration. We're not designers. We're coders with a design eye. We code XHTML/CSS, Javascript, PHP, Classic ASP, MySql, MSSQL, Access, and .NET. Learn more about us >>