Sayontan Sinha is a technology strategy consultant living in Houston, Texas. Coding is his hobby, as are philately, numismatics, classical music, creative writing and quizzing. He is the author of numerous pieces of WordPress software, including the ultra-popular Suffusion WordPress theme and the versatile Photonic (for Flickr, Picasa, Smugmug and integration) and FontMeister.

Nov 072010

After what seems like ages, here is a new version of Suffusion. As already mentioned, this has been a very very code-intensive release because of the nature of the changes.

These are the main changes in this release:

  1. New Features
    The following were added in this release:
    1. Fluid Width – By far the biggest change in Suffusion since the inclusion of options in the very second release. This change required me to overhaul the HTML structure of the theme and always put the content before the sidebars, then do massive amounts of testing. While I put in every bit of effort required to get this working as per expectations, if you find something that is not working as you expect, please let me know. I will be very happy to fix it.
    2. Improved Menus – In any other release this would have been the prima donna. But as it stands, this has been relegated to second position. Now you have even better control of your navigation menus, in terms of the number of options you can pick from:
      1. Include all, ignoring next option
      2. Include selections from the next option
      3. Exclude all, ignoring next option (New)
      4. Exclude selections from the next option (New)

      The new options can be better understood in context of some major code reengineering. Earlier I had a very comprehensive menu-building code, that worked very intuitively. This behavior was different from WP’s default behavior. However the old code created an insane number of queries, particularly if your menu was big.
      In this release I have removed all my self-created code and resorted to using WP’s inbuilt functions – wp_list_pages, wp_list_categories, wp_list_bookmarks and wp_nav_menu. his significantly reduces the number of queries and the load on your server.
      As a tip, if you want to completely remove pages/categories/links from your menu, use the “Exclude all, ignoring next option” setting instead of “Include selections from the next option”. This is much more optimal in terms of code.

    3. You can now get rid of the HTML title that shows up when you hover over your navigation menu. Visit Blog Features → Main Navigation Bar Setup → “Title” attribute upon hovering over navigation bar.
    4. There was no styling available for the HTML elements legend and fieldset. CSS declarations have been added for them.
  2. Removed Features
    The following features have been removed:
    1. I have removed the “rolled-up” setting for WP 3.0 menus as it is redundant. If you want to create a rolled-up menu you can automatically create a base node in the menu and add the rest of your menu under it.
    2. I have also removed the option to not use body_class WP function to generate classes for your body. This removal was essential because the body_class function is essential to the style setup for the theme.
  3. Bug Fixes
    The following bugs were fixed:
    1. A fix has been included for a severe bug that was causing page templates to max out at a width of 600px. The bug was caused by incorrectly applying filters to the sidebars and templates.
    2. The following navigation menu-related bugs have been fixed:
      1. Selected navigation bar items (Pages, Categories and WP 3.0 menus) were not getting highlighted in the Minima skin.
      2. Selected navigation bar items for WP 3.0 menus were not getting highlighted across any skin.
      3. The values set for highlighting in Visual Effects → Theme Skinning were not being accurately reflected.
    3. The following BuddyPress-related bugs have been fixed:
      1. In various BP screens, if something was selected from a drop-down list (like filters, or sort criteria), nothing was happening. The correct AJAX calls for this have been included.
      2. The Create Profile and Edit Profile pages in BP were not rendering properly. This has been fixed.
      3. Messages in the inbox etc. were not being styled properly. This has been addressed.
    4. There was a bug in the List Layout style, which was offsetting the posts by 1 if all posts were not being displayed. In other words, the top post was not being displayed, and if there were  N+1 posts in all and each page was to display N posts, the second page was showing an error. This has been rectified.
    5. Links in featured content were not getting the right color. Again, this has been fixed.
    6. There was an error in the charset syntax in header.php, style.php and rounded-corners.php. This wasn’t impacting anything as such, but it has been rectified nonetheless.
    7. In the options pages if you put in 0 as a value for some dimensions it wasn’t being read correctly. I have changed the code to handle this.
  4. Changes
    1. The comments section has been revamped to look better and to facilitate better styling. There is now a custom callback function invoked from there.
    2. As per the theme review guidelines I had to change the credit link at the bottom. It now just links to the Suffusion home page and not my home page.
    3. Somewhat whimsically I have changed the default font from Arial to Trebuchet. You can however switch back to Trebuchet if you want, from the Visual Effects → Body Font Customization options.
    4. You now will not see any version tag appended to JS files included by the theme.
    5. The Spanish and French translations have been updated. Thanks to David for his modifications of the French translation!

