我有一些这样的小部件
<?php
/*
Plugin Name: MyWidget
Plugin URI: https:///
Description:
License: GPL2
*/
// The widget class
class MyWidget extends WP_Widget
{
// Main constructor
public function __construct()
{
parent::__construct(
'mywidgert',
__('MyWidget', 'password_domain'),
array(
'customize_selective_refresh' => true,
)
);
}
public function form($instance)
{
}
// Update widget settings
public function update()
{
}
public function widget()
{
}
public function get_user_token()
{
return $login_token;
}
}
function register_my_widget()
{
register_widget('MyWidget');
}
add_action('widgets_init', 'register_my_widget');
当我尝试从另一个不在类内部的功能中的MyWiget类访问某些功能时
function export_database(){
$this->get_user_token();
}
我也遇到了500个错误
$widget = new MyWidget();
$widget->get_user_token();
再次出现错误500,如何在我的函数 export_database 中访问MyWidget类中的其他函数,也请记住,这是wordpress,谢谢
答案 0 :(得分:0)
您可以使用add_action来实现它,首先在加载主题文件之前注册动作:
<?php
/*
Plugin Name: MyWidget
Plugin URI: https:///
Description:
License: GPL2
*/
add_action( 'init', array ( 'MyWidget', 'init' ) );
// The widget class
class MyWidget extends WP_Widget
{
...
}
然后您可以在构造函数中注册您的操作,如下所示:
// Main constructor
public function __construct()
{
...
add_action( 'get_user_token', array ( $this, 'get_user_token' ), 10, 1 );
}
您最终可以在主题或其他插件中调用do_action( 'get_user_token', 50 );
。
查看此相关文章:https://wordpress.stackexchange.com/questions/44708/using-a-plugin-class-inside-a-template