还记得前几天发布了一篇《wordpress升级6.0版本后,小工具报错:区块受错误影响,可能无法正常运行。请检查开发者工具以了解更多详情》的解决办法,当时从网上得到了两种方法:1.降级版本,2.降级小工具。今天升级6.0,尝试着用”魔法“解决这个问题。谁叫咱是程序员,不是搬运工呢。
全网率先突破,用”魔法”解决了wordpress6.0小工具报错历史难题。-QUI-Notes
出现这个bug,肯定有函数或插件导致了,首先需要排除问题,找到问题所在,我先停用了所有插件,发现还有这个问题,所以是主题的原因。主题是QUI-Pure自己开发的,那只能自己一步步分析了。

既然是小工具报错,就全局搜索小工具的代码,发现了register_sidebar_widget这个代码,注册小工具的,然后百度之后发现这个函数已经被废弃,然后wp的wp-config.php函数里面打开了log调试:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );

以下就是剖析这个问题的过程。

主题错误写法

register_sidebar_widget('点赞排行','mb_zandom'); 

报错:“%e7%82%b9%e8%b5%9e%e6%8e%92%e8%a1%8c”区块受错误影响,可能无法正常运行。请检查开发者工具以了解更多详情。
打开F12 开发者工具发现提示:“code: "invalid_json"  message: "此响应不是合法的JSON响应。
全网率先突破,用”魔法”解决了wordpress6.0小工具报错历史难题。-QUI-Notes

原因:register_sidebar_widget函数已经被wp废弃不再使用了,需要用wp_register_sidebar_widget方法替换。

破局之法

这时,七娃直接复制替换,采用了如下的傻瓜式替换,就又掉坑里了。

wp_register_sidebar_widget('点赞排行','mb_zandom'); 

报错::  Missing argument 3 for wp_register_sidebar_widget(), called in /www/wwwroot/wordpress/wp-content/themes/qui_pure2.67/inc/h2h-fun.php on line 432 and defined in 

全网率先突破,用”魔法”解决了wordpress6.0小工具报错历史难题。-QUI-Notes

最后去官方函数库搜了一下用法:https://developer.wordpress.org/reference/functions/wp_register_sidebar_widget/

修改后方法:

wp_register_sidebar_widget(
    'wp-zandom',      // wpdocs unique widget id
    '点赞排行',        // widget name
    'mb_zandom',    // callback function
    array(              // options
        'description' => '点赞排行小工具'
    )
);

最后果真解决了这个wp版本升级之后废除函数的难题,看来那句话:”只有魔法才能打败魔法“,”解铃还须系铃人“,最后还是需要官方的函数解决这个问题。以上就是解决wordpress升级到6.0版本之后小工具报错的解决办法。我是陈小知,也是七娃,是一个热爱开发-热爱折腾的前端开发者,很喜欢交朋友。嘿嘿,告辞!