Aug 032011

A year back to the day I was celebrating Suffusion’s first Birthday. Time has flown since then and we now have me writing the second Birthday mail already!

I had promised a few things a year back:

  1. Better Typography – I am writing a plugin for font management and I will have incorporate aspects of that into the theme.
  2. Prettier Designs – Still working on those. You can expect one very soon.
  3. Better Theme Skinning – I have delivered on most counts here. The only big thing not currently skinnable is the sidebar.
  4. Some Stunning Widget Area Concepts – I have built out some (hopefully) good new widgets. The widget areas should also make their way into the theme soon. Who knows? Maybe I will do a release jump from 3.8.x to 4.0.0 to coincide with this. I honestly don’t know when I can deliver this, but it is something I dearly want to offer.

Due to reorganized priorities and a lot of changes on the personal front I had to rethink what I could offer over the last year. I did quite a few things I hadn’t thought of:

  1. Fluid layouts
  2. Rewriting of the options framework to be more inline with WP’s recommendations
  3. Retiring TimThumb in favour of the native WP image resizer
  4. Some pretty cool features like sidebar control for individual views, byline controls
  5. Support for WP features introduced with every new version.
  6. Lots of new widgets

All in all the second year has been good – Suffusion won quite a few popularity contests, it was made a featured theme on the official theme repository and its lifetime download count is close to 500,000. Not in my dreams had I expected something I wrote to be downloaded half a million times.

And now for the “one more thing” announcement: Photonic is here. Almost.

Photonic is a plugin that I have written to catch those Photo-blogging features that I had originally planned for 3.7.9/3.8.0. It is an extension of the regular gallery short-code that WP provides. Here is what it can do:

  1. Native Gallery Extension
    1. You can now insert a gallery into a post and make it display as a slide-show, either in-place, or as a popup.
    2. You can also display the thumbnail strip at the bottom of your gallery and have full-sized images display there.
  2. Flickr Support
    This is the heart of the plugin and I spent a lot of time building and testing this out. You can:
    1. Display all photos in a Photoset using photoset_id=’x’
    2. Display all Photosets for a user using user_id=’x’ and view=’photosets’
    3. Display all Photosets in a collection using user_id=’x’ and collection_id=’y’
    4. Display all Photosets grouped by Collection for a user using user_id=’x’ and view=’collections’
    5. Display photos based on search criteria
  3. Picasa Support
    During the course of writing the code I realized how much easier it was to use the Flickr APIs than the Picasa ones. However you can do the following with Picasa:
    1. Display all photos for a user
    2. Display all photos for a user within an album
  4. Support for Well-known JQuery libraries
    I have added support for the following popular JQuery libraries:
    1. Fancybox
    2. Colorbox
    3. Slimbox2
    4. Thickbox

Note that this plugin is different from other photoblogging plugins:

  1. It doesn’t let you define new galleries on each post like NextGEN.
  2. It doesn’t process photos on your disk to generate galleries. This might come on my radar later on.
  3. It doesn’t pull images from other photo-blogging platforms such as Coppermine, ZenPhoto, PixelPost or Gallery2. This is something definitely on my radar – it might be as simple as supporting the Media RSS format.

The plugin offers you pretty good control over options. One scenario where it might not work is if you have conflicting plugins (or even themes) using Scriptaculous or Mootools – I haven’t tested this out.

Think of this plugin as a gallery extension to help display your photos from whichever platform you currently use. It is smart enough to pull up titles, descriptions and EXIF as required. By not bundling these features with the theme I am letting you pick the theme of your choice and run with the plugin.

I need about a week more (or 2 at the most) to close out any remaining issues in the plugin. My day job has been quite brutal the last few weeks, hindering my ability to deliver this quicker than I am doing right now. I have, for now, built a few test pages that you can play with. Feel free to click around and let me know what you think.

Jul 252011
How To

One question that gets frequently asked on the Suffusion Support Forum is:

I am seeing this empty space to the left of my posts. I have tried everything, but I cannot get rid of it.

This is really easy to solve and takes just about a minute. This “problem” occurs if both the following happen:

  1. You are using the Minima Skin.
  2. You are not displaying any byline (meta) information.

To fix it:

  1. Go to Other Graphical Elements → Post and Page Bylines → Posts (Default/Standard post format) → Position of meta information (including date).
  2. Set it to display in the corners above/below the content.
  3. If you want to set this for other post formats or pages, apply the same setting for them as well.


Jul 252011