I will soon update the Suffusion BP Pack so that you can make use of the new changes to the core theme. I will keep you posted.

Nov 072010

After slogging very hard the last 3 weeks I managed to get all the changes I was hoping to include in place for version 3.6.7 last night. Making use of the illusion of an extra hour from daylight savings I went ahead and tried to submit the theme to WordPress.

But as I tried to submit it I hit a snag. I kept getting a message that said:

Error 413: Request Entity Too Large

No matter what I tried and from which browser and machine, the error did not change. It is highly likely that the WP servers had a configuration change in the back-end. I did post out a message to the theme reviewers asking them as to why this is happening. After all the file is just marginally larger than the previous versions and I have never had this problem earlier. Let’s see what they say.

As I mentioned earlier, the primary features of this release were a reworking of the navigation bar code, a fundamental change to the HTML markup and a set of options for fluid/flexible width. In addition there have been a number of BuddyPress-related style changes. I will release a new version of the Suffusion BuddyPress Pack when this version of Suffusion gets approved.

I will post a detailed change log once the theme is approved.

Oct 282010

This is a follow-up to my previous post. I wrote earlier that I was incorporating fluid-width options into Suffusion. Over the past couple of weeks I have managed to work a good bit on this and I am happy to say that I have managed to get the markup rearranged, and I started full-fledged work on incorporating fluid width into the theme today.

You might be wondering what I mean when I say “get the markup rearranged”. To explain, with a fixed-width setting I can define my layout this way:

<div id='sidebar-1'>…</div>
<div id='sidebar-2'>…</div>
<div id='main-content'>…</div>

This would render my page showing the first sidebar, then the second sidebar and then the main content – in other words, it represents a layout with 2 left sidebars. The code would change depending on the layout. So if I wanted a single left and a single right sidebar, my markup would become:

<div id='sidebar-1'>…</div>
<div id='main-content'>…</div>
<div id='sidebar-2'>…</div>

This works pretty easily and well with fixed-width layouts because each column has a pre-defined width. However with fluid width there are significant problems in this approach. Typically fluid width layouts would mean that the sidebars have pre-defined widths in pixels, but the main-content column takes up the remaining available space. Naturally, when you have the main-content appearing before a sidebar, the challenges become significant.

The fix for this is to use what is referred to as the CSS Holy Grail. Actually the Holy Grail is for a fluid-width central column and fixed width sidebars, but the markup and CSS for it can be extended to fixed width layouts as well. Using this approach you will really have just one markup for all layouts:

<div id='main-content'>…</div>
<div id='sidebar-1'>…</div>
<div id='sidebar-2'>…</div>

You can then use the CSS properties float, margin-left, margin-right, left and right to control where you want to show what. This approach is recommended by experts because:

  1. You can change your layout, but your content will always remain the same. So depending on your layout your CSS changes, not your HTML.
  2. This has the added benefit of being SEO-friendly, because your main content is closer to the beginning of your document. Particularly in cases where you have a long sidebar, this is a great benefit.

Porting this approach to a fixed-width setting, however was a huge challenge. Just think about it – I had to test all the following configurations for the changed markup:

  1. General layout:
    1. No sidebars
    2. Single left sidebar
    3. Single right sidebar
    4. Single left, single right sidebars
    5. Double left sidebars
    6. Double right sidebars
  2. Page templates for each of the 6 configurations above
  3. In each of the configurations above I had to factor in situations where you would have tabbed widgets, wide sidebars etc.

All in all this amounts to more than 50 different configurations. To add to the complexity, it would have been a great world if Internet Explorer was well-behaved. Instead, for each of the 50+ configurations above, I had to tear my hair out figuring out what works for IE6.

