Estou atualizando um dos meus plugins e estou um pouco preso com as funções obsoletas.
Originalmente, meu plugin tinha uma variável global e a classe principal do plugin foi instanciada e armazenada na variável global. Dessa forma, os usuários podem usar o global para acessar funções na classe de plug-in.
$GLOBALS['my_custom_plugin'] = new my_custom_plugin();
Então, por exemplo, no meu FAQ, eu tinha um código que mostrava como remover uma das funções da minha classe de um gancho específico e adicionar a um gancho diferente:
function move_input(){
global $my_custom_plugin;
remove_action( 'before_main_content', array( $my_custom_plugin, 'display_input') );
add_action( 'after_main_content', array( $my_custom_plugin, 'display_input' ) );
}
add_action( 'wp_head' , 'move_input' );
Agora, na minha atualização, a display_input()
função foi movida para outra classe e quero que as pessoas saibam como acessá-la. Tentei substituir a função original (na classe principal do plug-in) pelo seguinte aviso de descontinuação:
public function display_input() {
_deprecated_function( 'display_price', '2.0', 'my_custom_plugin()->display->display_input' );
return $this->display->display_input();
}
No entanto, as funções add_action
e remove_action
parecem não acionar o aviso de descontinuação. Estranhamente, remover completamente a função não causa um erro, mesmo que array( $my_custom_plugin, 'display_input')
não exista.
Se alguém tentar acessar a função diretamente:
$my_custom_plugin->display_input();
Então eu vejo os avisos de depuração. É este o resultado esperado _deprecated_function()
? Ou eu estou esquecendo de alguma coisa? É possível mostrar um aviso de depuração quando alguém tenta remover ou adicionar uma ação usando uma função obsoleta?
Atualizar
Percebi que simplesmente não estava vendo a mensagem de depuração para a página add_action
que estava adicionando. #facepalm! No entanto, ainda não estou vendo nenhum aviso de depuração para o arquivo remove_action
.
add_action()
estava realmente lá. remove_action()
não pode ser tratado assim.
call_user_func(function(){trigger_error('hello?');});
Trabalhos interessantes , mas falham em um retorno de chamada registrado por add_action.