破阶

乘风破浪会有时,直挂云帆济沧海

PHP7.2 下WordPress PHP Deprecated: Function create_function() is deprecated报错解决方法

最近公司一个客户要把wordpress网站搬家到新vps上,我安装了最新版的php7.2环境,网站搬家过来就出现报错

Deprecated: Function create_function() is deprecated in /www/wwwroot/xxx.com/wp-content/plugins/revslider/includes/framework/functions-wordpress.class.php on line 258

原函数代码如下:

/**
   * 
   * register widget (must be class)
   */
  public static function registerWidget($widgetName){
    add_action('widgets_init', create_function('', 'return register_widget("'.$widgetName.'");'));
    
  }

要修改成:

/**
   * 
   * register widget (must be class)
   */
  public static function registerWidget($widgetName){
    global $tempWidgetName;
    $tempWidgetName=$widgetName;
    function register_widget_name($tempWidgetName){
      global $tempWidgetName;
      return register_widget($tempWidgetName);
    }
    add_action('widgets_init', 'register_widget_name');
    //add_action('widgets_init', create_function('', 'return register_widget("'.$widgetName.'");'));
    
  }
还要重新定义一个全局的变量,不然引用不到传进来的变量值,测试了一阵子才搞定。

其他参考例子:
add_filter( 'option_page_capability_' . ot_options_id(), create_function( '$caps', "return '$caps';" ), 999 );

改成:

add_filter( 'option_page_capability_' . ot_options_id(), function($caps) {return $caps;},999);

其他插件我更新到最新版基本都OK了

 

点赞

2003年你错过了淘宝红利,2009年你错过了微博红利,2013年你错过了公众号红利,2018年你错过了抖音红利,2020年的视频号红利,你绝对不能再错过!扫码进行学习。

发表评论

邮箱地址不会被公开。 必填项已用*标注