Lifeworks Consulting: Neurofeedback Coaching

A professional service website gets a fresh new look that reflects the business.

Lifeworks Consulting, in Northern Virginia, came to us with a typical small business problem. They thought they could just pull together a website usually a standard WordPress template, and weren’t happy with the results. They wanted something more professional that really represented their business. They had another common problem of service professionals: no real “branding” on which to base a website. So we started by working on the branding, the look and feel, and how to really explain the service and engage potential customers. Although this is a relatively simple site, it is effective, professional, and reflects the business.

Full homepage.

Full homepage.

The Fitwit Foundation: Empowering Youth through Fitness

A vibrant, content rich website for a non-profit.

The Fitwit Foundation, based in Atlanta, GA, is a non-profit dedicated to offering free fitness and character development programs to teens.  The foundation wanted a new website to reflect their brand, showcasing the work they do, and inspiring others to donate and get involved.  Working closely with the director to realize her vision, the website is now bright, cheerful and interesting, allows for easy online donations, and features the kids in a starring role.

Gabrielli LaChiara: Event Management, Social Community

Gabrielli LaChiara is a Massachusetts based counselor and teacher specializing in healing and transformation for both individuals and institutions. The features of Gabrielli’s new website include event booking and management using Event Espresso, and a customized Buddypress installation to provide social networking and community features and allow her to serve custom on-line content for students of the various classes that she teaches.  Buddypress Group features are used to serve the right content to the right students.  Site is fully responsive and mobile friendly.

As part of the website design, we also provided a logo.

1 Gabrielli-LaChiara

Make your posts look good on Facebook: Open Graph tags

wordpressfunYour Open Graph tags determine how your website looks when people post a link to it on Facebook.  It also determines how the site looks when you display your blog/news posts on your Facebook page.  I have mixed feelings on whether a Facebook page for your business is really worth it (hint, it totally depends on what type of business you have) but as part of the redesign I set up a new Facebook page for Dabbled Studios, and blog posts here will show up there.  So when they show up, they’d better look good, right?

If you want to be sure how your site pages/posts look to Facebook, you can use the Facebook Debugger.  Just paste the URL to a post, or a page, and click the Debug button, and you can see your site the way facebook sees it.  If you have a WordPress site, it generally won’t look too bad by default, by I wanted to make sure my featured image was the image shown (rather than whatever FB picks!), and generally make sure my posts and pages looked how I wanted them to look.

As part of the site redesign, I pulled all my Open Graph settings into a function.  The code I used is commented below.  You can put this in your functions.php file, or in a plugin, if you’d like to use it.

