Intereting Posts
Мой CPT не будет отображаться независимо от того, что я делаю Можно ли изменить порядок списка сообщений, выведенных из цикла? ошибка разбивки на страницы в таксономии: предупреждение: деление на ноль Как создать общедоступный профиль для авторов / участников / пользователей? Нежелательные пустые строки перед тегом <html> зачем нужна тема, если в построителе страниц есть wordpress Запрос Mysql не работает в WordPress 4.2.2 Получать содержимое сообщения вне цикла «Кажется, что нет файла wp-config.php». Несмотря на wp-config.php в корне Редактировать настраиваемые поля в списке сообщений отображение пользовательского поля из внутреннего блога на главной странице wordpress multisite Перезапись форматированных стилей CSS WordPress Невозможно добавить / редактировать категории в сообщение больше Перенаправление всех сообщений после изменения структуры URL с помощью htaccess Скрыть почтовый индекс за сообщениями (Удалить все, опубликован и разбит) в пользовательском типе сообщения

Файлы 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 .)