web design web development wordpress cms business blogs

A A A

WordCamp ABQ presentation: Build a powerful CMS with custom fields and custom post types

Author: ; Published: Sep 17, 2011; Category: Content Management System, Design/Development; Tags: , , ; No Comments

Slides from my presentation at WordCamp Albuquerque, Sep. 17, 2011. Also includes info about modifying Tiny MCE editor to make it more useful (and less dangerous).

The PDF is downloadable on Slideshare (link above slides and in the lower left of the control bar.)

What makes a good CMS?

Author: ; Published: Aug 16, 2011; Category: Content Management System; Tags: , , ; 2 Comments

In preparation for an upcoming presentation for WordCamp Albuquerque, I’ve been doing some thinking about what makes a good content management system. I was involved with providing content management systems for 6-7 years before I started using WordPress, so my perspective is not limited to my WordPress experience. I started using WordPress with some pretty high expectations about what a CMS should do, and I’ve been impressed with its ability to meet or surpass those expectations as I’ve learned more about how to configure it as a CMS.

This is not a feature comparison with other CMS platforms. Instead, I’m thinking about what the basic requirements for a CMS are, and what it takes for a CMS to be a good one. And there are only two kinds of CMS’s, from an end-user perspective: “good” or “bad.” Thinking about that inevitably leads to thinking about what kind of people use CMS’s (the “end users”), so I’ll start with them.

The people who update the company website don’t care what flavor the CMS is.

Typically, CMS users don’t maintain the website because they love websites. They maintain the website because it’s part of their job. For the most part, they want to make an update quickly and easily, and then go on to more important things. They don’t care if the CMS is WordPress, Joomla, Drupal or some other flavor, as long as it makes their work easier and quicker, and doesn’t get in their way. This may seem obvious, but I know from experience that a lot of developers don’t give this any thought.

Ease-of-use is not negotiable.

Complicated, confusing user interfaces are productivity killers. They can be a mere annoyance or an actual obstruction to keeping the website updated. When updating the website is difficult, the normal and usual end result is that the website does not get updated. And at that point, its value as a business and communication tool is non-existent. WordPress is famous for its ease-of-use and friendly user interface, consistently ranking ahead of other platforms in this regard. And it can be made more so, with a little bit of intelligent use of custom post types and custom fields.

The need for HTML coding must be minimized or eliminated.

This is actually an ease-of-use issue for most end users, but I think it deserves special mention. Straight out of the box, WordPress flunks this test. If all editing and formatting must be done in the WordPress editor, a good working knowledge of HTML (and possibly some CSS) is mandatory. But in the hands of a good developer, WordPress can excel in making HTML coding either optional or completely unnecessary.

Flexibility is critical.

Although there are some things most businesses and organizations need in a website, many of them also have some unique needs. A good CMS must be able to accommodate these needs without extensive and expensive development, while maintaining ease-of-use for the end user. With custom fields, custom post types, and custom taxonomies, WordPress is one of the most flexible platforms around.

The CMS platform must be well-supported.

Business users will not gamble on a system with an uncertain future or inadequate technical support, and why should they? In most cases, of course, the level of support an end user gets is dependent on the developer who implemented their website. But that developer can draw on the WordPress community when necessary. WordPress is the most widely used open-source CMS platform in the world by a very wide (and accelerating) margin. It has a large, committed developer base, in addition to the core development team. If there is a better bet than WordPress in terms of longevity, I’ve not heard of it.

Getting assistance as a developer from the WordPress community is practically standard procedure. Much of what I’ve learned about WordPress comes from WordPress’ excellent online documentation, and from other developers (most of whom I’ve never met in person) who are willing to offer assistance or advice.

In addition, should the original developer fall short in website support, finding a good WordPress developer is relatively easy: they’re not rare. Owners of WordPress-based websites do not need to fear that they’ll have to redo their website on yet another platform if they wish to work with a new developer.

Did I mention ease-of-use?

I just thought it was worth mentioning one more time ;-)

How to List Upcoming Events and Events Archive with Custom Post Types

Author: ; Published: Jun 27, 2011; Category: Content Management System, Design/Development, WordPress; Tags: , , ; 3 Comments

Recently, I had an opportunity to build an events listing that showed only upcoming events, with the next event appearing at the top. That’s pretty easy to accomplish. But I also wanted past events to disappear from the listing and show up instead on an events archive listing. It took a lot of searching and asking questions in two WordPress forums to piece together a query that worked.

