
I have had bugs in software before, but by any standards version 3.7.7 was awful. Just awful. As the saying goes, The road to hell is paved with good intentions
. In Beta 2 I tried to put in a tweak related to Suhosin, so I split the options into multiple forms and thought I got it working. The Beta came and went by without alarms, so I submitted the code for approval, and then it proverbially hit the fan. Truth be told I was expecting issues with the TimThumb replacement, and there were a few. But I seriously blew it with regards to the option management, costing people hours of work. Not all people faced issues, mind you – particularly several people who simply upgraded their sites and left it at that. People who are subscribed to my feed knew how to downgrade the release, so that alleviated some concerns. People who had little image jiggery-pokery on their sites (like me) faced literally no issues, because they didn’t have to tweak anything.
But for all the rest, all I can offer you is an apology, and what I hope is a clean version – 3.7.8. If you have bought me a coffee and then realized it was not worth it due to this release, please send me an email through the support forum with a transaction id – I will issue an unconditional refund.
Here is what I have covered in 3.7.8:
- Thumbnail issues
- If images were not in the template path but in the local directory they were not being picked up and a warning message was being displayed. Thanks a lot to Bob Schecter for an impressive array of websites with a wide range of configurations, which he let me use so that I could track this down.
- If the image source was a secure HTTP location (HTTPS, like PicasaWeb), the image was not getting resized. This should be fine now. Thanks to Jürgen for the tip.
- Color issues
- The first issue was with the color picker. Thanks to various quirks in the use of Farbtastic, I rolled back to something that has been a part of Suffusion since release 2.0 – JSColor. If you now pick a color and save, the change will go through without you having to go through an elaborate charade.
- Colors were inconsistently getting prefixed with a “#”. I have made sure that this is no longer the case. Thanks to Kattsby for the tip regarding this.
- Option issues
- The biggest issue in the previous release was that the buttons to save/reset options had gone rogue and a lot of people have pointed this out. I have made sure of the following:
- Clicking “Save” in one screen will not blank out options in another screen.
- Clicking “Reset” will not empty the entire theme’s options.
- Exporting / Importing will now work.
- Another rather intermittent issue was the interference caused by a cookie used by the options panel while attempting to save things. I am only aware of 2 people facing this issue, mind you, and one of them (Mason) has confirmed that this has now been fixed.
- A minor issue was that if your options were saved, they needed to be saved twice for the auto-linked CSS to be updated.
- Quote characters around font names were being escaped, preventing the font from being loaded.
- Some people complained about a slowdown on IE. To counter this, I got rid of the JQuery Uniform script that I was using to make the admin panel look good. I will reconsider this once the changes introduced in this version stabilize.
- The biggest issue in the previous release was that the buttons to save/reset options had gone rogue and a lot of people have pointed this out. I have made sure of the following:
- Miscellaneous issues
- There was a bug that was breaking the layout of the Widget Area Above Footer.
- There were some issues with the navigation menu’s appearance in the standard skins, particularly with respect to visited items and hover-over items.
Things that are not issues
When something goes wrong, the natural inclination is to assign to it all faults, real and perceived. Something similar happened with the last releases, and because the core faults with Suffusion were so severe, a lot of issues from other places were ascribed to the theme. Not that I blame any of you for it. The following are NOT issues with Suffusion:
- If your admin panel stops loading after printing the top bar, the culprit is, in all likelihood a plugin. There is a lot of literature around this on the web, but it bears repeating, particularly because Suffusion’s options panel is more complex and detailed than most other themes’ panels, and having an incorrect script interfering can really mess things up.
A lot of people upgraded to WP 3.1 and Suffusion 3.7.7 at the same time. Now, WP 3.1 uses a new version of JQuery libraries. Some plugins and themes don’t include JQuery the right way. The somewhat correct way to include JS in WordPress is by using the
wp_enqueue_scriptfunction. The truly correct way to include JS is to usewp_enqueue_scriptwith the right hooks. Here is what I mean:- The absolutely wrong way:
function print_my_script() { echo "<link media='all' href='http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js' type='text/css' rel='stylesheet' />"; } print_my_script();The problem is that the above will load JQuery potentially twice. Plus you might be loading JQuery after something needs it, thereby resulting in errors. The only situation when this might be required is if you need conditional JavaScript (like something for IE), which is not the case in the above.
- The sometimes correct way:
add_action('init', 'my_enqueue_scripts'); function my_enqueue_scripts() { wp_deregister_script( 'jquery' ); // Will remove WP's standard JQuery wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'); // Will register Google CDN's JQuery, version 1.5 wp_enqueue_script( 'jquery' );// Will queue it up for printing. }The trouble with the above is that the script is going to get enqueued for all pages, admin or otherwise.
- The almost correct way:
add_action('admin_menu', 'my_plugin_menu'); function my_plugin_menu() { add_options_page('My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options'); add_action("admin_print_scripts", 'my_admin_script_loader'); } function my_admin_script_loader() { wp_deregister_script( 'jquery' ); // Will remove WP's standard JQuery wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'); // Will register Google CDN's JQuery, version 1.5 wp_enqueue_script( 'jquery' );// Will queue it up for printing. }The only problem with the above is that it will queue up the CDN JQuery for all admin pages. What if another plugin is relying on a different version of JQuery? A lot of developers get this one wrong.
- The truly correct way:
add_action('admin_menu', 'my_plugin_menu'); function my_plugin_menu() { $options_manager = add_options_page('My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options'); add_action("admin_print_scripts-$options_manager", 'my_admin_script_loader'); } function my_admin_script_loader() { wp_deregister_script( 'jquery' ); // Will remove WP's standard JQuery wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'); // Will register Google CDN's JQuery, version 1.5 wp_enqueue_script( 'jquery' );// Will queue it up for printing. }If you notice, the only difference with #c is the way the
admin_print_scriptshook is used. By appending the options page to it, we are saying that the JQuery script should be used only for this particular plugin’s admin screens.
What has been happening is that a few plugins have followed route b or c above, causing a proliferation of bad JavaScript across the admin pages. With the WP upgrade these plugins now have conflicting JS. This unfortunately causes the correctly coded themes/plugins to break because they rely on the native version of JQuery, which the bad plugin has overwritten on all pages. If you are facing this, you should try deactivating your plugins, then reactivate them one by one to see which one is wrong. If you isolate the broken one, feel free to point the above instructions to the author.
- The absolutely wrong way:
- Header height and margin between top of content and top of page: If you had set your options to show a certain header height and margin, please note that the option has moved from Blog Features → Sizes and Margins to Theme Skinning → Header. What has happened as a part of this move is that the control switch has changed. So under Theme Skinning → Header you have to set the options to use “Custom Styles” for the setting to continue to be effective.
Thanks for all of you who had patience with me during the last one week. Thanks are also in order to all of you who provided detailed reports of the issues that you faced. I wish some of you had participated in the beta testing. Apologies if you don’t see your name above – it is just that there were so many people reporting the issues that I couldn’t fit everyone in here.





