Я использую Starkers с дочерней темой (starkers-child).
Мне нужно отредактировать функцию.php, чтобы объявить меню, поэтому я скопировал папку functions.php, JS и внешнюю папку (которые все были объявлены где-то в файле функций)
Однако у меня все еще есть одна ошибка:
Cannot redeclare starkers_script_enqueuer() (previously declared in C:\wamp\www\redlaw\wp-content\themes\starkers-child\functions.php:65) in C:\wamp\www\redlaw\wp-content\themes\starkers-master\functions.php
Я считаю, что это вызвано этой строкой:
function starkers_script_enqueuer() {
Я могу понять, почему, поскольку он уже вызывает функцию в главном, поэтому он не может вызвать ее снова в дочернем элементе.
Но если я удалю эту линию от мастера, разве это не побеждает цель сохранения чистого хозяина и наличия детской темы?
Полный functions.php находится здесь (неотредактированный, как он появляется в главной теме) http://jsfiddle.net/8KGcK/
Простите меня, мне не хватает репутации, чтобы просто прокомментировать.
В дополнение к родительской теме загружается функция functions.php дочерней темы. Поэтому вам не нужно копировать и вставлять код. То, что все остальные говорят об обертке в if(function_exists(function))
является необязательным, но лучше всего, потому что оно меньше подвержено ошибкам.
В любом случае!
Это из Кодекса:
В отличие от style.css, function.php дочерней темы не отменяет свою копию от родителя. Вместо этого он загружается в дополнение к функциям parent.php. (В частности, он загружается прямо перед родительским файлом.)
Подробнее здесь