First, I created a custom post type for events. Then I created a custom field called “order-date” to control ordering. Why a custom field? Why not rely on WordPress’ innate order-by-date function? Because WordPress uses the date posted, and it’s quite likely that events will not be posted in the order of their occurrence. But just as important, I needed the order-date to be the date of the event so we could use it to drop an event from the upcoming events listing and move it to the events archive listing. The custom field uses the Y-m-d date format for comparison with the Y-m-d format of today’s date.

Here is the query on the upcoming events listing template:

<?php
   $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
      $today = date('Y-m-d', strtotime('-6 hours')); //define “today” format; note timezone offset of -6 hours
      query_posts(array(
      'post_type' => 'events', //query “events”
      'posts_per_page' => 5,
      'paged' => $paged,
      'meta_key' => 'order-date',
      'orderby' => 'meta_value',
      'order' => 'ASC', //sort in ascending order
      'meta_query' => array(
         array(
         'key' => 'order-date',
         'meta-value' => $value, //value of “order-date” custom field
         'value' => $today, //value of “today”
         'compare' => '>=', //show events greater than or equal to today
         'type' => 'CHAR'
         )
      )
   ));
   if (have_posts()) :
   while (have_posts()) : the_post();
?>

On a separate template for displaying the archive listing, I made the following changes (highlighted in red) to display past events in descending order:

<?php
   $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
      $today = date('Y-m-d', strtotime('-6 hours'));
      query_posts(array(
      'post_type' => 'events',
      'posts_per_page' => 5,
      'paged' => $paged,
      'meta_key' => 'order-date',
      'orderby' => 'meta_value',
      'order' => 'DESC', //descending order
      'meta_query' => array(
         array(
         'key' => 'order-date',
         'meta-value' => $value,
         'value' => $today,
         'compare' => '<', //show events less than today (past)
         'type' => 'CHAR'
         )
      )
   ));
   if (have_posts()) :
   while (have_posts()) : the_post();
?>

Evo Launches WordPress-based Website for IntelliCyt

Author: ; Published: Nov 27, 2010; Category: Content Management System, Design/Development, Marketing, WordPress; Tags: , , , ; No Comments

IntelliCyt Corp. is an interesting biotech company in Albuquerque. They make high-throughput flow cytometry equipment and software, with a unique patented process. We were fortunate to do their first website (and their logo) in 2007 while they were still a very small startup. They are still considered a startup (and are attracting funding from venture capitalists), but they’ve grown quite a bit. We’ve watched them go through stages of product development and definition, and it’s been interesting.

Recently, they realized they needed a better online platform for marketing than their static website (in 2007, we didn’t know anything about WordPress, and their budget would not have supported the custom Content Management Systems we were building at that time). While they were hesitant about the whole blog thing, as many companies are at first, they decided WordPress would provide a better means of providing current information to their customers and prospects, and a platform for some two-way communication. WordPress gives IntelliCyt more control over their online communications, enabling them to update their site quickly and easily.

The site is built on Evo4 CMS WordPress theme, developed by Evo for business websites with integrated blogs. The design is meant to impart a clean, high-tech, uncluttered feel, in keeping with the biotech industry.

WordPress was recently voted the best Content Management System in the 2010 Open Source Awards. Little by little, people are recognizing WordPress as a powerful and easy-to-use content management system suitable for business websites.

Website Launch: FBT Architects in Albuquerque

Author: ; Published: Oct 22, 2010; Category: Content Management System, Design/Development; Tags: , , ; No Comments

FBT Architects

Visit fbtarch.com»

We launched FBT Architects’ website this week. It marks an increasingly rare (for Evo) instance of building websites with a custom-developed Content Management System, as we’ve moved primarily to WordPress as a CMS platform.

In this case, however, a custom CMS was necessary to allow FBT the ability to manage the portfolio thumbnail grid images the way they wanted to, arranging them easily and intuitively in the CMS admin area. Adding complexity to the arrangement is the website’s need to highlight thumbnails in the grid when a category of projects is selected, while also changing the list of projects below the thumbnail grid. Further complexity was added by the need to list projects for which there is no thumbnail or project description. A modified jQuery Slideviewer was used to animate the images on the individual project pages.

This is another website designed by Kilmer & Kilmer, Brand Builders, for which Evo provides development and programming services in what has become an ongoing relationship. Though I sometimes give them a slight ribbing for being print designers, they’re actually great to work with because they listen and adjust when I identify an accessibility or other web-related issue. Not all print designers will do that, and their clients suffer as a result. It’s a credit to Kilmer that they put client needs high on the priority list when designing a website, and it’s one of the reasons I like working with them.