Anyway, this part of the challenge has been overcome. I am working on now putting in fluid width components into the layout. This has its own set of challenges. I had never imagined how easy fixed width has been so far. In changing the code I am now realizing how ingrained the fixed widths are into different elements of the layout. I had a lot of widths running off the main-content column’s width. Again, our favorite IE6 and Microsoft’s proprietary “expressions” are causing me a lot of grief.

Stay tuned – I will hopefully have the new release out very soon.

Oct 112010

This is the longest I have gone between releases of Suffusion and unfortunately the current release is significantly more complex than the previous ones, hence version 3.6.7 is still a few weeks away from release.

A general fact of any software development cycle is that the more complex the software the longer the development cycle. As things stand today Suffusion is quite complex under the hood. As a result when I try to make a foundational change to the theme, it is a very very arduous exercise. Such changes were much easier to make when the theme was simpler. That is the difference between foundational changes and add-on changes: add-on changes are still easy to do given the theme’s modular structuring, which is why I can add new sidebars etc without breaking a sweat (actually adding sidebars is not that easy, but it still is much easier than what I am doing right now). There are two major changes I am working on at present:

  1. A revamped approach to navigation menus – I was never happy with the way WP handled its functions wp_list_pages etc. I felt that their concepts of “include” and “exclude” were slightly messy and I tried to build a fool-proof system for building menus myself. The net result:
    1. I was successful because I achieved what I had set out to do. Including and excluding items worked as advertised.
    2. I ended up introducing some rather undesirable inefficiencies in the code. The menu-bar code worked well, but to work the way I had envisioned it required to do a lot more queries in the back-end system. For users who had a large number of pages etc, the menus generated at least 100 extra database queries.
    3. Some plugins refused to cooperate with the menu code.
    4. Some features like highlighting the correct page etc were notoriously hard to implement.

    So in this release I decided to fall back on WP’s standard functions instead of my enhanced ones. The result is that menus will not work the way I think they should (which shouldn’t really concern you – I am but one individual), but they will work the way WP thinks they should.
    The change is complex because it required me to change all my menu code, test for pages, categories, links and WP 3.0 menus, fix all style-related problems and what not. Luckily though, this is a piece that I have finished implementing.

  2. An option for fluid width – This is a more cataclysmic change. It involves revamping the entire HTML markup and a humongous amount of implementation and testing. This piece is taking a lot of time to finish implementing, let alone get into full-blown testing.

Adding to the implementation complexity are some major changes on the personal front for me, like an upcoming move from the US to Canada and you can see why this release has been taking time.

The light at the end of the tunnel, though, is that once this release is done, you can do pretty much anything with the theme layout. At that point I can focus on the funky features I had promised in the birthday post of Suffusion.

Sep 272010

Over the past several weeks I have been finding it very difficult to provide support for Suffusion. It is becoming increasingly difficult for me to keep up with my day job, theme development, support and most importantly, my life.

With immediate effect I am formally announcing a reduction in the support I provide for the theme. For folks familiar with the forums, there are 3 categories where you can post topics at present: Bug Reports, Support Requests and Translations. From now on, I will only respond to questions where I believe my explicit inputs are required, like a genuine bug report, or some specific support topics.

All questions of the following sort will be generally ignored by me (others might choose to offer solutions, though, and I might occasionally respond to such queries):

  1. How to integrate plugin X with the theme (which file to edit etc.).
  2. Most questions regarding why your layout is broken. I say “most” because there are times when the layout being broken is truly because of a bug, but in 90% of the cases it is due to a user putting in improper HTML.
  3. Any question on adding support for a feature will be ignored. For example, allowing Flash-based headers, ability to load images through the theme options etc.
  4. Questions asking “What will happen if I upgrade the theme? Will I lose my changes?” This question has been answered literally hundreds of times at several places.
  5. Sending me a PM asking for a solution will be ignored. And sending me an email asking for a solution will be ignored too. The forum exists so that people can share information, so sending me a PM or email defeats the purpose of the forum. As things stand today I anyway redirect users to post on the forum if they send me a PM or email, so it is not like you will lose out on any support by this official announcement.

