Я довольно озадачен этим. Я использую add_action внутри своего класса плагинов, чтобы делать определенные вещи - добавлять скрипты и стили к голове, wp_ajax и т. Д. Вот действия в __construct:
function __construct(){
add_action('admin_menu', array($this, 'sph_admin_menu'));
add_action('sph_header', array($this, 'sph_callback'));
add_action('sph_header_items', array($this, 'sph_default_menu'), 1);
add_action('sph_header_items', array($this, 'sph_searchform'), 2);
add_action('sph_header_items', array($this, 'sph_social'), 3);
//Below here they don't work. I have to call these outside of the class (but I need class variables within the functions)
add_action('wp_print_styles', array(&$this, 'sph_stylesheets'));
add_action('wp_print_scripts', array(&$this, 'sph_scripts'));
add_action( 'wp_ajax_nopriv_add_to_list', array(&$this, 'le_add_to_list'));
add_action( 'wp_ajax_add_to_list', array(&$this, 'le_add_to_list'));
add_action('init', array(&$this, 'register_menu'));
}
Кто-нибудь когда-нибудь сталкивался с чем-то вроде этого? Мне бы очень хотелось узнать, как использовать указанные хуки из класса - это так беспорядочно иметь действия вне класса!
$my_plugin = new MYClass();
так как я использовал те же самые хуки из класса без проблем.public
видимость.Ответы:
Иногда определенные крючки должны быть запущены в определенное время. Например, некоторые ловушки должны быть запущены при инициализации .
Добавьте это к вашему
__construct()
Затем добавьте эту функцию, которая будет содержать все хуки, которые должны быть запущены при инициализации .
Другой пример:
Вы захотите прочитать о крючках и когда они уволены. Таким образом, вы знаете, когда и где инициировать свои действия. Плагин API / Справочник по действию
источник
Это довольно старый вопрос, но в случае, если кто-то ищет ответ, у меня была похожая проблема. У меня был класс
Plugin :: init () никогда не вызывался. Затем я осознал свою ошибку. Чтобы создать экземпляр класса, я делал это:
Чтобы исправить это, я просто изменил код экземпляра на:
Другой вариант - использовать другой хук в конструкторе:
Или более ранний хук в экземпляре:
источник