Estoy en el proceso de escribir un plugin de Wordpress que crea una página en el área de administración, así como la ejecución de algunos códigos frontales.
El código siguiente arroja un buen error Fatal error: Using $this when not in object context
. Lo cual es bastante desconcertante, ya que la variable se llama dentro de la clase.
Tal vez no estoy siguiendo la estructura del plugin de Wordpress para funciones y clases, pero el código conceptual a continuación fue creado usando las entradas relevantes en el desarrollo de plugins en Wordpress Codex.
Podría alguien explicar por qué se desencadena el error, porque cuando creo una instancia de la clase fuera de la base de código de Wordpress todo está bien.
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'));
}
Oye ... el código no funciona para mí. Entonces, cambio esta función 'add_action ('admin_menu', 'my_plugin_menu');' a esta 'add_action ('admin_menu', array ($ this, 'my_plugin_menu'));' – KeepMove