Php WordPress插件,在单个包中包含小部件

Php WordPress插件,在单个包中包含小部件,php,widget,wordpress,Php,Widget,Wordpress,我正在尝试构建一个WordPress插件和小部件,我希望它们在同一个物理包中。小部件应该保持典型的WordPress小部件,可以拖放到小部件启用的区域(已经完成并工作),插件应该启用WordPress管理面板中的某些子菜单,其中没有多少选项,并且应该能够在主文档中呈现特定的HTML;比如说身体部位 我也想让两个人交流;至少这样小部件可以从插件中读取某些设置 我是一名高级PHP程序员,但我对WP插件开发还是相当陌生,所以我的主要问题是关于建议的架构。谷歌搜索不到任何有趣的东西,我只是不想在这里重新

我正在尝试构建一个WordPress插件和小部件,我希望它们在同一个物理包中。小部件应该保持典型的WordPress小部件,可以拖放到小部件启用的区域(已经完成并工作),插件应该启用WordPress管理面板中的某些子菜单,其中没有多少选项,并且应该能够在主文档中呈现特定的HTML;比如说身体部位

我也想让两个人交流;至少这样小部件可以从插件中读取某些设置

我是一名高级PHP程序员,但我对WP插件开发还是相当陌生,所以我的主要问题是关于建议的架构。谷歌搜索不到任何有趣的东西,我只是不想在这里重新发明轮子

我的尝试和错误让我想到:

class MyWidget extends WP_Widget {
...
}
add_action('widgets_init', create_function('', 'register_widget("MyWidget");'));
然后:

class MyPlugin {
...
}
两者都在main plugin.php文件中,但我仍然完全不知道如何启动后者以及两者之间的任何形式的公共方法通信


谢谢

在wordpress插件中使用类时 而不是

add_action('widgets_init', create_function('', 'register_widget("MyWidget");'));
你需要这样构造它

add_action('widgets_init', array($this, 'callback');
是的,如果回调在这个类中,则不带变量的方法在引号中使用$this,但是您也可以使用用$my_other_class=new my_other_class()实例化的类$my_other_class;要调用$my_other_类中的方法。。。另外&$这将起作用(传递引用)

此外,如果要将变量传递给回调,可以在回调方法中添加一个操作,如下所示:

add_action('my_custom_hook'...
然后,无论变量在哪里,都可以

do_action('my_custom_hook', $var, $var2)
使它们在回调函数中可访问


希望这至少能为您提供一个在wp环境下构建事物的起点…

非常感谢您的时间伙伴,但有两件事。。。首先,它并没有真正回答我关于从一个文件中加载两个不同的东西(插件和小部件)的问题。第二,我接受了你建议的方法,但不知何故它并没有起作用。WordPress有什么类自动加载器吗?作为基本插件使用。在
plugin\u setup()
中,调用小部件操作(对小部件类使用
include
)和所有其他插件操作。研究标签
在,很多好东西,每平方像素的开发者比这里多;)额外:和。