Some people are so enamored with these shiny new project management tools that load so nicely on our smart phones that they forget it should be a transparent part of the project and not a task and part of the process of completing the project.  I’m lucky to be at a place where it’s used very wisely to help communicate to upper management while helping our web development team stay on task and have a true picture where we stand in terms of a project’s true status while itemizing all those to-dos which serve as very helpful reminders of the steps that still need to be taken.  Remember, despite how sometimes they’re advertised, these tools don’t actually do the work of the projects for anyone, there’s nothing magical about them.  They do email notifications to those involved in certain projects automatically, so that can does save some time in the long run, however!

Here is a screen shot of a free project management and tracking plug-in called “CollabPress”.

CollabPress Plugin

CollabPress is a great WordPress plug-in that has a lot of potential for small companies and departments who may feel they could use some better organization.  Base Camp is a collaborative tool that teams, departments, or entire companies use to help keep track of projects.  Project outlines with to-do lists combined with calendars.  Think glorified “Task List and Calendar” that usually comes in your email software, like Outlook or Entourage.

If you are looking for something simple and clean like Base Camp, but perhaps you don’t have a budget to sustain the monthly fee, which I believe starts at about $20/month, you should install the CollabPress plug-in on a WordPress site and give it a test drive.  It takes less than a minute to install and CollabPress (gosh I can’t stand all these CamelCase names) allows you to create projects, tasks, and set up to-do lists that can show up on a clickable calendar.  It’s very straightforward, clean and simple for any user to grasp and find their way around in minutes.

CollabPress Plugin Screenshot 2
An almost empty calendar… something you probably won’t ever see at your job.

It can be managed from within the WordPress admin section, or you can use some shortcodes and embed certain parts of your project and tasks in stand alone pages or posts, allow different users different privilege access, and leave notes for others to see that can optionally be emailed automatically when there is an update.

Sounds a lot like 90% of Base Camp to me.  It may not be robust enough for bigger company projects or if you’re just that big of a corporation and you just love to spend money, or worse, you’re a company that thumbs its nose at “open source” —  that’s your problem.  Just keep in mind that CollabPress enables users who are admins of projects to assign actual priorities to tasks, a basic feature missing in Base Camp.  Another issue with Base Camp, CollabPress, and many other project management solutions is that there are no easy ways to link certain tasks dependent on other tasks, so if you happen to be working with an administrator who’s crazy about setting deadline dates for every little task, you’re going to be changing a lot of due dates around the project calendars.

In other words, you’re going to have to micro-manage the to-do due dates, exponentially increasing the team’s perception of how much they may think they’re being micromanaged, even if they really aren’t.  It could have a demoralizing effect on the team, or you may just delegate the need to begrudgingly move all those due dates of to-do’s constantly down the calendar to someone with more time on their hands.  I know, it could be easier to just meet deadlines, but especially in the case of bigger web projects, it’s hard to predict the unknown factors and issues outside of your web development team’s control.  (You never do know what that “clanky” sound is inside the car’s engine without looking under the hood and perhaps taking the valve covers off.)  Tick a plus for Base Camp, though, at least it allows you to click and drag each task to another date right from within the calendar, something missing in CollabPress.  Still, a little JQuery customization could go a long way to fix a few of these shortcomings for CollabPress.  I’m not complaining, just saying… it wouldn’t be hard to code it and allow a user to click and drag dependent tasks all at once.  Future feature alert, perhaps?!

Recommendation

If you need a centralized place to keep the team on task while encouraging collaboration on bigger projects, I’d recommend first installing and looking into the features that come with CollabPress, it may be robust enough to bring your team in on the same timeline.  Still, Base Camp is very clean and straight forward.  Though Base Camp does have a nicer polished interface, CollabPress’s default settings and interface are navigable and a little time invested in the CSS styling it a bit wouldn’t hurt.  That’s the price for using free software!

More on Base Camp

Truth be told, I’ve been using Base Camp now for a few months and on the surface Base Camp is just a little more robust than using the project, task list and calendar built into Microsoft Office’s full version of Outlook.  It does enough to keep tasks itemized but it lacks a lot of intuitive features you’d expect from a paid service, like task dependencies and setting priorities.  A useful feature is that it allows members of the project to comment on the project, but that’s just a thread that exists on any forum platform.

I am aware of plug-ins that you can install or buy to expand your Base Camp account to possibly achieve more useful automation and functionality, but I find it hard to believe that some basic project management features just don’t come with Base Camp out of the box.  As is, it feels so lightweight that it should be free, it doesn’t really do much more than CollabPress.  It’s a basic project outline with to-do lists where you can set due dates and tasks show up on calendars which can be viewed and separated by project.  The same features built right into many email client programs, by the way.

So why not just use your email client’s project management tools?

Which makes you wonder if your team shouldn’t just look into using the same email client linked to a few Google calendars, but though many departments have tried this route, setting rules and declaring their team will use them to stay up on each others’ projects, seldom do they follow through and instill the habits to use the calendars and the other collaborative tools that come installed on their computers.  Either someone won’t connect to the calendar, someone else will refuse to use the same email client, like Microsoft Outlook (“I only use Macs”), they’ll only use the “Express” version, “I only like Droid — does it come as an app?!” and someone else just won’t seem to be able to find the right buttons because the view got hidden.

Also, most email clients like Outlook are bit clunky and can have too many options and visual “noise” that are distracting and hard to follow, it’s hard enough to keep your email organized without it being a full-fledged secretary under some other tabs or buttons.  It starts to look like an Autodesk 3Ds Max interface, my favorite program in the entire universe, but daunting when you first look at it:

Autodesk 3Ds Max interface

 


For those who use BuddyPress on top of WordPress, you might want to update your register and log-in page by replacing the familiar WordPress login page with a branded logo themed to your current site.  Just add this code to your active child theme’s function.php file and update what I put in for “ProflicFutility.com” with your own site and logo image file name. You should put it near the end of your function.php file and remember, do NOT put in any closing PHP tags! “?>”

function custom_login_logo() {
   echo '<style type="text/css">
   h1 a { background-image: url(wp-content/uploads/prolific-futility-logo.png) !important;
   width:250px!important}
   </style>';
}
add_action('login_head', 'custom_login_logo');

function put_my_url(){
   return ('http://www.prolificfutility.com');
}
add_filter('login_headerurl', 'put_my_url');

More details of other elements you can update can be found on WordPress’s site at: http://codex.wordpress.org/Customizing_the_Login_Form.


In a custom page you call as a template in WordPress, this is the standard way to access some of the information about the particular post or page being viewed.  This is possible by accessing the WordPress query object, which is already instantiated by WordPress in a global class called $wp_query.  There is much more information you can get from this object, by visiting WordPress.org.  Another interesting aspect of accessing the $wp_query object is that you can override many of the properties and methods within this class to alter the functions, data, and output of the containing page so you can tailor the page for further customization.


$query_vars=$wp_query->query_vars;

$pagename=$query_vars['pagename'];
$category_name=$query_vars['category_name'];

$post_arr=$wp_query->post;
$post_author=$post_arr->post_author;

$url= $url_arr['request_uri']=$_SERVER['REQUEST_URI'];

ob_start();
echo “Pagename: $pagename / Cat: $category_name / Url: $url / Author: $post_author”;
var_dump($wp_query);
$html=ob_get_clean();

echo $html;

For custom pages, do not ever close your files with closing PHP tags with scripts. Please note that different WordPress themes like Genesis may have different functions that will either alter how you can access the $wp_query object and in some instances do not allow accessing it.


Here are a few more useful WordPress shortcodes.  Simply copy the code and paste it into your active theme’s “function.php”.

You can call on shortcodes with the square brackets inside your post or pages:

Insert a Google ad snippet, horizonal 720 x 90 pixels:

[insert_script path='/library/vendors/google/ads/horiz-720x90.php']

Show computer’s IP address:

[[show_ip]] — produces:  [show_ip]


/* Allows insertion of external PHP scripts easily into pages, posts & widgets.
*
* "vars" is query string that will be parsed by script in a variety of ways,
* Most useful is parse_str()  where ?x=1&y=3 will parse into script as $x=1, $y=3
*/
function insert_script($atts){

extract(shortcode_atts(array("path" => '',"vars"=>''), $atts));
ob_start();
include($_SERVER['DOCUMENT_ROOT'].$path);
return ob_get_clean();
}

add_shortcode('insert_script', 'insert_script');

// Shows current Date and Time
function todays_date_time($atts){
return date("Y-m-d H:i:s");
}
add_shortcode('todays_date_time','todays_date_time');

// Shows computer's current IP address
function show_ip(){
return $_SERVER['REMOTE_ADDR'];
}
add_shortcode('show_ip','show_ip');

 


As you scan your site for opportunities to optimize, your SEO results will probably tell you that on certain pages of your website you have two or more H1 tags.  By far not the most egregious of violations, you don’t want to confuse those simple-minded robots called search engines that can’t figure out the first H1 tag is more important than the second <h1> tag when they crawl each document on your site much like they already assume with HTML 5 and <header> tags which they encounter more and more every day.

That being said, pre HTML5 pages should abide by the general rule that you should only use ONE H1 tag per page — if nothing else to pay homage to those reminiscent times of rogue, cowboy coding with little restrictions and standards that brought us such great innovations as link farms and “what else can we do to trick the search engines because we’re too lazy to focus on actually building our business” strategies that still seem to prevail throughout the web.

If you are using WordPress and a Genesis theme, you might do a lot of googling before coming across this snippet.  How do you shut off the H1 tag in the WordPress headers on every page but the homepage in this darn framework?!  As much as I like Genesis, they should have a simple guide or cheat sheet for all their extended functions based on the WordPress core.  Don’t you love those themes and plug-ins that make you type their name in every instance within your code?  They may think having to type “genesis” everywhere is a form of branding, to me, it’s the kind of painful branding I try to avoid — much like the gasp of pain a cow would make after getting branded with a hot iron.


/**
  *    Remove Site title tag if not homepage
**/

add_filter( ‘genesis_seo_title’,’conditional_title’ );

function conditional_title($title) {
if ( !is_front_page() ) :
     $title = ”;
   return;
   else :
    return $title;
   endif;
}

Don’t get me wrong, I think Genesis is a good Theme Framework for WordPress, they have excellent products and support, but wouldn’t an option to just type “gen_” do?! Anyway, here’s the fix based on the problem mentioned in the title. Aaron Belchamber