Archive for March, 2009

Weblog Tools Collection: Is It Time For Kubrick To Retire?

Dion Hulse a.k.a. DD32 who is a very active WordPress contributor created a ticket in Trac about eight weeks ago outlining his proposal for a new theme to be based on the current WordPress codebase. It’s long been known that a majority of themes that are created for WordPress end up using Kubrick as the base theme. In this day in age, that is not such a good idea as this leads to themes that are not easy to customize, little documentation, and possibly ugly code.

DD32’s proposal for a new base theme contains the following suggestions:

  • Uses clean markup
  • Has a basic style included, Which is designed to be replaced.
    • The default style should be able to be used by itself, But it should be in such a way that its simple to be customized
  • Doesn’t rely upon fixed width styling, or fixed background images
  • Uses limited JavaScript
  • Uses the Theme api correctly
    • comments_option() instead of ‘open’ == $post->comment_status
    • post_class(), etc.
  • Look good even when the user modifies the theme slightly (ie. changes widths or floats an item)
    • I realize it’s impossible if they’re changing it, But a simple small change should not break everything, It should be designed with the purpose of looking good whilst having its layout moved around
  • includes custom Widget examples, SIMPLE widget examples
    • Ie. Something with no control, Just a simple “This little widget Adds this theme-specific functionality, It requires no modification, just does this when inserted”
  • Uses ALL the current functionality WordPress offers

The way I see it, if you attack the root of the problem and replace Kubrick with a base theme that contains everything DD32 mentioned, this could do nothing but positive things for the WordPress community. First time theme developers would have an excellent base to start from and learn a thing or two in the process with documentation included within the theme. Of course, with the new Syntax highlighter along with function lookups which are now going to be part of WordPress 2.8 and at some point down the road, POSSIBLY template/theme versioning which would work in much the same way as post revisions, we could see a WordPress in the near future where you can build your theme from within the software itself.

So is Kubrick really being replaced? Right now, it’s an idea that is on the table. In fact, this years WordPress Google Of Code projects list Theme Frameworks as a project which possibly would be used as a default theme. So if anyone decides to tackle this issue head on, we could end up seeing Kubrick replaced with a much more modern, useful theme.

Are you ready to see Kubrick retire and be replaced with a theme that matches DD32’s criteria or do you want to see something else?

Monday, March 30th, 2009

Alex King: WordPress Mobile Edition 3.0.2

WordPress Mobile Edition is a plugin that shows an interface designed for a mobile device when visitors come to your site on a mobile device.

The 3.0.1 release of WordPress Mobile Edition suffered from a failed SVN merge in the theme, causing the comments to display incorrectly. I took a more direct approach with the theme this time so this shouldn’t be an issue with the 3.0.2 release.

I also made the following changes:

  • Changed the name of the theme so that it’s clear that you still have work to do (place the theme in the themes directory, per the README) if you try to “auto-upgrade”. This will be done by standard in future releases.
  • Added mobile search engines to the default list of auto-detected mobile devices.

The download and more information are available on my WordPress Plugins page.

If you have any trouble with this, please open a thread in the WP Support Forums and e-mail me a link to the thread.

ShareThis

Sunday, March 29th, 2009

Weblog Tools Collection: Plugin Review: cSprites for WordPress

What is cSprites for WordPress?

cSprites for WordPress plugin helps speed up your blog by reducing the number of requests made for images. When activated all images within a post will automatically be stitched up and displayed properly as compressed CSS sprites.

Screenshots

Before activating, all images within a post are being retrieved using separate requests.
Before using cSprite

After activating, all images are stitched together into one compressed image and retrieved using only one request.
After using cSprites

The plugin then uses CSS magic to display these image sprites properly within the post.
Post using cSprite

Features

  • Quality and style settings let you specify the compression level for the stitched up image sprite.
    cSprite quality options
  • Ability to include/exclude certain types.
    cSprite include exclude types
  • Cache expiration tuning.
    cSprite cache options
  • SEO Options for SEO nerds.
    cSprite seo options

What I Like About It

cSprites for WordPress was written to do one thing (convert all post images into compressed image sprites to speed up your blog) and it does it very well.

Installation was very easy. Just download it, activate it, and all your post images automatically turn into images sprites.