About a year back I wrote an article on the Theme Review process that WordPress had instituted. In only its second month at that time I was among several users to have expressed frustration with the process. Several months have passed since the experiment has moved from the lab to the mainstream, and I thought of taking some time to revisit the process to see how it has helped or hindered the reviews.

Significant Improvement in Quality

The biggest outcome of this effort has been a significant improvement in the quality of repository-hosted themes on In the initial stages the process was aimed mainly at catching themes with spam links and obfuscated tracking code. Gradually, as the reviewers found their feet a lot more standards and policies came into force. The review team, or WPTRT (WordPress Theme Review Team) has been steadily enforcing a lot of these:

  1. Repository-hosted themes are required to have zero debug errors

    What does this mean? If you look through your server logs you shouldn’t see any messages that say “NOTICE”. WP provides a much easier way to check this. You can go into the wp-config.php file of your installation, then put in this line there:

    define('WP_DEBUG', true);

    If your theme doesn’t spew a lot of messages in the admin panel upon activation, it is probably clean. Of course, you need to also check out each type of view in the front-end, like the search page, a single post, custom widgets etc. Not having error messages is not only good practice, but it also improves performance, as your web server is saved the CPU cycles of writing the error to the log.

    Here is the kicker: setting this flag will almost immediately spit out errors for plugins, because most plugin authors have probably never coded with this flag on. That is why on my DEV environment I rarely have plugins activated.

  2. The Theme Review criteria are kept up-to-date
    Every theme has to go through an elaborate review process in terms of standards and compliance. The criteria are divided into categories such as what is required vs. what is recommended. Some people do complain that the criteria change too frequently. However I have managed to stay abreast of the changes most of the time (plus I run a periodic check of my theme – see below), so this has not been an issue for me since quite a long time.
    The review criteria cover various aspects, key among them being the use of standard WP calls. Basically WP’s philosophy is “Decisions not Options” – themes are intended to work out of the box. In other words, a theme like Suffusion is going to be looked down upon by WP aficionados (because it really gives you too many options). But I digress. The expectation is to have every theme be extensible by child themes. The use of standard functions helps this process significantly. In case you were wondering, Suffusion makes use of almost every one of those (apart from WP’s standard Custom Header, Custom Background and Editor Stylesheet functionality).
    Every developer is advised to go through the review criteria to ensure that his theme passes the checks before handing it off to the review team.
  3. Themes are tested against a complete test suite
    Something that was rarely updated prior to the WPTRT’s setup has been getting quite frequent facelifts. There is a full-fledged test suite frequently updated to account for WP core enhancements. Developers are encouraged to install the latest versions of the test suite when available and ensure before submission that all the tests pass successfully. The reviewers have to ensure that all the tests are passed while doing a full review of the theme.
  4. Automated tools are used to check for bad stuff …
    For all the hours of effort that must have gone into the Theme Check plugin, the benefits are invaluable. Any WP developer can install this plugin, then run it against his installed themes. It provides details at several levels:
    1. Deprecated function calls with suggestions for new functions
    2. Missing usage of required functions
    3. Code obfuscation and spam links
    4. Potential security loopholes
    5. Basic checks like licensing information

    This is probably the most useful plugin a WP theme developer can have. The tool was made a formal requirement for theme submissions about a couple of months back, so any theme submitted would automatically be checked using the tool and the developer would have to ensure all checks are passed.

  5. … And the tool developers and maintainers are open to feedback
    There is a constant refinement of the process. To cite an example, I was using a function called get_users_of_blog, that got deprecated with WP 3.1 in favour of get_users. Now, if I was to switch to get_users_of_blog in my code, people still using WP 3.0 would run into issues – after all it was quite natural to have users stay on the previous version of WP to avoid plugins breaking. But if I didn’t do the replacement the theme wouldn’t pass the check. So I highlighted this issue to the review team and a resolution was reached quite quickly: deprecated functions that are one version old will be given a pass. The plugin was promptly modified and further discussions were averted.

Turnaround Time Close to Pre-WPTRT days

