2016-08-22 84 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()通话似乎是错误的 - 是只是为了调试?