Как исправить ошибку Cannot redeclare в WordPress?
Хотел натянуть верстки на Wordpress. Подключаю стили бутстрапа в файле темы functions.php, объявил функцию:
function eurekasmile_scripts() { wp_enqueue_style( 'eurekasmile_bootstrap', get_template_directory_uri() . '/assets/bootstrap/css/bootstrap.css'); } |
function eurekasmile_scripts() { wp_enqueue_style( 'eurekasmile_bootstrap', get_template_directory_uri() . '/assets/bootstrap/css/bootstrap.css'); }
обновляю сайт, выходит ошибка:
Fatal error: Cannot redeclare eurekasmile_scripts() (previously declared in C:OSPaneldomainseurekakidswp-contentthemeseurekasmilefunctions.php:4) in C:OSPaneldomainseurekakidswp-contentthemeseurekasmilefunctions.php on line 3
и какое бы название функции не дал, у меня выходит ошибка эта, только в тексте меняется название функции. в чем может быть причина?
нигде больше я эту функцию не объявлял, только создаю тему
Дополнительно:
Ответы:
function add_my_style() { wp_enqueue_style( 'eurekasmile_bootstrap', get_template_directory_uri() . '/assets/bootstrap/css/bootstrap.css'); } add_action( 'wp_enqueue_scripts', 'add_my_style' ); |
function add_my_style() { wp_enqueue_style( 'eurekasmile_bootstrap', get_template_directory_uri() . '/assets/bootstrap/css/bootstrap.css'); } add_action( 'wp_enqueue_scripts', 'add_my_style' );
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Ошибка
Cannot redeclare eurekasmile_scripts()означает, что PHP встретил объявление функции с таким именем второй раз в рамках одного запроса. Если имя меняете, а ошибка всё равно возникает с новым именем, вероятно файлfunctions.phpподключается дважды или внутри него есть дублирующий фрагмент кода.Проверьте:
functions.php;functions.phpвручную черезrequire;Правильное подключение Bootstrap:
function eurekasmile_enqueue_assets() { wp_enqueue_style( 'eurekasmile-bootstrap', get_template_directory_uri() . '/assets/bootstrap/css/bootstrap.css', [], '1.0' ); } add_action('wp_enqueue_scripts', 'eurekasmile_enqueue_assets');
Обратите внимание: хук называется
wp_enqueue_scripts, даже для стилей. Если есть риск повторного объявления, можно временно защитить функцию:if (!function_exists('eurekasmile_enqueue_assets')) { function eurekasmile_enqueue_assets() { // enqueue } }
Но это не заменяет поиск причины. В нормальной теме
functions.phpне должен подключаться вручную и не должен объявлять одну функцию дважды.