Strict Standards: Declaration of Suffusion_MM_Walker::start_el() should be compatible with Walker::start_el

If you’re using Suffusion and you just upgraded to WordPress 3.6, you may have to fix something manually. In my case, I’m on Suffusion 4.4.6. I’m sure suffusion will be upgraded soon, and I’ll direct them to this post just as soon as I get it out.

If, after upgrading to WordPress 3.6, you see this message:

Strict Standards: Declaration of Suffusion_MM_Walker::start_el() should be compatible with 
Walker::start_el(&$output, $object, $depth = 0, $args = Array, $current_object_id = 0) in 
/var/www/wordpress/themes/suffusion.4.4.6/library/suffusion-walkers.php on line 39

then I have the fix you need.

NOTE: the actual line numbers and directory paths may be different. The key point is this phrase:

Strict Standards: Declaration of Suffusion_MM_Walker::start_el() should be compatible with Walker::start_el

The problem: a class (Walker) contains a function definition (start_el) which has changed since that extension was made (i.e. WordPress changed the function definition).

The solution: refresh the function definition.

In this case, Suffusion have extended the Walker_Nav_Menu (in wp-includes/nav-menu-template.php) with my their own class, Suffusion_MM_Walker (in library/suffusion-walkers.php).

start_el

The original Suffusion 4.4.6 code on line 17 of library/suffusion-walkers.php is:

function start_el(&$output, $item, $depth, $args) {

I changed that to:

function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {

Which matches up to line 67 of wp-includes/nav-menu-template.php in the WordPress 3.6 code:

function start_el( $output, $item, $depth = 0, $args = array(), $id = 0 ) {

NOTE: this function definition must also be repaired in library/suffusion-admin-walkers.php, as well as library/suffusion-walkers.php, mentioned above in this section.

start_lvl

This error also appeared:

Strict Standards: Declaration of Suffusion_MM_Walker_Edit::start_lvl() should be compatible with 
Walker::start_lvl(&$output, $depth = 0, $args = Array) in 
/var/www/wordpress/themes/suffusion.4.4.6/library/suffusion-admin-walkers.php on line 282

Similarly, the following lines from library/suffusion-admin-walkers.php need to be updated:

function start_lvl(&$output) {}

becomes

function start_lvl( &$output, $depth = 0, $args = array() ) {}

end_lvl

This error also appeared:

Strict Standards: Declaration of Suffusion_MM_Walker_Edit::end_lvl() should be compatible with 
Walker::end_lvl(&$output, $depth = 0, $args = Array) in 
/var/www/wordpress /var/www/wordpress/themes/suffusion.4.4.6/library/suffusion-admin-walkers.php on line 282

The following lines from library/suffusion-admin-walkers.php need to be updated:

function end_lvl(&$output) {

becomes

function end_lvl( &$output, $depth = 0, $args = array() ) {

All done

With those changes, the messages went away. There may be other things hiding, but that was a start.

Hope this helps.

Website Pin Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google StumbleUpon Premium Responsive

4 thoughts on “Strict Standards: Declaration of Suffusion_MM_Walker::start_el() should be compatible with Walker::start_el”

  1. Similar problems now with:

    Strict Standards: Redefining already defined constructor for class reCAPTCHA in /var/www//wordpress/plugins/wp-recaptcha/recaptcha.php on line 17 
    Strict Standards: Redefining already defined constructor for class WPPlugin in /var/www/wordpress/plugins/wp-recaptcha/wp-plugin.php on line 28 
    Strict Standards: Redefining already defined constructor for class MailHide in /var/www/wordpress/plugins/wp-recaptcha/mailhide.php on line 15
    

Leave a Comment

Scroll to Top