Just because you use image sprites doesn’t mean that you should lose SEO. I like that this plugin does not ignore SEO and there are SEO options for displaying any ALT or TITLE text you want.

Next, this plugin supports caching image sprites, so it automatically includes external images into image sprites for you. Because of this, you are also saving external domain DNS resolutions to help make each page load even faster.

What I like most about this plugin is that it can be used in conjunction with WP Super Cache. In that scenario WP Super Cache helps you avoid PHP execution/MySQL queries, and cSprites for Wordpress helps you reduce strain on your web server and improve front end page load time.

Possible Areas of Improvement

As of version 0.508, here are some drawbacks of this plugin:

  • PHP5 with GD Library is required for this plugin.
  • cSprites will not distinguish between PNG8 and PNG24 and will always sprite PNG images with PNG24.
  • cSprites cannot handle dynamically generated images (e.g. “…thumbnail.php?thumb=http://example.com/myimage.jpg”)
  • When upgrading via SVN, “svn up” command gives “svn: Unable to lock ‘cache’”. I have to remove the cache directory, run “svn cleanup”, then “svn up” to upgrade via SVN.
  • You cannot use padding when displaying images or else it will show part of another image. It would be nice to be able to generate the image sprite with configurable padding so you can use padding when displaying images.

Final Words

If you can take advantage of this plugin (i.e. your host offers PHP5 with GD Library), then it is definitely worth a quick install.

Are you currently using cSprites for WordPress? Are you happy with the performance improvements? How much load time has this plugin saved you? What additions would you like to see in this plugin?

Sunday, March 29th, 2009

Weblog Tools Collection: Jeff’s Interview with Andrew Ozz

Jeff Chandler over at WPTavern.com recently published an interview with Andrew Ozz. Andrew is the man responsible for the integration of TinyMCE into WordPress. He’s also a core committer for the WordPress project. In his interview, Jeff asked a number of questions that I believe are on the minds of many who have used the visual editor. Here is an example:

Jeff - TinyMCE is labeled as a WYSIWYG editor. However, in my experience most times what I see is not what I get. For example, I’ll be in the visual editor and block quote a piece of text. But when I press enter to begin a new line, my cursor is stuck within the blockquote tag. This also works for any other styling elements as well. Why is that? I think the WYSIWYG a.k.a. RTE (rich text editor) comes from the early implementation of support for editing in the browsers. So it’s a dynamically displayed html (WYSIWYG) as opposite to typing html code in a textarea. That was before CSS was adopted so all formatting was in the html code. There are three types of buttons in TinyMCE. One brings up a popup, the other affects selected text only and the third acts as a toggle switch. The blockquote button is of the third type. It can also act on selected text like the align buttons. The toggle can be turned on at the beginning of the blockquote then turned off on the next paragraph after the blockquote, the same way as in Writer and Word. Alternatively a blockquote can be applied to one or more paragraphs after they are written.

The one thing worth taking from this interview is that, when something goes awry in the visual editor, it’s not always the fault of TinyMCE, but rather the browsers.

Saturday, March 28th, 2009

Weblog Tools Collection: Top 10 Characteristics of a Great WordPress Plugin

Like most of you, I have experimented with many WordPress plugins. I have seen a lot of great plugins and also a lot of bad plugins. I am a bit of a WordPress plugin developer myself, and I admit that I borrow many ideas from other good WordPress plugins. From that experience I have consolidated these good ideas into a checklist that you can follow when reviewing or coding a new WordPress plugin. Here are my picks of the top characteristics that make a great WordPress plugin.

10. Easy Installation

I have seen plugins that require you to modify code after plugin activation to be able to get it to work properly. The instructions were documented clearly in the readme.txt file, but most of the users seem to have missed it (I could tell from the frustration in the plugin support thread). Not everybody reads the installation instructions inside the readme.txt file. The plugin should make an attempt to be able to run straight out of the box after activating no matter how complicated it is.

A good example of this can be found in the “cSprites” plugin. Just activate the plugin and it stitches all images in your posts into CSS sprites to reduce HTTP requests.

9. Seamless Upgrade

As a plugin gets revised, there are bound to be more configuration options or database changes. A good plugin should be able to handle these database changes seamlessly upon upgrade. There are a few ways to do this.

One method is to keep track of configuration option fields. If the option field is missing, then populate it with the default value.

Another method is to keep track of the last upgraded version as one of the hidden plugin settings. On each wp-admin page load, the plugin can check the last upgraded version against the current version and perform a database upgrade operation if necessary.

A good example of seamless upgrade can be found in the “Top 10” plugin.

8. Uninstall Option

The majority of plugins I see leave a bit of a foot print in the database after the user deactivates and deletes it. Some even leave a whole table in the database. Great plugins give you the option to “uninstall” and wipe out all information regarding the plugin.

A good example of this uninstall feature can be found in the “WP-PostViews” plugin.

7. Meaningful Error Messages

When things go wrong with the plugin, there should be a meaningful error message hinting at the problem. That way, the user can troubleshoot it themselves without having to ping the author for support. For example, there are quite a few plugins out there that require you to grant server write permissions to a folder before it can work properly. Failing to do so causes the plugin to silently fail or to bark with weird error messages.

A good example of highly meaningful error messages for troubleshooting can be found in the “WP Super Cache” plugin.

6. Localization Support

Not everybody is comfortable with English. Great plugins are aware of this and are coded with localization support.

A good example of a plugin with localization support is the “All in One SEO Pack” plugin.

5. Intuitive Admin User Interface

Huge plugin configuration pages can confuse the user. It is best to group similar options into it’s own sub-page. It might also be helpful to group advanced features onto its own page or have them hidden by default. That way new users won’t get intimidated by confusing options.

A good example of intuitive plugin admin user interface can be found in the “Referrer Detector” plugin.

4. Reset/Import/Export Options

I am happy to see that a lot of plugins now have the “Reset options” feature which lets you restore configurations if anything bad happens. I have yet to see “Import” and “Export” configurations widely used though. If the plugin has a lot of options, it would be nice to offer the user the ability to import and export those options. That way people can make a backup of their settings or use it as a way to easily manage multiple blogs.

A good example of reset/import/export options can be found in the “WP Greet Box” plugin.

3. Optimized

There are a many things to consider here aside from code performace and optimized database calls. Here are a few outside-of-the-box examples:

  • A plugin should not load unnecessary CSS and Javascript files if it doesn’t need to. For example, there is no need to load the same CSS and Javascript files on every wp-admin page if it is only being used on one plugin settings page.
  • Since WP Super Cache is one of the most popular ways to fight traffic storms, a good plugin makes an effort to be compatible with WP Super Cache.
  • WordPress is always being enhanced (new functions/features added and old ones deprecated). A good plugin stays up to date with these API changes. For example, wp_enqueue_script() and wp_enqueue_style() help avoid reloading the same CSS or Javascript file. wp_enqueue_script() has been available since version 2.1 and wp_enqueue_style() since version 2.6, but I still see many plugins not using them.

2. Secured

A good plugin does not ignore security. There are also many things to consider when thinking about security.  Here are a few basic examples:

  • A good plugin makes use of nonce validation in wp-admin.
  • A good plugin does not print sensitive information into the Javascript code since it is visible on the client side.
  • A good plugin makes an effort to protect against SQL injection and XSS exploits.

1. Good Support and Thorough Documentation

Finally, no one will use the plugin if it’s not supported or documented properly. There are plenty of awesome plugins out there that I don’t use just because it is not supported (e.g. Popularity Contest).

Do you Disagree?

Do you think that there should be something else on that list? If so, please share in the comments section!

Saturday, March 28th, 2009

Weblog Tools Collection: WordPress Theme Releases for 03/27

Manifest

manifest

Manifest consists of a clean and streamlined layout that focuses on the content and not the distractions. It utilizes a single column, 500 pixel wide layout.

Aether

Aether

A new freechild theme for Thematic 0.9: Aether. A single column layout, Twitter plugin ready, configurable via an option page.

The Integrity Theme

Integrity Theme

Clean, simple, minimalist, professional and usable. Several options for the blog index, including a static + tab approach, or a traditional blog approach. The design has it’s own control panel. The design will be modified as time goes on to include more sidebar options and usability choices.

Shades of Blue

Shades of Blue

Shades of Blue is a 2-column theme created for WordPress. The sidebar and the footer are fully widgetized, and the navigation is coded for drop-down menus. Shades of Blue has been developed to accommodate threaded comments and sticky posts.

Friday, March 27th, 2009

Lorelle on WP: Exploring the Power and Variety of Image Gallery WordPress Plugins

WordPress PluginsWith work underway with the Google/WordPress Summer of Code which includes work on the native gallery system within , let’s not overlook some of the WordPress Plugins which have taken the bare bones of the WordPress gallery feature and turned it into magic.

Some of these gallery Plugins were hard at work presenting images on photoblogs and art blogs long before WordPress came up with the gallery feature and Media Library, so they have a long history of helping WordPress users display their images in unique and fun ways with lightbox effects, easy image management from multiple sources, and more.

Example of a photo album or gallery showcase on a blogBlog Oh Blog has reviewed what they think are the 10 best WordPress Gallery Plugins.

They include:


Feed on Lorelle on WordPress Subscribe Feedburner iconVia Feedburner Subscribe by Email

Copyright Lorelle VanFossen, member of the 9Rules Network, and author of Blogging Tips, What Bloggers Won’t Tell You About Blogging.

Posted in WordPress News, WordPress Plugins, WordPress Tips

Friday, March 27th, 2009

Weblog Tools Collection: WordPress Plugin Releases for 03/26

New Plugins

3DArmory

3DArmory for Wordpress is a simple but effective plugin for players of the popular Massive Multiplayer Online game World of Warcraft. In few words, it renders players in-game World of Warcraft character as 3D Model on their blog. The model is zoomable and rotatable.

Template Tag Shortcodes

Template Tag Shortcodes is a plugin that turns WordPress template tags into easy-to-use [shortcodes] that can be inserted into your posts and pages. This release is packaged with 40 shortcodes to use.

12seconds Widget

Adds a sidebar widget to display http://12seconds.tv video status updates. For those of you who are familiar with Twitter; 12seconds is like Twitter, but with video instead of text updates.

Amazon QuickTags Plugin

Adds a few buttons to the “Edit Post” page — both the TinyMCE / WYSIWYG version and the HTML version — to easily add links to Amazon items with your affiliate ID.

WP No Category Base

As the name suggests this plugin will completely remove the mandatory ‘Category Base’ from your category permalinks ( e.g. myblog.com/category/my-category/ to myblog.com/my-category/).

SlideZoom

SlideZoom is a lightweight plugin allow bulk upload images and generate a HighSlide JS gallery. Output as HTML code , and offering embed the gallery by simple copy and paste to posts or pages.

Quick Code

With this Plugin you can enter and test code snippets (HTML, CSS, JavaScript, PHP) and see the results displayed directly on the same page.

Query Posts Widget

It lets you displays posts by nearly any criteria you can imagine using the query_posts() function, except you don’t need to know anything about PHP to use it.

Quote This

A plugin to display quotes on your blog.

Updated Plugins

Better Search

Improve your visitors search experience with Better Search. Better Search will provide contextually search your WordPress blogs and then list the results based on relevance. By using a template file you can completely control the look and feel of the search results page.

Add to Any

Helps readers share, save, bookmark, and email your posts and pages using any service, such as Delicious, Digg, Facebook, Twitter, and over 100 more social bookmarking and sharing sites. The button comes with Add to Any’s customizable Smart Menu, which places the services visitors use at the top of the menu, based on each visitor’s browsing history.

gooseGrade

Allow your readers to become citizen editors. gooseGrade is a free service that allows your readers to post spelling, grammar, factual, and other errors straight to you. After you or any other wordpress admin approves the edit, the gooseGrade plugin will automatically fix the error. It’s like magic.

Store Locator

Store locator plugin for WordPress web developers & web site owners who need to show any set of locations on their website. Uses Google Maps.

All in One SEO

Optimizes your Wordpress blog for Search Engines (Search Engine Optimization).

WordPress Mobile Edition

This plugin creates a mobile-friendly version of your WordPress powered site, without any additional changes required.

Shadowbox JS

A javascript media viewer similar to Lightbox and Thickbox only better. Supports all types of media, not just images. This plugin uses Shadowbox.js written by Michael J. I. Jackson.

Thursday, March 26th, 2009

Matt: Hoi An

Thursday, March 26th, 2009

Matt: WordCamp China, Hong Kong, and Japan

I’ll be attending our two WordCamps in China: WordCamp China in Shanghai, on April 4, and WordCamp Hong Kong on April 5. I think this says I’m going to be in Japan for WordCamp on April 12th.

Thursday, March 26th, 2009