如何在使用自己类的插件中创建Widget?

时间:2012-10-17 作者:Dameer

我写了WordPress插件,并希望包括2个额外的小部件与它。。。

if( !class_exists(\'plugin_name\') ) {
    class plugin_name {
            // plugin code
    }
}

// include widgets code
require_once( \'include/custom_functions.php\' );
。。。小部件(根据WP codex)应该在“custom\\u functions.php”中这样创建:

class My_Widget extends WP_Widget {
    // widget code
}
function sfp_register_widgets() {
    register_widget( \'My_Widget\' );
}
add_action( \'widgets_init\', \'sfp_register_widgets\' );
我不能将“类SFP\\U Search Extendes WP\\U Widget”放在插件的类中,如果我将其放在外部,则会出现错误:

Class \'WP_Widget\' not found in /Applications/XAMPP/...etc
还有其他解决方案吗?谢谢

2 个回复
最合适的回答,由SO网友:fred2 整理而成

无需嵌套类(而且无论如何也不能),只需创建类的新实例即可。下面的代码将自动调用My\\u Widget类,以基于现有代码创建一个小部件。

Class plugin_name {
        // Call the widget class
        public function __construct(){
             $this->widget = new My_Widget();
             $this->widget->getWidget();
        }
}

Class My_Widget extends WP_Widget(){
     public function getWidget(){
          //Do my widget stuff.
          echo "I\'m a widget";
     }
}

SO网友:T.Todua

如果位于命名空间文件中,则应在任何全局类前面使用斜杠:

class My_Widget extends \\WP_Widget {
    ...
}

结束

相关推荐

Query post & loop problem.

我在向循环添加查询时遇到问题。请看看有什么问题。here is the link <div class=\"fl\" id=\"main_article\"> <?php $count = 1; $the_query = new WP_Query( \'category_name=headline&orderby=post_date&order=desc\' ); if ( $the_query->have_posts(