簡體   English   中英

帶有插件的WordPress插件

[英]WordPress Plugin with Widget in a single package

我正在嘗試構建WordPress插件和小部件,我希望它們位於同一物理包中。 該小部件應保持為典型的WordPress小部件,可以將其拖放到已啟用小部件的區域(已完成並可以正常工作),並且該插件應啟用WordPress管理面板中的某些子菜單,且其中沒有幾個選項,並且它應該能夠呈現主文檔中的某些HTML; 比方說身體部位。

我也想使兩者交流; 至少使Widget可以從插件讀取某些設置。

我是一名高級PHP程序員,但是我對WP插件開發還很陌生,所以我的主要問題是關於此的建議體系結構。 Google無法提供任何有趣的東西,我只是不想在這里重新發明輪子。

我的嘗試和錯誤使我想到以下內容:

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

然后:

class MyPlugin {
...
}

兩者都在主要的plugin.php文件中,但是在啟動后者和兩者之間的任何形式的公共方法通信時,我仍然完全迷失了。

謝謝!

在Wordpress插件中使用類而不是

add_action('widgets_init', create_function('', 'register_widget("MyWidget");'));

您需要像這樣構造它

add_action('widgets_init', array($this, 'callback');

是的,如果回調不在此類的內部,則沒有變量的方法(INSIDE引號)可以使用$ this,但是您也可以使用$ my_other_class = new My_Other_Class()實例化的$ my_other_class類; 調用$ my_other_class內部的方法... && $ this可以工作(通過引用)

此外,如果要將變量傳遞給回調,則可以在回調方法中添加一個操作,如下所示:

add_action('my_custom_hook'...

然后無論您在哪里變量都可以

do_action('my_custom_hook', $var, $var2)

使它們在您的回調函數中可訪問

希望這至少為您提供了一個在wp上下文中如何構造事物的起點...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM