Jestem w trakcie pisania wtyczki Wordpress, która tworzy stronę w obszarze administracyjnym, jak również wykonuje kod frontendu.
Poniższy kod wywoła miły błąd Fatal error: Using $this when not in object context
. Co jest dość tajemnicze, ponieważ zmienna jest wywoływana wewnątrz klasy.
Może nie podążam za zamierzoną strukturą wtyczek Wordpress dla funkcji i klas, ale poniższy kod koncepcyjny został utworzony przy użyciu odpowiednich wpisów dotyczących rozwoju wtyczek w Kodeksie Wordpress.
Ktoś mógłby wyjaśnić, dlaczego błąd został wywołany, ponieważ kiedy tworzę instancję klasy poza kodem Wordpress wszystko jest w porządku.
if (!class_exists("MyClass")) {
class MyClass {
var $test = 'Test variable';
public function index() {
//Index code
}
public function add() {
echo $this->test;
}
}
}
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
add_menu_page('My Plugin', 'My Plugin', 'manage_options', 'my-plugin', array('MyClass', 'index'));
add_submenu_page('my-plugin', 'Add New Thing', 'Add New', 'manage_options', 'my-plugin-add', array('MyClass', 'add'));
}
Hej ..., kod nie działa dla mnie. Tak więc zmieniam tę funkcję 'add_action ('admin_menu', 'my_plugin_menu');' do tego 'add_action ('admin_menu', array ($ this, 'my_plugin_menu'));' – KeepMove