Я борюсь с этой проблемой уже несколько дней, и я был бы признателен разработчикам (PHP / Wordpress), которые более опытны, чем я.
Я делаю плагин отладки для Wordpress, но одна из ошибок, которую мне нужно изменить, происходит из этого файла:
/ сайт / открытый / WP-включает / сор-db.php
Мне нужно изменить структуру и добавить больше информации к $error_str
в строках 1363 и 1366, чтобы выходные данные лучше подходили для нашей программы чтения журнала и содержали больше полезной информации.
Для этого, я думаю, мне нужно изменить print_error()
в строке 1344
Проблемы:
- Что файл является основным файлом в Wordpress, поэтому я не могу редактировать его напрямую.
- Он также имеет глобальную переменную
$wpdb
, которая используется для вызова: $wpdb->query()
& $wpdb->get_row()
(также основные функции в одном файле и классе), которые в свою очередь вызывают функцию print_error()
.
- Другие плагины используют эти функции, и я не могу испортить их функциональность, но я должен также изменить их вывод.
Я думаю, что наиболее вероятным решением является inherit & override
print_error()
(и, возможно, также query()
& get_row()
, чтобы я мог перенаправить их на мой новый print_error()
), но другие плагины используют $wpdb
& those functions
, я могу (должен) изменить вывод error_log()
для этих плагинов, но я не могу редактировать эти плагины и не могу испортить их с ошибочным решением.
Вопросы:
- Как мне заменить
print_error()
?
- Каков наилучший способ сделать это?
- Как мне работать с глобальной переменной
$wpdb
?
- У кого-нибудь из вас есть лучшее решение? Я был бы очень признателен.
Ссылка на документацию print_error()
(с исходным кодом):
https://developer.wordpress.org/reference/classes/wpdb/print_error/
Ссылка непосредственно на исходный код: https://core.trac.wordpress.org/browser/tags/4.9.8/src/wp-includes/wp-db.php#L1344