Intereting Posts
Как конвертировать комментарии WordPress к ответам bbPress WooCommerce – добавление пользовательских полей для выставления счета Являются ли Drop-ins вредными для сайта WordPress? Как добавить captcha для публикации виджета Почему темы WordPress по умолчанию задают шрифты во многих местах? Плагин не обновляет его версию и код на WordPress.org Отображение списка городов в соответствии с выбранным состоянием. Использование ловушки WordPress Проверьте, есть ли какая-либо боковая панель на текущей странице Невозможно отобразить заголовки таблиц в ответном расположении таблицы Добавить код в пункты меню WordPress по классу Как добавить активный класс на текущую страницу меню? Отправлять уведомление по электронной почте администратору для каждой новой публикации Woocommerce: прочитайте , используя резервную копию Вопрос о многоуровневой функции WP как перенаправить на страницу поиска пользовательских паролей

Файлы Childs PHP не переписывают файлы PHP родителя

У меня есть файл php, расположенный по адресу:

.../wp-content/themes/kallyas-child/pagebuilder/elements/TH_TeamBox/TH_TeamBox.php 

Я пытаюсь использовать вышеуказанный файл для перезаписи файла TH_TeamBox.php родителя, который находится здесь:

 .../wp-content/themes/kallyas/pagebuilder/elements/TH_TeamBox/TH_TeamBox.php 

Моя дочерняя тема активна, и я создал путь к файлу в моей дочерней теме, чтобы подражать моей родительской теме. У меня создалось впечатление, что если бы я это сделал, я смог бы редактировать PHP-файлы по своему вкусу в своей дочерней теме, не теряя своих изменений, когда обновляю родительскую тему.

Некоторое время я развивался, но, как вы видите, я новичок (er) в WordPress. Любое понимание того, почему файл .php моего ребенка не перезаписывает файл .php родителя, будет с благодарностью. Я был бы рад дать больше информации, что вам может понадобиться помощь, спасибо! 🙂

Solutions Collecting From Web of "Файлы Childs PHP не переписывают файлы PHP родителя"

Детские темы разрешают переопределять шаблоны , а не просто произвольные файлы PHP.

В WordPress тема состоит из множества файлов PHP, которые используются в качестве шаблонов. Вы можете найти список этих файлов в иерархии шаблонов .

Эти файлы шаблонов могут быть переопределены новыми, но если родительская тема не имеет специальных средств для переопределения других файлов, то файлы, просто включенные родителем как часть структуры поддержки или библиотеки для куска кода страницы, не могут просто переопределяться таким образом.

У меня есть обходное решение для вас, которое может быть лучше, чем просто вносить изменения в файлы родительских тем, что, конечно же, нежелательно по причинам, упомянутым Отто.

Если вы добавите эти две строки PHP в верхнюю часть любого файла, который вы хотите использовать измененную копию в своей структуре каталогов дочерних тем:

 <?php $filepath = str_replace(get_option('template'), get_option('stylesheet'), __FILE__); if (file_exists($filepath)) {include($filepath); return;} ?> 

Конечно, вам все равно нужно будет сделать это снова для каждого файла, который вы делаете это, после обновления темы, поэтому рекомендуется принять к сведению эти файлы и, вероятно, больше не обновлять тему напрямую, а вместо этого загружать ее, добавьте эти строки назад локально и загружать обновленную копию по FTP.

Может показаться, что это не стоит того хлопот, но то, что он сделал бы, это позволить вам сохранить ваши пользовательские измененные файлы вместе в вашей структуре дочерних тем и не перезаписываться никакими обновлениями темы. Опять же, вы просто добавите эти строки в начало любого родительского файла, который вы хотите сохранить.

Это также означает, что вы можете удалить копию файла модифицированных дочерних функций без взлома вашего сайта (например, для тестирования с обновленным файлом темы, например), так как это приведет к возврату исходного файла, если измененная копия не найдена.

(CEM Typo Edit: заменил первый вызов get_option с помощью get_option .)