function insert_opengraph() {

	$current_category = single_cat_title("", false);  //get the category name if it's a category page

	global $post;
	setup_postdata( $post );  //get the excerpt function to work outside the loop

echo '<meta property="og:site_name" content="'. get_bloginfo ( 'name' ).'"/>'; //set the site name

//treat the front page, post/pages, and archive pages differently
	if ( is_front_page( )  ) {    

    $excerpt  = get_bloginfo('description');
	 echo '<meta property="og:title" content="' . get_bloginfo ( 'name' ) . '"/>';
        echo '<meta property="og:type" content="website"/>'; 

} elseif (is_singular() ){ 
    $excerpt = get_the_excerpt();
	 echo '<meta property="og:title" content="' . get_the_title() . '"/>';
     echo '<meta property="og:type" content="article"/>';
     echo '<meta property="og:url" content="' . get_permalink() . '"/>';
} else { 
    $excerpt  = get_bloginfo('description');
	echo '<meta property="og:title" content="' . $current_category . ' Archives"/>';
	echo '<meta property="og:type" content="website"/>';

		echo '<meta property="og:description" content="'.$excerpt.'"/>';

//get the featured image, and if not, then get a default image. be sure to set the url.
		if(!has_post_thumbnail( $post->ID )) { 
		$default_image=""; //default
		echo '<meta property="og:image" content="' . $default_image . '"/>';
			$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium' );
			echo '<meta property="og:image" content="' . esc_attr( $thumbnail_src[0] ) . '"/>';

add_action( 'wp_head', 'insert_opengraph', 5 );  //insert into the header

I used snippets from several sources for this code.

Website Redesign: The new logo

One of the first things we wanted to do with the redesign was fix up the logo.

The old logo had basically just evolved from a pure text logo; it wasn’t something that I’d spent a great deal of time on.

Some old iterations:



So the new logo needed to look a little more intentional, plus it needed to fit with the new website.  I wanted to keep the dandelion, but I’d never really liked the way it was just stuck in the middle of the words.  The other thing I wanted to do was to have a small logo that could sit at the top of the website, and this one did not really work well at a small format.

I’m still playing around with this, as I need to work a bit on how it functions in pure black and white, but rather than let perfect be the enemy of good, it’s being released to the wild with this redesign launch.  I like that the box (shown in a sea blue here) can be done in any color in my website palette.

So by itself (the transparent background is indicated by the grey and white check):


With the name:


Wide Full text version:


Black and White only version:


Designing the new DS website for 2014…

What do they say about the cobbler’s kids having no shoes?  Well, the Dabbled Studios website was looking a bit dated, and wasn’t as easy to keep updated as it should have been, so it was definitely time to squeeze in an upgrade and a bit of a facelift.

Some requirements:

  • Freshen the Logo – the old logo was difficult to read a small sizes, and was basically a text logo with a dash of dandelion.
  • Keep the Dandelion – The dandelion photo (used as a site background) and the dandelion image was definitely branding that we wanted to keep.
  • Have a little fun with the design – we do web design, not corporate accounting.  There was no reason not to be a little creative.   Related: have some fun with CSS3.
  • Be responsive – The old site was not mobile friendly or responsive… that just wasn’t on the radar several years ago when it was designed.
  • Make it easier to update the portfolio with new projects.  Business would get busy and maybe all we’d have time to do was stick up a blog post about a new project completion.  But that project wasn’t making it to our recent projects page.
  • Include some case studies, or at least more extensive writeups, on some featured projects.
  • Create a new Facebook page.

In the next several posts, I’ll talk about what we’ve done, and where we still need to go.

Shannon Goines, Artist

Artist Portfolio site with casual Southern style.

Shannon Goines is a talented Atlanta artist, whose work can be found in many homes and galleries around Atlanta and the South. Shannon wanted a portfolio website that would professionally showcase her style, with a focus on her paintings.


Dharma Boutique: E-commerce Site on the BigCommerce platform

Dharma Boutique is an online shop specializing in fair trade goods from Asia.  The shop was built on the BigCommerce E-commerce platform, and features a rotating slideshow, plus an extensively categorized selection of merchandise



2013 was a busy year, and I neglected to post some of the cool projects that were completed in 2013!  Without further ado, flip through this slideshow to see a few of them:

For more on each of these:

Beverage Superstore of Grayson: A new site for a new store

New Website for a new location: Beverage Superstore of Grayson

Beverage Superstore was opening a sister location in Grayson, Georgia, and needed a new website. Although the original locations had a website, it was dated and difficult to maintain. We took this opportunity to update the branding, design a new website that was as fresh as the new store. Features a rotating front page specials section, as well as Facebook page news integration prominently displayed on the front page. New branding was extended to a new mailing list (using Mailchimp) as well.

A Brand New Red Rocket Farm! (Art, Animation, and Webcomic site)

Red Rocket Farm is the main site for Jason Thomas, artist, creator and animator of Cradle Me Sky, and author of Free Drawings for Total Strangers. This site features Jason’s wonderful artwork, rotating front page billboards highlighting content throughout the site, and a Cradle Me Sky subsite. Our first stage of this project was simply to build the Cradle Me Sky site. Phase 2 was just completed, adding the main Red Rocket Farm site, as well as a webcomic-like section for Free Drawings for total strangers, and the Farm Blog.



Using the WordPress Media library to store images to be used in multiple posts.

One of my new years resolutions is to start sharing more WordPress code tips here, so here’s one!

I’m working on a “Customer Portal” for a landscaper client.  One of the features is using the wordpress Media Library to store photos of various plants, including care information which would be stored in the Description field of the image.

This way, a collection of plants could be displayed in a single post for the customers review, and she can use the plants over an over again in different communications with customers.

There were a couple of things I had to do to make this workable for her, and I thought sharing here would help others!

For one thing, reusing the images multiple times means you can’t easily use the built in WordPress Gallery functionality, since the images are NOT attached to the posts (they are just Inserted it them).

We also wanted to display the description in the image caption.

Finally, this needed to be very easy for the client to do, and fast.

Improve Usability of the Image Insert functionality in WordPress

Since we are using images that may or may not be attached to the posts (some may be uploaded at the time the post is created, but others will be pulled from the media library) we can’t easily use the Gallery function.*  So for each image you have to insert the image you want, then open the dialog up again to insert the next one, and so forth.

Also, I find that if there is one thing that will screw up the formatting of a wordpress post it’s using the Caption in the Visual Editor, so I generally steer non-techie clients away from it.

But in this case, we did want to use the Caption, and I foresaw support calls in my future if we didn’t make it super easy for the client.

Solution: Faster Image Insert plugin

This plugin adds checkboxes next to the images on the the Upload/Insert image dialog.  So to insert multiple images at a time from the Media Library, just confirm the settings (size, caption, etc) for each of the photos, click the checkboxes of the ones you want inserted, and insert them all at once!

So much easier than inserting them all individually, and less prone to errors because the user clicked in the wrong place and inserted his next image into a caption!

*If you wanted to use the Gallery functionality, you would have to specify the # of the attachment each time using the gallery include = syntax, but that was ruled out as too complicated for the user.  We needed a way to let her just choose the images she wanted and insert them.

How to add the description to the image caption (WordPress)

The next problem to solve was showing the description in the caption area.  She didn’t want the user to have to click on the image to get to the Attachment page to see the image description.

This one I found by a little Googling, and it works like a charm.  Thanks Web Citizen Mag!

Recently for a project, we needed to utilize the description field to dump in additional photo information, while the caption field was used to provide the regular text caption.

To get WordPress to display the description inside the post we had to override the the default image shortcode function WordPress used to generate the final HTML output for the images inside posts.  Then we needed to make some changes to our stylesheet and we were set.

Go there to read the how-to!

Basically go to the link above and copy the code provided to your functions.php file.  The example provided is excellent.

The only change I made to the code was that I wanted to show the description under the caption, instead of on top, so I made the following change to the return:

return '<div ' . $id . 'class="wp-caption ' . esc_attr($align) .
 '" style="width: ' . (10 + (int) $width) . 'px">'
. do_shortcode( $content ).'<div class="wp-caption-text">' .
$caption . '</div>'. $description . '</div>';

So now I just added some formatting to the css for the Description info, and we are good to go!

Easy peasy.

Final Product – Media Library (non-attached) Images displaying Descriptions within a WordPress post!

Artist Portfolio Website

Another recent project that I hadn’t gotten around to blogging about…  David Joel of One Eye Opens is a wonderful Seattle artist who needed a website that showcased his work professionally and flexibly.  His works are large scale pieces, so presenting them on the small scale of a website was challenging.  This portfolio site is simple to keep updated with new work, and allows him to announce upcoming shows and connect with his fans easily.

OneEyeOpens - Art Portfolio Website for David Joel

Email send stops working on a WordPress site: Troubleshooting

The other day we had an issue where emails just stopped working on one site.  Emails from Contact Form 7, Event Espresso, and even standard WordPress functionality like notification email for new user sign up.

We finally got it fixed – turned out to be a problem on the host side – but I thought I’d share the troubleshooting we did, because it really helped to narrow down the possible problem and save us some time.

The first thing to do in troubleshooting is to narrow down the possible causes of the problem.

First, is it happening throughout all mail functionality on the site?  If you aren’t receiving emails from, for example, Contact Form 7, is it a problem with your contact form, or is it ALL mail functionality on the site.   Try testing other mail functionality – like new user signup, comment notifications, etc.  In our case, it was first reported as a problem with our Event Confirmation emails in the Event Espresso plugin, but a quick test revealed that our contact form wasn’t working either.

Obviously, if you’ve just installed something, like a new plugin, that would be the first place to look.  Plugins can conflict with each other and cause problems.  Or, if you’ve just done an upgrade of WP.  But in this case, we hadn’t made any significant site changes in the previous few days.   And we checked to make sure the emails for the site were functional (eg you can send/receive emails at email addresses, particularly your admin email) .  [As an aside, I did run across info that some servers (GoDaddy?) are picky about what your admin email is — one thing to try when you’re having problems is to set your admin email to something like, and set up that email address to forward to your yahoo or gmail type email address] But in our case, our emails were functioning correctly, so that wasn’t the problem.

Most  WordPress mail funtionality uses php mail() as the way to send messages, so if you’re unable to receive emails sent from the site, a good test is to see if php mail is working on your server, outside of WordPress.   If you can’t get php mail to work outside of WordPress, you can pretty much rule out WordPress or any plugins as your problem, and go straight to technical support at your host with that info.

To test php mail is really simple, you don’t need to be able to code to do this, just know how to create a file, copy/paste, and ftp the file to your site.

1. Create a new file (use Notepad if you don’t have a better text editor) and call it emailtest.php.
2. In the file, minimally you’ll need something like this (obviously replacing the email address below with YOUR email address):

if ( mail("","test","test")){
echo "email sent";
 echo "email fail";

If you want even more information it’s a good idea to add something like this, which will echo back the from and to, and also allows you to specify the “from” . (Again, replace the email and the from email with actual emails-a good test is to use your personal email as the $email, and your site admin email as the $fromemail)  :

$email = '';
$fromemail = '';
$subject = $_POST['subject'];
$msg = 'This is a test';
$headers = "From: ".$fromemail;
if( !mail($email, $subject, $msg, $headers) ){
 echo "Problem sending email....";
 echo $email;
 echo $headers;

 echo "Email successfully sent";
 echo $email;
 echo $headers;

For my test file, I actually included both of the above, plus the second test again with different emails that were not from my site’s domain–I changed the email to my gmail account, for example.

Save the file and place it on your server, in the same location as your wp-config.php  file for your site.

Then in your browser, go to

When you load the page, it will attempt to send your emails.  If it works, you should get success messages for all 3 tests, and receive 3 emails to the specified accounts.

If everything succeeds, then your problem is likely to be within WordPress, so return to troubleshooting there, looking for conflicting plugins and such.

If everything fails, or even more interestingly, parts of it fail, then you have more information to work with, and to take to your host’s support folks.

In our case, we had the bizarre situation where the simple case (no from specified) failed, and the only way the more complex test would pass was if we sent to an email address on our domain. This definitely looked like a host issue, so we passed our results on to support, including pointing them to the test file we’d created, and they fixed it very quickly (kudos Bluehost!).

But having this information up front helped to get us to the right people in support and avoided any pushback that it was something within our control that we had broken.

Source for the basis of this script: and also support on the Bluehost forums

Search bar results different in Firefox 4

I just upgraded to FF 4, and I noticed that I no longer get google results (or google ‘i feel lucky’ results) when I type something in my address bar that isn’t a full web address.  Like I might type just sluggy and that would go straight to  I basically use my address bar as an extra search bar, and have forever, so it’s a hard habit to break.

But it’s an easy fix to get it back to that functionality.

Just type about:config in your address bar.

It will give you an ‘are you sure’ warning.  Say you are sure.

Then find Keyword.URL, and double click on it.

Set it to

if you just want it to return google results.

Set it to

if you want it to try to go to the most likely site.

More here:

Why don’t my blog photos show up on Facebook when someone Likes a post?

..and other amazing  facebook mysteries…. REVEALED!

It’s amazing to me how often you’ll get a bad image when you try to link to a particular blog post or website page on facebook, even from major sites.

I’ve been researching the ins and outs of this for the last few websites I worked on–both setting up the facebook Like button, and also testing what happens when a user links to a page–, and so I thought I’d share some of my findings, in the hopes of helping others.  Please feel free to add to or correct anything, in the comments.

Facebook uses something called Open Graph protocol to get all the information to display. And if there are multiple images to pull on a page, many times it will just pick the last one (which might be your twitter icon, or something else totally random) Not the actual image you were wanting to display next to the link on facebook. The same process happens when you are Linking to a page from facebook, or when you click a facebook Like button on the page.

To test what facebook will read off your page, you can paste the url for your overall site, or a specific webpage, here:  Facebook URL Linter.  It’s a more reliable way to test your link than just by posting on your facebook, as facebook will cache things.

For more about this, with examples, see: How to get the right images when Liking on Facebook

How to get the right image to show up when a page is linked or Liked in Facebook:

There are a few different options, depending on what type of site you have, and your level of technical expertise.

Simple Answer (specifically for WP bloggers):

If you’re a WordPress blogger:

  • Try this plugin:  FetenWeb image_src Metatag.
    I’ve used this one on a few sites, and it will pull the featured image (if you’re using that functionality) or the image attached to the post for facebook links.  You can also set a default image.  It’s simple, and seems to work quite well.

If you have a basic wordpress blog, that may be all you need.

Sort of Advanced answer – Setting Open Graph in your header:

As I said before, facebook reads the Open Graph tags on a page.  If it can’t find them, it tries to figure them out from the other information on the page.  To test what facebook will read off your page, you can paste the url for your overall site, or a specific webpage, here:  Facebook URL Linter.

So if what you see in the Linter is not what you want the user to see, you can set the Open Graph tags by adding them to the head section of your website.

To start off, Facebook has a tool here (“Step 2“) that will generate basic OG tags for your site.  (if you’re logged on to facebook when you use it, it will pull in the right Admin ID for you).

You’ll need to paste your tags in the <head> section of your website.  (In WordPress, that would be in header.php, before the end of the head section (before the </head> tag)

Note that you may not want to set all the open graph tags – you may want some of them to be generated based on the page content.

Note the difference between “article” and “website” for the og:type property.  For blogs you should use ‘article’ not ‘website’.  From the Open Graph site: Use article for any URL that represents transient content – such as a news article, blog post, photo, video, etc. Do not use website for this purpose. website and blog are designed to represent an entire site, an og:type tag with types website or blog should usually only appear on the root of a domain.

Since the big thing we are talking about here is images, if you want a standard image to appear on any page linked from your site, like your logo for example, you’ll need to set it in the image tags.  Create a jpg file of your image (a square image works best for facebook), and (for simplicity’s sake) store it in the main directory for your site (the www directory, generally).  {If you’re on WordPress, this would be the directory where your wp-admin and wp-content directories are located.}

Then we set the og:image tag to that file:

<meta property="og:image" content="" />

There are more tags you can set (list here: Open Graph) too.

Advanced Answer: using conditional tags

So, for many sites you may want to have different open graph tags appear depending on what page you’re on.

Take for example a website which includes a home page, multiple content pages, and also an integrated blog.

For my home page, I may want to set the description, rather than have it generated based on the page content.  And on my content pages, I may want to show just my logo, or I might want facebook to pull an image from the page.  On blog pages, I probably want to show the image attached to a post.  So I need different rules:

Here is an example from company website, with integrated blogs, developed in WordPress.  I use something like this in conjunction with the Fetenweb plugin above to get the appropriate results.

The first section is for the home page, where I’m setting specific text I want to appear as the description.  The second part is for single (blog) pages, so if someone links to the article on facebook it pulls up the article specific information.  The third is pretty much like the first, it just doesn’t set the description (and if I removed the image tag, it wouldn’t set the image.)

<?php if ( is_home() || is_front_page() ) {
<meta property="og:type" content="website" />
<meta property="og:image" content="" />
<meta property="og:site_name" content="The Sample Company" />
<meta property="fb:admins" content="123456789" />
<meta property="og:description"
 content="Some clever content about what the entire website is about.
This will show up when someone clicks the like button on the main page."/>

} elseif ( is_single() )  {   
<meta property="og:type" content="article" />
<meta property="fb:admins" content="123456789" />   
} else {   
<meta property="og:type" content="website" />
<meta property="og:image" content="" />
<meta property="og:site_name" content="The Sample Company" />
<meta property="fb:admins" content="1223456789" />


You can see the effects:
Here is my results for linking to the homepage:
Here is my results for linking to a blog post:

Hope this helps!


Best simple poll for WordPress? Testing the Democracy Plugin

A client wants to be able to add some simple polls to his website, so I’ve been researching which are the best poll plugins, from both an ease of set up and use standpoint, as well as being visually appealing. We want something that can primarily be added to posts, but also can easily be displayed in a sidebar if desired.  We don’t need anything extremely fancy, just a nice, simple poll.

I tried WP-Polls first, but it looked pretty complex for a novice user, so I’ve moved on to Democracy. I figured I’d document how it goes for others who might be looking for something similar.

Here is an example of the poll in action (feel free to try it yourself!):



My thoughts:

Installation: The plugin installs easily, no problems, but I did have an issue with a strange case of it inserting a random “n” before a poll.  Google is my friend, though, and I found this post which addressed the issue.  Modifying line 331 of democracy.php to change the single quotes to double quotes in this line did the trick


Styling: The default styling seems nice, and if you know some css, you can customize the styling.  The only css change I made to the example above was to remove the bullets from the list by adding this to my style.css:

.democracy ul {
list-style:none outside none;

ISSUE: The bars on the results don’t display the same in IE as in Chrome and Firefox…

I had to add a width to the .democracy to get the bars to show up in IE.  By default it’s max-width:250px, but I changed it to 300 and added a width setting.

For mine,

.democracy {

Features:  It includes a widget for sidebar use, and is easily inserted into a post with one simple line.  It also (optionally) allows users to add their own poll options.  Can enable IP tracking and cookie tracking to prevent ballot box stuffing (though those options are disabled on this test poll).  The only thing I didn’t see was some sort of option to run the poll for a set number of days, but it does give the option to manually deactivate a poll.  All in all, everything I needed for this simple application.

Poll set up and Maintenance:  Seems simple enough.  A new section is created in the Posts section of your Dashboard, and you manage your polls from there.  Name your poll, add your choices, and you’re good to go.  Insert a particular poll in a post by using:


(where x= the ID of your poll)

All in all, I’m quite happy with this as a solution thus far, now that I’ve fixed the IE display issues.  I’ll update as I attempt to integrate it into the client site…

Update:  It looks like the Add your own answer option doesn’t work in IE.  Uh oh.