2016-08-22 51 views
0

我試圖把我自己的自定義在一個單獨的插件來擴展插件Cleverness to do list變量/方法,但是,我不能夠從聰明訪問任何方法/屬性-todo-list插件。延伸的WordPress插件 - 訪問來自其他插件

原始插件中有一個display()函數,我想要自定義。我想要顯示「完成」待辦事項,如果我只是要破解原來的插件,我需要做的就是將這兩行代碼添加到聰明待辦事項列表的顯示功能中-frontend.class.php:

$this->list .= '<h1>Completed Todos</h1>'; 
$this->loop_through_todos(1, $category); 

但我不知道如何訪問從我自己的自定義插件在$此,$這個 - >列表,或$這個 - > loop_through_todos(),而不需要修改插入。

我想只是包括其中那些方法/屬性來自文件,然後調用函數就像我常想,但它不工作,我不知道該怎麼做。

function clever_travel_list() 
{ 
    if (! is_admin()) { 
     //lines 710/711 of cleverness-to-do-list-frontend.class.php 
     include_once ABSPATH . 'wp-content/plugins/cleverness-to-do-list/includes/cleverness-to-do-list.class.php'; 
     include_once ABSPATH . 'wp-content/plugins/cleverness-to-do-list/includes/cleverness-to-do-list-frontend.class.php'; 
     $this->list .= '<h1>Completed Todos</h1>'; 
     $this->loop_through_todos(1, $category); 
     die(ClevernessToDoList::$list); 
    } 

} 
add_action('ctdl_list_items', clever_travel_list); 

與$這一點,我得到以下錯誤:

Fatal error: Using $this when not in object context in /Applications/AMPPS/www/wpplugin/wp-content/plugins/clever-extension/clever-extension.php on line 11 

那麼,如何訪問屬性/方法時,我伸出的插件與其他插件?

回答

1

如果您已激活「Cleverness to do list」插件,則不需要include s。雖然他們負載的代碼,他們沒有創建或初始化相關聯的對象(這就是爲什麼它會更容易掌握,如果可能的激活插件)。在代碼

來看,cleverness-to-do-list-frontend.class.php被存儲在一個全局變量$CTDL_Frontend_Admin一旦它的初始化,所以這樣的事情應該工作:

function clever_travel_list() 
{ 
    if (! is_admin()) { 
     global $CTDL_Frontend_Admin; 
     $CTDL_Frontend_Admin->list .= '<h1>Completed Todos</h1>'; 
     $CTDL_Frontend_Admin->loop_through_todos(1, $category); 
     die(ClevernessToDoList::$list); 
    } 
} 

雖然使用die()通話似乎是錯誤的 - 是隻是爲了調試?