The forum has had several thousand posts in the last one year and a lot of questions have been answered there. But what had been originally set up as a means to genuinely help people out has now become a free-for-all, with a lot of people rushing in to cut corners on development costs by piling on the free support offered here. I am finally taking a stand here – if you need a complex requirement for your site, please hire a developer and get him/her to customize the theme for you.

What you can do to speed up things on your side are the following:

  1. I encourage searching the forum and finding things out for yourself. As mentioned, several thousand posts exist in the forum and a very high likelihood exists that something has been answered.
  2. The software is released as open-source for a reason: so that you can read and modify source code if you really need to do something not offered by the theme.
  3. Without a trace of hubris I will state that the theme is extremely customizable, more than several premium themes. In addition, for people happy about writing code it offers you full support for child themes. Both of these combined let you customize the theme as per your will. Make use of these facts – they will make life a lot easier for you.

At this point I would like to extend my deepest gratitude to Connie, Dark_Fox28, Colin and other folks who have been tirelessly volunteering with support issues. If I do happen to meet any of you, lunch/dinner is on me.

I will continue to publish tutorials every now and then on how to maximize your output with Suffusion, and I will continue to put out new releases (albeit at a much slower pace), but please don’t expect anything more than that from me. It is quite depressing to receive 60+ support requests when you are on vacation for 2 days, when you know that you are already handing out software for free that would have taken people thousands of dollars to develop.

Sep 102010

Version 3.6.6 of Suffusion was approved today. Here are the major changes in this version:

  1. New Features
    1. Finally a very frequently demanded feature has made its way into the theme. Visit Visual Effects → Theme Skinning. Guess what? You can now skin the Navigation Bars! The navigation bars are way too complex to handle purely by CSS, hence there is a small chance I might have missed something. If so, please report it on the Support Forum.
    2. A few new filters have been added. See point #3 in the previous post: there are new filters for suffusion_filter_template_prefixes and suffusion_filter_template_sidebars. In addition there is a new filter for suffusion_set_title. This will help you control the title on specific pages of your site. For example look at my personal site. The page title is “Eloi and Morlocks” for most pages, yet the home page says “Sayontan Sinha’s home page”.
    3. There is a new template for building an HTML sitemap of your site. There are a lot of configuration options available, which you can check out from Templates → Sitemap.
    4. You can now change the order of entities on your Magazine template. Take a look at Templates → Magazine to see how. I will introduce an ability to order things within excerpts etc in a later release.
    5. You can also position the footer better now – either inside the wrapper or outside. See Visual Effects → Footer Customization for options.
    6. The “Author Information” section (Blog Features → User Profiles) was either visible for both, pages and posts, or invisible for both. I have added the capability to show it for either pages or for posts.
    7. I have also added extra security checks in the back-end by putting in check_admin_referer and check_ajax_referer calls to validate nonce values on options pages. This doesn’t impact users directly, but it adds an extra security layer.
    8. There is a new translation for Traditional Chinese (zh_TW). Thanks to Sh2153!
  2. Bug Fixes
    1. There was a problem with the auto-generated CSS file not being accessible in Multi-site installations or when zipping was switched off. I have fixed this.
    2. There was a problem with the “transparency” feature in Visual Effects → Theme Skinning. Earlier setting a transparency value would make all the included elements translucent. This was because I was using the CSS opacity attribute. I have switched the code to use RGBA instead of opacity and it at least works as expected for compliant browsers (Firefox, Chrome, Opera, Safari). I did try to fix it for IE using filters, but I couldn’t get it to work. I might introduce a hack for IE later. In any case, the functionality was broken in IE earlier as well, so you are not losing out on anything.
  3. Changes
    1. Users will probably love this. The buttons on the options page are not at the bottom any more! And they are not at the top either! After a good bit of thinking I figured out a really smart way to position the buttons in a place that was always accessible, and didn’t require me to change much code. I present to you the new-look buttons:


      You can drag the button window to any other place on your screen, and it always floats in position. So even if you scroll up or down you will see the buttons. I do plan to shorten the lengthy options pages in a release soon. It has been on my agenda for a while now.

    2. Given the number of widget areas and their customization options, I pulled up the Sidebars and Widget Areas option and the Widget Styles option and created a new main menu option called Sidebars and Widgets.
    3. The German translations have been updated for version 3.6.5.

