Активация и деактивация на Hooks
Активиране и деактивиране на Hooks(КУКА) осигуряват извършване на действия, когато модулите се активират и деактивират.
Плъгините могат да задвижат инсталацията рутинно, когато те се активират, за да добавите правила за презапис, се добавят и таблиците в базата данни, или определени стойности на опции по подразбиране. Куката за деактивиране понякога се бърка с куката за деинсталиране. Куката за дезактивация се използва най-добре, за да изчистите временни данни, като например кеш и временни директории.
За да се създаде една кука за активиране, използвайте функцията за register_activation_hook ():
register_activation_hook(
__FILE__
,
'pluginprefix_function_to_run'
)
За да се създаде кука за деактивиране , използвайте register_deactivation_hook ()
register_deactivation_hook( __FILE__, ‘pluginprefix_function_to_run’ );
Първият параметър във всяка една от тези функции се отнася до вашия основен плъгин файл, който е файла, в който сте поставили плъгин заглавията. Обикновено тези две функции ще се включват от вътрешността на главния плъгин файл; Въпреки това, ако функциите са поставени в друг файл, трябва да актуализирате първият параметър за правилно насочване към главния файл.
Един от най-разпространените начини на използване за кука за активиране е да се обнови WordPress, когато плъгина регистрира потребителски тип пост . Тогава се отървавате от гадните 404 грешки. Нека разгледаме един пример за това как да го направите:
function
pluginprefix_setup_post_type() {
// Register our "book" custom post type
register_post_type(
'book'
,
array
(
'public'
=>
'true'
) );
}
add_action(
'init'
,
'pluginprefix_setup_post_type'
);
function
pluginprefix_install() {
// Trigger our function that registers the custom post type
pluginprefix_setup_post_types();
// Clear the permalinks after the post type has been registered
flush_rewrite_rules();
}
register_activation_hook(
__FILE__
,
'pluginprefix_install'
);
function
pluginprefix_deactivation() {
// Our post type will be automatically removed, so no need to unregister it
// Clear the permalinks to remove our post type's rules
flush_rewrite_rules();
}
register_deactivation_hook(
__FILE__
,
'pluginprefix_deactivation'
);