Хорошо, я пытаюсь изменить код в плагине WP. Плагин объявляет файл для этого:
// overwrite hooks
$plugin_dir = trailingslashit(dirname(dirname(__FILE__)));
if(file_exists($plugin_dir . "auto_overwrite.php")){
include_once($plugin_dir . "auto_overwrite.php");
}
Поэтому я создал файл в вышеуказанном каталоге с именем auto_overwrite.php и включил функцию, которую я хотел изменить.
Проблема у меня заключается в том, что я все еще получаю ошибку:
Неустранимая ошибка: невозможно повторно объявить list_tabs () (ранее объявлено в ….
Я думал, что идея include_once заключается в том, что он не будет включать функции, которые уже определены.
Другая функция находится в файле с именем meta_boxes.php, и она тоже вызывается через
include_once("meta_boxes.php");
Я относительно новичок в PHP, поэтому, возможно, я что-то упустил, любая помощь очень ценится. Спасибо!
РЕДАКТИРОВАТЬ: Из ответов ниже я вижу, что я не могу просто вызвать функцию, так как include_once только ограничивает этот конкретный файл от загрузки более одного раза. В основном я пытаюсь изменить функцию, указанную ниже по течению от этого файла. Можно ли сделать это?
Вы можете проверить, была ли определена функция, и если нет, действовать соответственно так …
if (!function_exists('listing_tabs')){
// include file with function
}
Других решений пока нет …