Я обновляю один из моих плагинов, и я немного застрял с устаревшими функциями.
Первоначально мой плагин имел глобальную переменную, а основной класс плагина был создан и сохранен в глобальной переменной. Таким образом, пользователи могут использовать global для доступа к функциям в классе плагина.
$GLOBALS['my_custom_plugin'] = new my_custom_plugin();
Затем, например, в моем FAQ я имел код, который показал, как удалить одну из функций моего класса из определенной ловушки и добавить к другой ловушке:
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' );
Теперь в моем обновлении display_input()
функция была перемещена в другой класс, и я хочу, чтобы люди знали, как получить к ней доступ. Я попытался заменить исходную функцию (в основном классе плагина) следующим уведомлением об устаревании:
public function display_input() {
_deprecated_function( 'display_price', '2.0', 'my_custom_plugin()->display->display_input' );
return $this->display->display_input();
}
Тем не менее, add_action
и remove_action
функция , кажется, не вызвать устаревание уведомления. Как ни странно, полное удаление функции также не вызывает ошибку, даже если array( $my_custom_plugin, 'display_input')
ее не существует.
Если кто-то пытается получить доступ к функции напрямую:
$my_custom_plugin->display_input();
Затем я вижу уведомления об отладке. Это ожидаемый результат для _deprecated_function()
? или я что-то упустил? Можно ли показать сообщение об отладке, когда кто-то пытается удалить или добавить действие, используя устаревшую функцию?
Обновить
Я понял, что просто не вижу сообщения отладки для этого, add_action
поскольку добавляю его довольно низко на странице. #facepalm! Тем не менее, я до сих пор не вижу отладочного уведомления для remove_action
.
add_action()
было на самом деле там. remove_action()
не может быть обработан таким образом.
call_user_func(function(){trigger_error('hello?');});
работы, но это не удается при обратном вызове, зарегистрированном для add_action.