有问题应用WordPress主题

时间:2015-09-18 02:00:17

标签: php wordpress

我对WordPress(和这个网站)相对较新,并且想知道是否有人可以帮助我。我通常只是使用HTML和CSS前端,但是我试图将这个主题应用到我的localhost上的WordPress,这种情况发生了:

  

注意:WP_Widget的被调用构造函数方法是   自4.3.0版以来已弃用!使用

__construct()
代替。在   第3457行的C:\ wamp \ www \ project_name \ wp-includes \ functions.php

这是在它之后:

Call Stack
#   Time    Memory  Function    Location
1   0.0002  250512  {main}( )   ..\index.php:0
2   0.0003  253616  require( 'C:\wamp\www\project_name\wp-blog-header.php' )    ..\index.php:17
3   0.0005  271976  require_once( 'C:\wamp\www\project_name\wp-load.php' )  ..\wp-blog-header.php:12
4   0.0007  283080  require_once( 'C:\wamp\www\project_name\wp-config.php' )    ..\wp-load.php:37
5   0.0011  381920  require_once( 'C:\wamp\www\project_name\wp-settings.php' )  ..\wp-config.php:91
6   0.2640  36262904    do_action( )    ..\wp-settings.php:353
7   0.3925  36334448    call_user_func_array:{C:\wamp\www\project_name\wp-includes\plugin.php:503} ( )  ..\plugin.php:503
8   0.3925  36334624    wp_widgets_init( )  ..\plugin.php:503
9   0.3934  36375496    do_action( )    ..\default-widgets.php:1649
10  0.3934  36377800    call_user_func_array:{C:\wamp\www\project_name\wp-includes\plugin.php:503} ( )  ..\plugin.php:503
11  0.3934  36377864    __lambda_func( )    ..\plugin.php:503
12  0.3934  36377952    register_widget( )  ..\widget-woo-adspace.php(207) : runtime-created function:1
13  0.3934  36378000    WP_Widget_Factory->register( )  ..\widgets.php:720
14  0.3934  36378552    Woo_Widget_AdSpace->Woo_Widget_AdSpace( )   ..\widgets.php:591
15  0.3934  36380000    WP_Widget->WP_Widget( ) ..\widget-woo-adspace.php:42
16  0.3935  36380248    _deprecated_constructor( )  ..\widgets.php:176
17  0.3935  36380760    trigger_error ( )   ..\functions.php:3457

有人可以帮助我理解这一切吗?

感谢您抽出宝贵的时间来祝福您。

1 个答案:

答案 0 :(得分:0)

这里的关键是第14行:

14  0.3934  36378552    Woo_Widget_AdSpace->Woo_Widget_AdSpace( )   ..\widgets.php:591

正如其他人提到的那样,这是一个不推荐使用的旧PHP4样式构造函数。它可能来自你的主题。搜索特定小部件时,快速搜索会产生this result,这意味着您的主题存在问题。

如果您想继续使用该特定主题作为基础,但完全消除错误,您需要阅读creating a child theme,然后从内部覆盖小部件。< / p>

成功扩展主题后,您可以在子主题functions.php文件中使用以下内容覆盖主题:

add_action('after_setup_theme', 'my_theme_overrides');
function my_theme_overrides(){
    unregister_widget('Woo_AdWidget');
    register_widget('My_Woo_AdWidget');
}
class My_Woo_AdWidget extends Woo_AdWidget{
    public function __construct(){
        $widget_ops = array('description' => 'Use this widget to add any type of Ad as a widget.' );
        WP_Widget::__construct(false, __('Woo - Adspace Widget', 'woothemes'),$widget_ops);
    }
}

这是未经测试的,但应该帮助规避弃用错误,同时保留主题类的主要逻辑。我会 高度 建议选择不同的主题。