Я использую include_once, но все еще не могу переопределить. Я знаю, что функция существует, поэтому я использую include_once

Хорошо, я пытаюсь изменить код в плагине 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 только ограничивает этот конкретный файл от загрузки более одного раза. В основном я пытаюсь изменить функцию, указанную ниже по течению от этого файла. Можно ли сделать это?

1

Решение

Вы можете проверить, была ли определена функция, и если нет, действовать соответственно так …

 if (!function_exists('listing_tabs')){
// include file with function
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]