Support » Fixing WordPress » Problem changing from PHP 5.6 to PHP 7.2

  • mightyoak

    (@mightyoak)


    I have a problem with an old theme that can’t be updated. My hosts (1&1) are now charging to continue using PHP 5.6 but I get the following errors when switching to PHP 7.2 and I don’t know what to do. If anyone can help, it would be much appreciated. Thanks in advance.

    Warning: Declaration of mysiteDescriptionWalker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /homepages/36/d129703868/htdocs/mightyoak/bhd-wp/wp-content/themes/construct/lib/classes/menu-walker.php on line 45

    Warning: Declaration of mysiteResponsiveMenuWalker::start_lvl(&$output, $depth) should be compatible with Walker_Nav_Menu::start_lvl(&$output, $depth = 0, $args = Array) in /homepages/36/d129703868/htdocs/mightyoak/bhd-wp/wp-content/themes/construct/lib/classes/menu-walker.php on line 87

    Warning: Declaration of mysiteResponsiveMenuWalker::end_lvl(&$output, $depth) should be compatible with Walker_Nav_Menu::end_lvl(&$output, $depth = 0, $args = Array) in /homepages/36/d129703868/htdocs/mightyoak/bhd-wp/wp-content/themes/construct/lib/classes/menu-walker.php on line 87

    Warning: Declaration of mysiteResponsiveMenuWalker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /homepages/36/d129703868/htdocs/mightyoak/bhd-wp/wp-content/themes/construct/lib/classes/menu-walker.php on line 87

    Warning: Declaration of mysiteResponsiveMenuWalker::end_el(&$output, $item, $depth) should be compatible with Walker_Nav_Menu::end_el(&$output, $item, $depth = 0, $args = Array) in /homepages/36/d129703868/htdocs/mightyoak/bhd-wp/wp-content/themes/construct/lib/classes/menu-walker.php on line 87

    The page I need help with: [log in to see the link]

Viewing 10 replies - 1 through 10 (of 10 total)
  • Hello

    As a temporary fix you can add below in your wp-config file

    define( 'WP_DEBUG', false );

    That will hide your warning from appearing on site.

    Try checking if it is due to plugin or theme conflicts, by deactivating them and activating them one by one.

    Hope this information helps.

    Thanks.

    JNashHawkins

    (@jnashhawkins)

    Well, I’d move my site elsewhere… that’s what I’d do.

    I can’t think of a good reason to stay with someone who wants to suddenly start charging me for something that they’ve included with my package all along unless they want to try to convince me of a good reason to pay extra just to stay. Doesn’t that make sense?

    I am running a few installs that don’t offer PHP 7.X yet. There are workarounds if I want to do the update myself but they planned to add PHP 7.X next release if possible… and they didn’t mention charging me for PHP 5.6 <GRIN>.

    I do have other hosts who offer both PHP versions. No extra charges.

    with all that said, I’d still start looking for a different theme or maybe taking the menu out of that one and substitute some other menu package.

    Might be worth a try to ask the original theme author to fix it one more time but who knows what else is wrong with it.

    mightyoak

    (@mightyoak)

    Thanks, I really appreciate the replies.

    I’ll try the fix to hide the warning whilst I look into what to do that would be more permanent.

    I totally agree on the hosting situations, really feel like I’ve been let down especially as been with them for a long time.

    mightyoak

    (@mightyoak)

    @kartiks16 – tried that, unfortunately the errors still show in PHP 7.2

    Check this reference URL if that helps.

    https://aristath.github.io/blog/wp-hide-php-errors

    Thanks.

    mightyoak

    (@mightyoak)

    Thank you I appreciate it, I was on the same trail – the following worked and hid the errors on PHP 7.2

    ini_set(‘log_errors’,’On’);
    ini_set(‘display_errors’,’Off’);
    ini_set(‘error_reporting’, E_ALL );
    define(‘WP_DEBUG’, false);
    define(‘WP_DEBUG_LOG’, true);
    define(‘WP_DEBUG_DISPLAY’, false);

    Joy

    (@joyously)

    Use this plugin to determine what you need to address on your site:
    https://wordpress.org/plugins/php-compatibility-checker/

    Hi @mightyoak – You are using an old MySiteMyWay Construct theme. MySiteMyWay disappeared off the planet around 2015 (see https://gitlab.com/BackStopThemes/ThemeCoreV2/wikis/development-history/).

    The good news…

    Since 2015 a fork of the 9 open source MySiteMyWay themes has been managed under the name BackStop Themes and has been kept up-to-date with the latest PHP and WordPress changes. The latest version is compatible with WP5.x and PHP7.x. You can download it here:

    https://backstopthemes.com/

    To Update your site…

    1) Back-up your site before updating of course. In particular the theme stores any custom skins in the styles directory with the other skins and that directory gets overwritten on a theme update. You can also export all the settings from the admin screen in case you need to re-import them afterwards.

    2) Switch your active theme to a default WordPress Theme like Twenty-Nineteen.

    3) Delete your old Construct theme from the Theme admin menu (Don’t Worry…this will not delete any of your pages, posts, media OR your MySiteMyWay theme database entries).

    4) Using the default WordPress theme admin upload the latest BackStop Theme.

    Voila…updated. Go to the theme admin page and activate your skin.

    If you have any issues you can post them here for general issues (installation, configuration, styling):

    https://gitlab.com/BackStopThemes/GeneralIssuesForum/issues/

    You can report any bugs in the BackStop Themes software here:

    https://gitlab.com/BackStopThemes/ThemeCoreV2/issues

    You can sign up for the BackStop Themes Newsletter to keep up-to-date with releases:

    http://eepurl.com/c9dU6n

    Cheers,
    Tim
    Founder BackStop Themes

    Try it https://wordpress.stackexchange.com/questions/95089/error-declaration-of-myclassstart-lvl-should-be-compatible-with-that-of-wal

    • This reply was modified 2 months, 1 week ago by rodmanfeta.
    • This reply was modified 2 months, 1 week ago by rodmanfeta.
    SEOAlien

    (@seoalien)

    I found a fix to this, but keep in mind that any changes to the theme files are overwritten on theme update.

    From your theme files, and open the file in question. (In your case it would be the menu-walker.php file, in my case it was the functions.php file) Search for a line that starts with function start_el The line of code should look similar to this:

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

    Changing this line to the following should make the warning disappear:
    function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {

    • This reply was modified 1 month ago by SEOAlien.
    • This reply was modified 1 month ago by SEOAlien.
Viewing 10 replies - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.