The WPTRT came up with a process of classifying submitted themes into 3 categories:

  1. Priority 1: Themes that have already been approved. Themes in this queue are addressed first. Such themes typically go through a “diff” process, where the reviewer checks the changes against the previous version and if the changes look okay, the theme is approved. Of course, there are exceptions when a full review might be required (I have had it happen when I redid Suffusion’s innards in 3.7.7). There is some ambiguity as to what happens if the reviewer finds bugs or errors. The theme gets pushed to Priority 2 (see next) upon resubmission, but if the resubmission happens within a reasonable time-frame the original reviewer can review it as if it were a Priority 1 theme.
  2. Priority 2: Themes that have been reviewed at least once and the latest version was not approved. The original reviewer marks the old submission with information regarding how complete the review was. If the original reviewer had said that the old review was complete, the new reviewer simply needs to verify that all the points in the old review have been addressed. If the original reviewer had said the old review was not complete the new reviewer needs to check for the old items as well as potential issues with the new submission.
  3. Priority 3: New themes that have never been looked at by any reviewer.

With an increased number of reviewers and a much more streamlined process, the review time for previously reviewed themes has definitely come down, though I don’t have exact statistics.

Trainee Reviewers

Any time that a new reviewer wants to start, he is put through an incubation process as a trainee, where he looks at an assigned theme (typically a Priority 3 theme), makes comments and submits it to someone who is a full-fledged reviewer. The latter reviews the feedback and makes comments on the thoroughness of the trainee’s review. After a few such cycles when there is enough confidence that the trainee can go out on his own to review themes, he is upgraded to a full reviewer. This ensures that every reviewer is fully aware of all the areas a theme can potentially trip, and every review is of good quality.

What Could Improve