Hope you enjoy this release.

Sep 102010

With effect from version 3.7.5 of Suffusion any reference to Blog Features below should be read as Back-end Settings.

Thanks to Suffusion’s fairly complex back-end coding there are a few tips and tricks that will help you as a user use child themes effectively.

When Should I Use Child Themes?

The simplest use case I can think of for using child themes is if you have BuddyPress on a WP-MS (WordPress Multi-Site) configuration, because you will want to use the Suffusion BuddyPress Pack and you would want to prevent its files from getting overwritten every time you upgrade the theme.

Apart from that if you have significant changes that you want to  make to the layout, which cannot be accommodated through CSS alone, using a child theme is a very clean and elegant way to do it.

What Should I Know While Using Child Themes in Suffusion?

In this post I will highlight two tips and tricks regarding child themes in Suffusion.

  1. Import CSS
    As per WordPress guidelines this is the generic header of a child theme’s style.css should look like this:
    Theme Name: Son of Suffusion
    Theme URI: http://your-theme-url
    Description: Child Theme based on Suffusion
    Version: 1.0.0
    Author: Your Name
    Author URI: http://your-url
    Template: suffusion
    @import url("../suffusion/style.css");

    But here is a catch. You are typically going to select a skin for Suffusion. If so, you will have multiple stylesheets included in your page, depending on your skin:

    1. For light themes (if the theme is Gray Shade 1 on a light background): style.css → skins/light-theme-gray-1/skin.css
    2. For dark themes (if the theme is Gray Shade 1 on a dark background): style.css → skins/light-theme-gray-1/skin.css → dark-style.css → skins/dark-theme-gray-1/skin.css
    3. For Minima (and future skins): style.css → skins/minima/skin.css

    Note that this entire stylesheet hierarchy is loaded before your child theme is loaded, because of the complexity of the design. So by including your import statement you are actually re-inserting the base style.css file after all the other stylesheets. That will naturally cause display issues.

    As it turns out, the fix is easy. You have many options, actually:

    1. Go to Blog Features → Child Themes and set it to not inherit any stylesheets. You can then pick and choose your stylesheet declarations in this manner:
      Theme Name: Son of Suffusion
      Theme URI: http://your-theme-url
      Description: Child Theme based on Suffusion
      Version: 1.0.0
      Author: Your Name
      Author URI: http://your-url
      Template: suffusion
      @import url("../suffusion/style.css");
      @import url("../suffusion/skins/minima/skin.css");

      This way you are telling the theme to ignore the skin selection and you are handpicking the skins you want. Note that this method requires some familiarity with the theme’s internals.

    2. The second option works if you are using Suffusion’s internal optimization features from Blog Features → Site Optimization → Use Compression for CSS. You can choose to use either of the methods with GZIP compression. In addition, set the Blog Features → Child Themes to inherit the stylesheets. This method ignores any import statements that you might have in your child theme’s style.css
    3. The third method is even simpler. You can leave your Blog Features → Child Themes to inherit the stylesheets. But simply don’t put any @import statements in your style.css. That’s all. This is best suited if you are using the child theme as a replacement for the Custom Styles option.

  2. BuddyPress tag

    This is a very simple trick for using Suffusion with the Suffusion BuddyPress Pack. I have explained this trick on the BP Pack page too. If you are running WordPress in a multi-site mode and you want to use Suffusion, here is what you will see if you activate Suffusion as your default theme:

    You’ll need to activate a BuddyPress compatible theme to take advantage of all of the features. We’ve bundled a default theme, but you can always install some other compatible themes or upgrade your existing WordPress theme.

    Here is what you do to fix this message:

    1. Create a child theme with the following header:
      Theme Name: Son of Suffusion
      Theme URI: http://your-theme-url
      Description: Child Theme based on Suffusion
      Version: 1.0.0
      Author: Your Name
      Author URI: http://your-url
      Template: suffusion
      Tags: buddypress

      The last line is very important. It tells WP that your theme is BuddyPress-compatible.

    2. Download the files for the Suffusion BuddyPress Pack and put them in your child theme’s folder.
    3. Activate the child theme. The message goes away!!

    I could have added the "buddypress" tag to Suffusion by myself, but that really really slows down the approval of the theme. In fact I had added the tag in a prior version, but disappointed with the delay in it getting approved I separated BP support from the core theme.

  3. Sidebar Management

    This is a very cool trick if you want to create your own templates with different sidebars etc. I introduced this feature in version 3.6.6 after an interesting discussion on the support forum. Note: You don’t need to do all of this if you are adding a regular template that has the same number of sidebars as the rest of your site.

    The core of the requirement is that you might want to create your own templates that have specific arrangements of sidebars and other widget areas. For example you might create a template for a custom post type that uses 1 sidebar while the rest of your site uses 2 sidebars. How would you tell Suffusion that this template has 1 sidebar? Given that all components of Suffusion are fixed-width, you cannot simply avoid calling a sidebar function – that will result in an empty space.

    So how is this to be done? The answer: using filter hooks. I introduced two filter hooks in 3.6.6 – suffusion_filter_template_prefixes and suffusion_filter_template_sidebars. In the functions.php file of your child theme, put in this code:

    add_filter('suffusion_filter_template_prefixes', 'my_custom_template_prefixes');
    function my_custom_template_prefixes($template_prefixes) {
        if (is_array($template_prefixes)) {
            $template_prefixes['my-custom-template-1.php'] = false;
            $template_prefixes['my-custom-template-2.php'] = false;
            // In the above replace my-custom-template-1.php etc with the name of your template file.
            // For every custom template that has specific sidebar requirements create a line such as the above.
        return $template_prefixes;
    add_filter('suffusion_filter_template_sidebars', 'my_custom_template_sidebars');
    function my_custom_template_sidebars($template_sidebars) {
        if (is_array($template_sidebars)) {
            $template_sidebars['my-custom-template-1.php'] = 1;
            $template_sidebars['my-custom-template-2.php'] = 1;
            // In the above replace my-custom-template-1.php etc with the name of your template file and "1" with the number of sidebars you need.
            // For every custom template that has specific sidebar requirements create a line such as the above.
        return $template_sidebars;

    Be careful about not putting any empty spaces or new lines before and after the php tags! Otherwise you will get the notorious white screen of death.

    Once you have this code in place, you can have your custom templates in your theme with their unique sidebar arrangements, and not worry about Suffusion updates overwriting them.

Note that the last feature is not currently available, but it should soon be, based on when the next version is approved.

As I find more use cases of this sort I will post them for your consideration.

Aug 302010

It has been brought to my attention that an old problem with corrupted download files from the WP site has cropped up again. If you are seeing a message saying that the “Theme is broken” or if you get a “white screen of death” upon activating the theme, follow the instructions here.

Version 3.6.5 of Suffusion went live today. Actually first 3.6.4 went live, then some users pointed out a rather serious flaw, then I immediately patched it. The theme approvers, who have really improved their approval process a few notches up approved it rather quickly too. The following are a part of this release:

  1. New Features:
    One of the key focus areas of this release was server load reduction. The overall list of additions is as follows:
    1. There is an option to not include the generated CSS code in your page header. Instead the CSS gets written to a file and that file is linked in the page. This is good news for SEO. The bad news is that it needs some tweaks and some trial and error to get to work properly, like changing of the .htaccess file, or making use of Suffusion’s internal compression techniques etc. You can try enabling the option from Blog Features → Site Optimization → Auto-generate CSS file for customization options.
    2. In addition now all the options can be cached in the database. Earlier I was storing only the saved options in the database and leaving aside the default options. The downside of the older approach was that as my options page got massive, the memory footprint of the front-end pages started increasing. This will reduce memory footprint by at least 2MB – a significant reduction. You can control the settings here: Blog Features → Site Optimization → Cache dynamic options.
    3. Judging by the massive outrage on the support forum due to a change in the featured content behavior, I have added an option to let you include duplicate content from the featured content section on your main page as well. Control the settings from Blog Features → Featured Content.
    4. I have added options to include posts by post id or by tag in the featured content. Control the settings from Blog Features → Featured Content.
    5. I have also enhanced the Search results page to show the search term at the top. Additionally now there is a search form included on the search results page, along with an ability to highlight the matches.
    6. A user on the WP forum pointed out that if your posts were in multiple pages (in an archive view), subsequent pages didn’t show the page number in the title. I have addressed this. The page number is now appended to the title if you are on the second page or higher. Additionally the blog sub-title is a part of the page title on the home page or on the front page.
    7. I have added “nonce” checks to the admin pages to ensure better security.
    8. There is a new Turkish translation, thanks to Metin Selçuk.
  2. Bug Fixes:
    1. If you were using Suffusion’s inbuilt compression techniques, the page would fail XHTML validation. I thought that I had fixed it last time, however that was not the case. It is now truly fixed, I hope!
    2. In case of archive views with no posts (e.g. nothing found in the search results page) there was no content displayed. This has been fixed.
    3. While working at a furious pace to support some of the review criteria at WP I had broken backwards compatibility for menus. If you were on a WP version older than 2.9 you would have seen a fatal error. I have rectified this. Of all the bugs I have had to fix, I am sorry about this one most, because I am normally very good with backwards compatibility.
    4. There was another backwards-compatibility issue, but this time with PHP. There was a call to memory_get_usage, which is not available in really old versions of PHP (< 4.3.2) and is available with partial support in other versions of PHP. I have fixed this too.
    5. I have fixed a bug that was preventing child theme CSS from loading correctly. Note that if you have Suffusion’s GZIP compression disabled, child themes need to have all stylesheets explicitly invoked. In other words, not only the base style.css, but all the skin-specific CSS files have to be added.
    6. There was a bug introduced in the comments section, where a CSS element was being declared twice. I have fixed this issue.
  3. Changes:
    1. Again, there are minor stylesheet tweaks to the Minima skin
    2. As a part of some code housekeeping I have enqueued the stylesheets for the admin pages.
    3. I have also replaced the call to get_bloginfo('name') in the header with get_bloginfo('name', 'display') so that plugins that apply filters to the blog title work in tandem with the theme.
    4. I have restyled the blockquote element so that it looks a bit better.
    5. There are updates to the German (Du and Sie), Norwegian, Swedish, Dutch, Danish, Polish and French translations. Thanks, translators!

On a side note, I have closed the “Feature Requests” section of the support forum. As the theme grows in complexity and popularity, the support forum has been swirling out of control and I had to draw the line somewhere. Since the Feature Requests section saw a lot of traffic and a lot of requests for features that I simply am not in a position to provide, I have closed off that section of the forum.

Aug 102010

After a lot of delays and innumerable back-and-forth exchanges, a version of Suffusion has finally been approved – 3.6.3. This is essentially a combination of a large number of features and fixes, from release 3.5.8 through 3.6.3. If you look at the Change Log.txt file in the theme folder you will get an idea about how big the changes actually are:

  1. Bug Fixes
    There were quite a few bug fixes, actually:
    1. Fixed a bug that was displaying the “Comment form closed” message even if the settings were done to hide them. The slow approvals mean that questions get asked hundreds of times on the forum – this happened to be the top question over the last month.
    2. Fixed a minor problem with the style resets that I introduced in 3.5.6. This particular bug was causing Gallery items to spill over into a new line.
    3. The “Page of Posts” template was showing a NOTICE message with WordPress debugging turned on. I have fixed this.
    4. In my zeal to optimize code I had removed a bit too much in the “Now Reading” library page. The page was throwing up an error – that has now been fixed.
    5. Fixed a bug in the suffusion-tag-cloud short code. This was assigning an incorrect value to the number parameter.
      Note: You can use this short code in a text widget to display a tag cloud. It gives you a lot more control in terms of the number of tags you want to show and the sizes you want to set for each.
    6. Fixed a bug in the Custom Post Types section that was not saving post types with the correct index.
    7. Fixed a bug that was causing single quote characters in the post title to cause invalid markup.
    8. Fixed a bug in the “No Sidebars” template where the maximum width of the image was being set incorrectly.
    9. An incorrect control switch was being used to determine if custom font settings were to be used. This has been fixed.
      Note: If your fonts suddenly seem to have changed, go to Visual Effects → Body Font Settings and select “Custom Styles” for the first option and save.
    10. Fixed a couple of XHTML validation bugs. The first would occur if you have a gradient image selected for the header, and the second would occur if you had opted to use compression (GZip or minification) on the CSS files.
  2. New Features
    There were tons of new features added.
    1. New Widget Areas
      There are nine new widget areas. Technically there are five, but the fifth is a special kind:
      1. Widgets Above Header – This is in response to requests to be able to display ads above the header.
      2. Header Widgets – This, again, is in response to requests to be able to use the blank space near the blog header.
      3. Wide Sidebar (Top) – This is widget area that sits above both your sidebars if your sidebars are on the same side. Otherwise this is not shown. It is as wide as both your sidebars combined.
      4. Wide Sidebar (Bottom) – This is widget area that sits below both your sidebars if your sidebars are on the same side. Otherwise this is not shown. It is as wide as both your sidebars combined.
      5. Ad Hoc Widgets 1 to 5 – This is something new and quite interesting. There are 5 new widget areas called Ad Hoc Widgets 1, … Ad Hoc Widgets 5. You can add any widgets you please there. You can then invoke these widget areas from within your posts or pages, if you want. You have short codes to do this:
        [suffusion-widgets id='3']

        You can use any number from 1 to 5 for the id.

    2. As stated above, the short code to display ad hoc widgets, suffusion-widgets is new.
    3. There is a new page template for logging in, called “Log In”. You can use this template to create a login page for users. Mind you, this doesn’t tie up with the Meta Widget directly. You have to explicitly provide the link to users to log in.
    4. You can now customize the labels on your Comment form. Head over to Blog Features → Comment Settings to do so.
    5. There is a new Polish translation, thanks to Robert Maculewicz!
    6. JavaScript files are now added to the bottom of the page by default. You can change this by going to Blog Features → Site Optimization.
    7. Added capability to display text in multiple columns using short codes [suffusion-multic] and [suffusion-column]
    8. Added translation support for child themes.
    9. Added support for assigning menus to locations in the Appearance → Menus section of the admin panel. This comes with a change of behavior: if you assign a menu to the Top Navigation Bar and the Top Navigation Bar is hidden, it will still show up. Additionally if a menu is not assigned to a navigation bar in the Navigation Bar Setup options, but is assigned through the Menu administration page, the menu will show up.
  3. Modifications
    Some of the existing functionality has changed:
    1. Code Optimization
      This is yet another release where I have reworked the back-end. The impact this time, though, is not severe. I had noticed, as had quite a few users that the options panel had become quite sluggish. Of course, when you are looking at 400+ options loaded from a 6000 line file into JavaScript memory you are bound to have performance impacts. So I did a subtle split of the options menu and prevented it all from adding to the JS footprint. Earlier you had this:
      Previous Look

      Previous Look

      You now have this:
      New Look

      New Look

      I have essentially moved all the horizontal tabs into the side menu. The back-end is now noticeably quicker than what it was in the previous releases.
    2. I made minor CSS changes to the Minima skin. I will continue to tweak the style sheet in minor ways till I am convinced it looks good.
    3. I have switched off the “Comment form closed” message by default. Users who wanted to see the message will need to revisit the settings in Blog Features → Comment Settings.
    4. Code Housekeeping:
      1. Replaced occurrences of include(TEMPLATEPATH . '/searchform.php') with get_search_form(). This is as per the new approval process and it improves child theme support.
      2. Replaced occurrences of file includes with get_template_part(). This is as per the new approval process and it improves child theme support w.e.f. WP 3.0.
      3. Removed support for comments from WP versions older than 2.7. Suffusion anyway has been relying on at least 2.8 for widgets since a long time, so this code was redundant.
      4. Added call to new function comment_form() in comments.php. This is as per the new approval process, though it is quite counter-intuitive. I had to leave the old code in place, because there are still users who use WP 2.9 and for them the new function will not work.
      5. Moved licensing information to style.css file. This doesn’t impact you as an end-user.
      6. Enqueued all JavaScript file inclusions.
    5. Updated Brazilian Portuguese translation, thanks to Alcides Soares!
    6. Changed behavior to exclude posts from the static Featured Content section in the rest of the content on a page.

Hope you like this combined multi-release.