Obviously there is always scope for improvement. Being an open forum the WPTRT mailing list often sees animated discussions on what should an shouldn’t be there in themes:

  1. Theme vs Plugin Discussions
    Very often a theme developer includes some functionality that has little to do with the look and feel of the theme. Classic scenarios in this case include combining scripts on the fly to optimize site speed, or include SEO options in the theme. The developer gets told each such time, “That is plugin territory”. While that may be true on the face of it, the heart of the matter is more complicated. A lot of developers release themes in the repository to compete against the better marketed “premium” themes. There are many reasons for this, primary among them being strong advertisement across the web by folks including core WP members about using repository themes. If a new user comes to the repository based on advice off the web, then starts comparing the popular themes in the repository with top “premium” themes, it might soon start falling apart. For, all the standards apart, an end user will see much more value offered by a premium theme simply because the so-called premium themes have no boundaries to work within. There are a few ways to work around this, none of which is easy though. One would be the following:
    1. The theme page at WP (such as could be made to have a list of dependent plugins that the theme works well with or recommends.
    2. Upon downloading the theme the corresponding plugins get downloaded as well. And upon uninstalling the theme there can be an option to deactivate the extra plugins. Of course, this will require probably significant changes to the theme administration in the core.
    3. The biggest challenge with this setup, though, is that plugins have close to zero code quality control. All popular plugins not distributed by Automattic have debug traces that make you shudder. And plugins are often written in a manner that is not optimal from a security point of view. Given that the total number of plugins is orders of magnitude higher than the number of approved themes, getting a manual process around plugin approvals is foolhardy.
  2. Specialized Theme Support
    This is a gray area whose resolution will be of significant benefit to developers and users alike. There was a repository theme called Quality Control, which helped users create a bug-tracking system in the standard WP framework using Custom Post Types. The theme is no longer available on the repository because the developer got paid to develop this for a company. You can still get older versions of the theme (which are licensed under GPL). The theme displayed a very innovative use of WP. Unfortunately though, since it requires the use of Custom Post Types in the theme itself, users are compelled to stick to the theme if they want to have their content available on their installation. Basically the user gets into a “lock-in” situation with the theme.
    There was a suggestion to have the authors of such themes provide a way to opt out of the theme. In case of the Quality Control theme it would involve the visual provision of the code to generate the structures of the post types and taxonomies. Users could then paste the code in a new theme and make it run there.
  3. Vocal Opposition to Options
    This is a weird one. It is understandable that themes should be extensible by means of appropriate hooks so that adventurous folks can write the code themselves in child themes. But of WP’s several million users, barely 1% can figure out what the anatomy of a theme is, the multitudinous tutorials and oodles of documentation notwithstanding. It is surprising that having code-intensive frameworks is encouraged, but a UI-intensive framework that achieves similar results is frowned upon. Are all users expected to get into PHP code and make a child theme if they wish to display something like excerpts instead of full posts? Admittedly the percentage of people opposing themes with elaborate options panels is small, but if you were to survey people across the web on what they would like better, I am sure you will find that themes with more options have more takers.

How I Have Improved

I have managed to keep abreast of WP changes by various means. Occasionally I go through the last few reviewed themes and see what kind of comments came up from reviewers. I then do an introspection to see if I am breaking any guidelines myself, then I embark on making the appropriate changes.

The ultra-buggy 3.7.5/3.7.7 release of the theme actually involved one such fundamental paradigm shift – I switched to using the Settings API. Nobody had mandated the shift: it just made sense based on comments provided to others. Getting the back-end coded to work with the Settings API was a huge challenge and I spent many hours labouring over getting things right. This was specifically because I had so many options that I needed to group them in three levels (most tutorials on options deal with just one level, and an exceptionally detailed one by Chip Bennett deal with 2 – you can see my comments there).  But at the end of the day it was quite satisfying to get the API working and in place.

Another key functionality I built in was an image resizer, again in 3.7.5/3.7.7. I used to have TimThumb as the resizing script, though I did have support for native WP thumbnails as well. But with the 3.7.5 release I completely eliminated TimThumb, thanks to repeated discouragement for the script in the theme reviews. My resultant code is quite powerful and versatile, but is limited by certain ways of WP handling image resizing natively.

As it turns out, there are a few things I still need to address in Suffusion, namely the use of WP’s native Header and Background functionality. I will be pondering over those the next few days, because the last thing I would want is to break functionality that is working fine for the thousands of users of the theme.

But believe me – it makes a developer very happy to have zero errors on debugging, and have Theme Check say “Pass”!

When in Doubt, Ask!

If you are implementing a big ticket feature that can trespass into gray areas of theme development and involves writing to files or reading from files, do yourself a favour. Ask. The WPTRT mailing list has folks like Chip Bennett and Edward Caissie (Cais) who have been a part of the review team since its inception, Simon Prosser who has written the Theme Check plugin (currently maintained by Otto and Simon), Otto and Justin Tadlock who are WP veterans, and Andrew Nacin who is a key member of the core WP development team. There are other volunteers who have been a part of the process for a very long time.

You might not be in 100% agreement with what they say (a lot of it might appear to be stifling if your goals are ambitious), but asking before implementation will give you fair warning and a potential sense of direction with respect to how you should implement certain features. It will also help avoid some long-drawn and nasty battles.

To Conclude

The Review Experiment is no longer an experiment. It is a formal process that is here to stay. It has helped improve theme quality across the board. Kudos to the review team for making the process successful!

Jul 242011

Version 3.8.2 of Suffusion was approved today. As promised this is a minor release with just some minor new features. The following are the list of changes:

  1. New Features
    1. New Widgets
      There are two new widgets and one revamped widget:
      1. Child Pages
        This might make some people happy. The Child Pages widget, if activated, can show you the child pages for the current page. Think of a use case where you are writing a book via WP. You could make a section of the book a parent page, then all the chapters in there child pages. If you have this widget activated, you will see the links to the chapters in the widget. Obviously, if you go to a different parent page you will see the child pages of that. What’s more – if your page has no child pages, or if you are viewing a post archive or a single post, the widget is automatically turned off. Of course, there is an option to turn it back on, but I don’t see a reason to use it. The title of this widget supports short-codes, so you can use one to dynamically control what is displayed.
      2. Query Users
        WordPress site owners with multiple users, rejoice! The Query Users widget can display all users of your blog by authentication level (Contributor, Editor etc). You can also choose to display the description for the user or simply display the Avatar. With certain tweaks you can make it behave like an “About Me” widget, wherein your Avatar is displayed along with your description and the number of posts you have written. The users displayed can be linked to either their regular WP Author pages or to the BP Profile pages (if you have BuddyPress installed).
      3. Query Posts
        This is really the old Category Posts widget. I have added capabilities such as filtering by tags, ordering by title, comments etc. With appropriate configurations you can make this behave like a “Recent Posts” widget or a “Popular Posts” widget. The advantage this offers is that it is capable of displaying thumbnails for your posts. I would have ideally liked to include a few more choices like displaying specific archives, or displaying the child posts for the current view, but those are for a later release.
    2. I have added support for manual excerpts in pages. This was just a simple one line addition – I should have thought of it long back.
    3. Another feature added is more framework-like. In case you are building a child theme of Suffusion, you can add an “Announcements Feed” to your style.css file and that can show up on installations of your child theme with a “New Version available” message, like the one you see in Suffusion’s option panel currently.
  2. Bug Fixes
    1. There was a small bug in the Featured Posts excerpt, which was not honouring the word limit defined in the options. Thanks to Justin Klein for the report and the fix.
    2. There has been a long-standing bug for IE8 that prevented native WP thumbnails from displaying. Hopefully this release fixes it.
    3. In a fix for IE7 while using the “No Sidebars” template I broke some functionality, wherein a page without comments would collapse in width. This has now been fixed.
  3. Code Housekeeping
    1. Again thanks to Justin Klein there has been an optimization in terms of database entry storing. Earlier, if posts were using the default template, an entry used to be saved in the database. I have modified the code so that “default” is not stored any longer.
    2. A ghost file called “mosaic.php” had been left in the theme in the last two releases. I have removed it.
    3. I have also switched to using WordPress’ native “contextual help” for the admin panels. What does this mean? When you view any options page in Suffusion, you will see a small link saying “Help” in the top right, near “Screen Options”. I have moved the help texts to that section instead of having the “?” icon near the options page headings. This has entailed removal of “jquery-dialog” from the back-end, hence one fewer JS file to load.
    4. I have cleaned up some miscellaneous comments and redundant code in the admin files.
  4. I have updated the translation file. Translators, please fire away.

The next few weeks I will focus on a plugin called Photonic. It is the photo-blogging plugin that I had promised.


Jul 112011

Suffusion should be two years old early next month, and I have been working towards some nice but peripheral additions to the theme to get it ready for the next release.

Suffusion, Quo Vadis?

(Whither goest thou, Suffusion?)

The main feature of the next release is going to be some new widgets:

  1. The “Category Posts” widget will be renamed as a “Query Posts” widget. Apart from fetching posts in categories you will be able to query on other parameters too, such as random posts, recent posts and popular posts (popularity judged by number of comments). This way all the standard WP widgets for which no post thumbnails exist can be replaced by this widget. I have finished a good bit of work on this already.
  2. There will be a new “Query Users” widget that will be really useful for multi-user sites. In addition you will be able to pick just a single user and make this widget double up as a “User Profile” widget. The development for this widget is complete.
  3. There is also going to be a “Query Comments” widget. I haven’t given much thought to this, apart from allowing the display of recent comments and random comments with either the post thumbnail or the user Avatar displayed.

I have been thinking about a few more widgets, but they will take more time to materialize. One concept I am thinking of widgetizing is the “Headlines” section of the Magazine template, but I don’t know if that will happen in this release or later.

This release is going to be in line with my now reborn “short releases” approach, where apart from the widgets and some code reengineering at the back-end you shouldn’t see too many changes.

Photo-Blogging: Alea Jacta Est

(Photo-Blogging: The die has been cast)

Next is the update on the photo-blogging plugin. One of the main issues I faced in the aborted attempts to include photo-blogging support in Suffusion itself was the fact that from a GUI perspective I wasn’t able to show nested structures very well. In other words, I couldn’t show a Flickr Collection on your site, then click on it to launch a popup showing the Photosets in the collection, then click on a particular photoset to see all the photos in it. I could very comfortably make it work for one level of nesting, but anything beyond that was a gone case. I **may** have found a way around this. I am working out the finer details, but the photo-blogging plugin is now much closer to completion.

Just a note to set the expectations at a correct level: this is not a photo-blogging plugin in the classical sense. Rather it is an extension of the native WP Gallery features, in the sense that the plugin will let you include photos you have on your Flickr or Picasa accounts. You will be able to view all of them as slideshows in JS libraries of your choice.

The plugin is not currently intended to interface with ZenPhoto or Coppermine or PixelPost or Gallery2 and at least in its first iteration will not support reading folder structures to determine albums, sub-albums etc (too many security issues to go through if I have to introduce this functionality).

But I have already built out most of the code and hopefully will be able to release the plugin early next month.

Other Plugins: Draco Dormiens Nunquam Titillandus!

(Other Plugins: Never tickle a sleeping dragon!)

Contrary to the advice above, I have already tickled the sleeping dragon. I started building out a Fonts management plugin and hit a technical hurdle right away, but it is something that will definitely be built.

I had also mentioned making plugins so that users are not tied to Suffusion as a theme for specific functionality. While I haven’t taken explicit steps in this direction, a lot of subtle changes are being made in the theme to, say, make the widgets portable, or to make the short-codes work in other non-Suffusion sites.

That’s my update for now.

PS: Yes. I am quite excited about the last instalment in the Harry Potter movie series, hence the blatant rip-off of the Hogwarts school motto.

Jul 052011

Version 3.8.1 went live today. This version addresses the issues reported with Version 3.8.0.

Truth be told I was a bit nervous about 3.8.0 because the change log for that version was almost 40 items long and since the development took over 4 months, I was concerned that what I had started developing in February might have been forgotten by June. Luckily nothing of that sort happened, and though there were bugs, they were nowhere as bad as 3.7.5/3.7.7.

So here is the list of changes:

  1. Bug Fixes
    1. In IE9, there was a stray closing comment tag (-->) appearing near the top of the page. This was due to the incorrect inclusion of a conditional script in IE for rounded corners.
    2. I had upgraded the JQuery Cycle scripts for featured content in the theme. This didn’t pose any problems in most cases, however some users reported that when the Featured Content Widget was being used with the “lite” version of the script, the script stopped cycling through images. I have rolled back the JQuery Cycle script, so hopefully there will be no issues.
    3. There was an undetected bug which would have caused JS errors in IE6 because I had forgotten to include a particular script. I have addressed this.
    4. Another “Featured Posts Widget” bug was causing the images to get squished when the widget was in the “Widget Area Below Header” or in the “Widget Area Above Footer”. I have addressed this. Props to “Kapusjon” on the support forum for helping me track this down!
  2. New Features
    1. I have enhanced the post_class() functionality in the theme. It now includes some classes for posts, such as category-xx-id (the id for the category), post-seq-x (the number of the post on a page), post-parity-odd (whether the post is in an odd location or even). You can take advantages of these classes for adding extra styles to your site.
  3. Code Changes
    1. I have removed output buffering where possible. This shouldn’t impact you as a user.
    2. I have replaced a query parameter in the Featured Content to ignore sticky posts – this is because the previous query parameter was deprecated.
    3. I have added a wp_reset_query() call to the Category Posts widget to account for any query changes to it.

I would also like to get your inputs on features that you liked or would like to see improved in the previous release. I added a lot of them, like column control for individual posts and the magazine layout, enhancements to the Twitter and Category Posts widgets and byline information handling for the magazine template, the tile layout and post formats.

Jul 012011

Version 3.7.9 of Suffusion was approved today, and as things happen, shortly after approval I discovered a bug which I fixed. So the new version available is 3.8.0. This version should work on the upcoming WP 3.2 – I have made sure that the admin-side JS doesn’t break.

This version has a very long but hopefully low impact change log. The following are the changes:

  1. Bug Fixes
    1. There was a problem with selecting fonts that had spaces in their name in the back-end. This has been addressed.
    2. In IE7 if you were to use the “No Sidebars” template with the “Widget Area Below Header” enabled, there were markup issues. This has been addressed.
    3. The “pullout” style displays (like the Minima skin) had an error in the markup – it was missing a closing tag.
    4. The image resizer was incorrectly creating multiple copies of the source file if the file extension was in uppercase. Now it will not.
    5. I fixed a bug where the sidebars below Sidebar 1 and Sidebar 2 were incorrectly picking the styles defined for the upper sidebars.
    6. This is not a bug fix as such, but I removed the “Notifier Failed” message that was shown earlier in the options panel if my site was down.
    7. I fixed a minor problem where the options panel was sometimes showing incorrect values for default colours.
    8. The sitemap template was not showing contents properly without saving the options for it twice. Now that has been resolved.
    9. Another minor bug fixed is that in the Alternate Page Title handling. There was a small inaccuracy in the code that would prevent the alternate titles from working under some circumstances.
  2. Changed Features
    1. The “Edit” link earlier used to be displayed only on singular views (i.e. on pages and on single posts). I have now made it visible on the archive views too.
    2. I made the button bar in the back-end a lot less intrusive, based on user feedback. I also made the back-end fluid-width instead of fixed width.
    3. The Featured Content has always used the JQuery Cycle plugin. Cycle was meant to cycle through a series of images, so it displayed a blank box whenever you had a single post in your featured content. I worked around this – you can now have just one post in your featured content and it will work just fine.
    4. Code Housekeeping
      1. IE6-specific Cleanup
        1. In an effort to clean up for IE6, I replaced Microsoft Expressions with JavaScript. As an end user you will not see any impact, except that it speeds up a few things. Not that I expect you to use IE6, but even so.
        2. I also got the IE-specific fixes to enqueue instead of including them directly. Again, you can safely ignore this – it will not impact you as a user.
      2. I swapped out some of the admin panel checks with standard WP functions like checked() and selected().
      3. There are some minor CSS cleanups done.
      4. I have swapped out the use of $post->post_title with get_the_title(). so that the right filters are applied.
      5. I have removed the scripts for JQuery Accordion – it was something erroneously included in the first place, so removing it should have no impact on you.
    5. The replacement text for […] in excerpts now supports HTML in addition to plain text.
  3. New Features
    1. This is something that folks might like: I introduced a method to search for options in the back-end. It is not perfect, but it should help people find options a lot quicker. You will see a box called “Quick Search” in your options screens – that is where you can start typing what you are looking for.
    2. Magazine and Tile Layout
      1. Now there is byline support for the Tile Layout and the Magazine Template. Hopefully you will like what has been implemented. To save on real estate, this has been implemented as clickable icons, which you can click to see the details.
      2. Additional modifications to the Magazine Template include the ability to control the number of sidebars in there. This too makes its way after quite a few requests.
      3. Custom thumbnail sizes can now explicitly be defined for the Tile Layout. Earlier the thumbnail inherited the sizes from the Magazine layout.
    3. Widgets
      1. There is a new Flickr widget to help display your Flickr stream. It is not as fancy as what I had put together for the gallery short-code extension, but it does its job as it should.
      2. The Twitter Widget got a rewrite! It now displays your Avatar for your tweets, and the Avatar of the original tweeter in case of a retweet.
      3. The Category Posts widget (and the static category posts in the magazine layout) got a rewrite too! It now displays a post thumbnail, in addition to an excerpt if you wish. You can additionally control the length of the excerpt and make it different from that of a standard excerpt.
    4. Special Handling
      1. Support for post formats has been significantly improved. For each post format you can control how the bylines should appear etc. Check out Other Graphical Elements → Post Formats.
      2. You can now control the number of sidebars on single posts. In your “Edit Post” screen you will see a drop-down that says “Select the sidebar layout to apply to this post” under “Additional Options for Suffusion”. You can pick the layout you wish for that.
      3. You can now hide the page title for pages. In the “Edit Page” screen you will see a checkbox that says “Do not display the page title” under “Additional Options for Suffusion”, which upon selecting will hide the page title.
      4. For posts without a title, a specific “Permalink” is displayed. This is turned on by default and can be switched off in Other Graphical Elements → Post and Page Bylines.
    5. A search form has been added to the 404 page, as per WordPress requirements.
    6. For image attachments you can display all available image sizes at the top. Take a look at Templates → Attachments.
    7. Rounded corner support has been extended to IE9.
    8. There is a new “Mosaic Layout”. Consider this an apology for not including the photo-blogging features I had thought I would, but this was the least I felt I could do. The mosaic layout will display just the thumbnails of your posts in an archive view, nothing else. In many ways it is like the List Layout, except that this shows thumbnails instead of titles.
    9. There is a new short code that accompanies the Flickr Widget, called suffusion-flickr. It takes the same parameters as the widget, so you can pass the following
      1. id – Mandatory, can be obtained from using your photo stream’s URL
      2. type – Mandatory, legitimate values: user, group
      3. size – Optional, legitimate values: s (square), t (thumbnail), m (mid-size); default: s
      4. number – Optional, default 10
      5. order – Optional, legitimate values: latest, random; default: latest
      6. layout – Optional, legitimate values: h (horizontal), v (vertical), x (no layout – user-styled); default: x
    10. There are a couple of new filters: suffusion_comment_form_fields and suffusion_permalink_text. The former can be used if you want to override the fields in the comment form, while the latter can be used to override the “Permalink” text that you see for the newly introduced permalink byline.
    11. In the previous version I introduced WPML support for text fields entered on the admin side. In this release this support has been extended to fields that are of type “textarea” as well. E.g. The 404 page content under Templates → 404 is a text area, so the text you have there can be translated into multiple languages using WPML.
  4. Removed Features
    1. I removed the ability to load JS files in the footer, because this was causing a lot of dependency issues. Most caching plugins will let you do this, though, so you are not really losing out on much by means of functionality.

There is one thing I am not pleased with for this release, and that is a lack of polish on some of the new functionality, like the enhanced Post Format support, the Mosaic Layout etc. Believe me, I would have done things much better if I had more time to spare, but having got caught up between releasing the theme to be WP 3.2-ready and adding features and working full-time elsewhere, I had to make some sacrifices. Rest assured that I will improve on these in the near future.

I would again like to reiterate something that I touched upon in my last few posts. Suffusion is almost 2 years old and has evolved into something that I am very proud of. However, due to several factors I believe now is the time to wind down the development of the theme:

  1. The theme has reached a level of complexity beyond which it will become more of a liability than an asset. So from now on, big ticket new features are a strict no-no, except for some things documented below.
  2. I am trying to reclaim some time for myself. Thanks to all volunteers on the forum (you know who you are!) the load on me has reduced quite a lot, however with every new feature comes a new set of support questions. Juggling between coding, supporting and working is turning out to be a strain.

However, in the light of the queries posted in response to my previous post I must hasten to point out:

  1. Incremental development will continue, like new skins, new templates, support for newer WP versions.
  2. Some big ticket items are still in scope for the theme, specifically in the area of sidebars, and making the theme more of a customizable framework.
  3. I will channel my energy into building some plugins that you can take with you to any theme. As mentioned in my last post I will bundle the photo-blogging features into a plugin. In addition I will build some plugins to manage fonts etc.
  4. I will improve theme documentation.
  5. I will also switch back to mini-releases instead of humongous ones. Though a lot of people don’t like frequent updates to the theme, from my experience over the last few releases, smaller updates are easier to process and definitely easier to support.


Jun 282011

Folks, I have another update on Version 3.7.9 of Suffusion. Unfortunately it is not all good news.

Bad News 1

The feature most looked forward to for this release was undoubtedly photo-blogging. Unfortunately I had to pull this to a large extent. The reason was that I have been quite busy on both, personal and professional fronts and I wasn’t able to dedicate as much time to the theme as I used to earlier. As a result, the last 20% of the features that needed to be fixed for photo-blogging became too daunting to tackle. Eventually I culled the features from the theme.

The reason was that WP version 3.2 is almost upon us, and I am pretty sure that due to the JQuery library changes in the core, version 3.7.8 is going to break on the admin panel side of things (the theme itself would work). So I had to fast-track the development and remove things that were taking too long to build.

Good News 1

This was something I had been debating for a while – should the photo-blogging support be a part of a plugin? Eventually I decided “yes”. As I wrote earlier, I have done a lot of work on the integration of WP galleries with Flickr and Picasa and it would be a shame to throw it all away. So I decided to make a plugin with it. Strictly speaking it is an enhancement of a standard short-code, hence it does fit in the plugin territory. I will keep you posted about the developments on that front.

Bad News 2

I had also hoped to revamp a few things like how the featured content slider looks, in terms of placement of the post index etc. Another area I was working on was the look and feel for the tiles and the magazine layout. Again, these have been relegated to the back-seat for now.

Good News 2

There are, however, several improvements to the magazine layout in general and to the theme overall, like some new widgets, some improved widgets etc. I will publish the full change log once the release is done. The change log is not small by any means.

I should be submitting the new version in a day or two. Hope you will like it.

On a personal front, I believe I have almost reached saturation as far as Suffusion is concerned. I will actively try to avoid big ticket new features from now on and instead focus on releasing functionality as plugins. I will also try to improve my site design skills and make Suffusion look pretty on the front. I believe I have built a unique framework in the sense that it works for people who are not very code savvy, so my goal has been more or less achieved.

Jun 102011
How To

Gauging by trending questions on the Support Forum, I decided to start a series of simple “How To” solutions. Each addresses an oft answered yet frequently asked question on different support forums. Unlike the broader spectrum “Recipes”, this will require little to no coding.

Here’s hoping that people will find the series useful.

To hide the search box in the navigation bar of Suffusion:

  1. Go to Suffusion Options → Sidebar Configuration → Right Header Widgets
  2. For “Show Search in Widget Area on right side of header”, set it to “Hide the Search”


May 162011

A note just came out on certain core changes for WP 3.2, which makes my job tougher.

WP has updated its core JQuery version from 1.4.4 to 1.6.1 and the corresponding JQuery UI version from 1.8.7 to 1.8.12. This means that I now have to have yet another switch at the back-end to compare version numbers of WP, then include the corresponding JQuery UI libraries (one of the JQuery UI plugins I use, “Slider” is not distributed by WP). This also means that faulty plugins have the opportunity to wreck more themes. Aaarrrggghhh!!!

Another undesirable impact is that a release that is already late will get even more delayed – the Beta 1 version of WP 3.2 doesn’t have the latest libraries, so I have to wait till a new Beta is released to test my changes, since I am not very keen about checking code off the development version of WP.

The delays notwithstanding, I plan to put out very soon a demo showcasing some of the new features of the next version of Suffusion. So stay tuned.