Как найти, получить доступ и отредактировать functions.php в WordPress
Опубликовано: 2022-08-23Если вы только начинаете разработку WordPress, одним из самых важных файлов, с которым вам следует ознакомиться, является файл functions.php . На самом деле существует три возможных файла functions.php , которые вы можете использовать на своем веб-сайте WordPress, и каждый из них играет свою роль. Знание того, где находятся эти файлы, какова их цель и как и когда их изменять, поможет вам при устранении неполадок и даст вам больше контроля над функциональностью вашего сайта.
В этой статье мы расскажем все, что вам нужно знать о файлах functions.php WordPress. Вы узнаете, что делает functions.php и как его найти и отредактировать. Мы даже добавим несколько полезных фрагментов кода для опробования.
Вы можете начать с самого начала и прочитать или перейти к определенному разделу, используя оглавление ниже:
- Что такое functions.php в WordPress?
- Где находится файл functions.php ?
- Как получить доступ к functions.php
- Доступ к functions.php в интерфейсе администратора WordPress
- Доступ к functions.php через FTP
- Доступ к functions.php в вашей cPanel
- Когда мне следует редактировать functions.php в WordPress?
- Как редактировать functions.php в WordPress
- Редактирование functions.php в редакторе файлов темы WordPress
- Редактирование functions.php в текстовом редакторе
- Редактирование functions.php прямо в cPanel
- Использование плагина для добавления функций на ваш сайт WordPress
- Как защитить functions.php от эксплойтов безопасности
- Какой код я могу добавить в functions.php в WordPress?
- Часто задаваемые вопросы
- Нужно ли создавать дочернюю тему для редактирования functions.php ?
- Как восстановить functions.php из резервной копии, если у меня нет доступа к панели инструментов WordPress?
- Могу ли я добавить JavaScript в свой файл functions.php ?
Что такое functions.php в WordPress?
В WordPress файл functions.php — это место, где живет жизненно важный код, определяющий работу вашего сайта. На самом деле на каждом веб-сайте WordPress есть как минимум два файла functions.php — один входит в ядро WordPress, а другой — в вашу тему. Если вы используете дочернюю тему, у вас также должен быть файл functions.php в папке дочерней темы.
Файл functions.php в ядре WordPress содержит важный код, необходимый для работы WordPress. Вы почти никогда не должны изменять код в файле functions.php ядра WordPress.
Файл functions.php вашей темы — это место, где живут все специфические для темы функции вашего веб-сайта, такие как настраиваемое расположение меню, области виджетов, настраиваемый контент и функциональность верхнего и нижнего колонтитула, длина отрывка сообщения и многое другое.
Файл functions.php вашей темы ведет себя почти так же, как плагин WordPress. Разница в том, что functions.php следует использовать для кода, специфичного для темы, а плагины — для функциональности, которая останется даже при смене темы.
Где находится файл functions.php ?
Мы говорили о том, что делает файл functions.php как в ядре WordPress, так и в файлах темы, но как найти файл functions.php ? Где находится functions.php в WordPress?
Все ваши файлы WordPress расположены в корневом каталоге вашего сайта и в различных подпапках. Ваш корневой каталог обычно называется как-то вроде public_html или www , но может иметь и другое имя. Если вы не знаете, где найти папку установки WordPress на вашем сервере, обратитесь к своему веб-хостингу.
После того, как вы нашли, где на вашем сервере находятся ваши файлы WordPress, вы можете начать искать свои файлы functions.php . Мы упоминали, что для functions.php существует до трех местоположений: ядро WordPress, папка вашей темы и папка вашей дочерней темы. В этом разделе мы рассмотрим, где найти каждый из них.
Где находится functions.php в ядре WordPress?
Если вы ищете расположение functions.php в ядре WordPress, вы найдете его в папке wp-includes вашей установки WordPress.

Хотя вам никогда не следует редактировать functions.php в ядре WordPress, вам может понадобиться проверить его по той или иной причине. Наиболее вероятный сценарий ковыряния в functions.php в ядре WordPress — если вы подозреваете, что в него было внедрено вредоносное ПО.
Прежде чем даже открыть functions.php , вы должны сделать резервную копию своего сайта WordPress на случай, если вы случайно внесете изменения в файл, которые вызовут критическую ошибку. Если вы обнаружите, что functions.php был поврежден или взломан, скорее всего, у вас могут быть затронуты и другие области WordPress. Лучше всего просто заменить WordPress свежей установкой, а не пытаться удалить все подозрительные скрипты один за другим.
Где находится functions.php в папке моей темы WordPress?
Файл functions.php вашей темы находится в главном каталоге папки вашей темы: wp-content → themes → yourtheme .

Где находится functions.php в папке дочерней темы WordPress?
Файл functions.php дочерней темы WordPress находится в главном каталоге папки вашей дочерней темы: wp-content → themes → yourtheme-child .

Как получить доступ к functions.php ?
Знать, где живет functions.php , — это только полдела. Теперь возникает вопрос, как получить доступ к functions.php в WordPress. В то время как доступ к файлу functions.php в ядре WordPress возможен только через безопасный протокол передачи файлов (SFTP) или через cPanel, доступ к файлам functions.php вашей темы и дочерней темы также можно получить в редакторе файлов тем WordPress.
Доступ к functions.php в редакторе файлов темы WordPress
Если вам нужен доступ к файлу functions.php вашей темы или дочерней темы, вы можете сделать это непосредственно из редактора файлов тем WordPress. В панели управления WordPress перейдите в раздел «Внешний вид» → «Редактор файлов темы» .
Вы попадете на страницу редактирования тем . Отсюда в раскрывающемся списке рядом с « Выбрать тему для редактирования » выберите свою тему и нажмите « Выбрать ». Вы увидите список файлов, доступных для редактирования, в столбце « Файлы тем» в правой части экрана. Щелкните functions.php , чтобы открыть файл.

Если вы находитесь в файле functions.php вашей родительской темы, вы увидите предупреждающее уведомление в нижней части экрана над кнопкой « Обновить файл », в котором говорится: «Внимание: это файл в вашей текущей родительской теме».
Примечание. Если вы не являетесь разработчиком темы, вам следует внести изменения в файл functions.php вашей дочерней темы, чтобы ваши изменения не были перезаписаны в будущих обновлениях темы. |
Доступ к functions.php через SFTP
Шаг 1: Установите SFTP-клиент. Если у вас еще нет SFTP-клиента, вам необходимо его загрузить. Есть несколько отличных бесплатных и премиальных вариантов, в том числе:
Заявление | Система | Бесплатно или Премиум |
WinSCP | Окна | Свободно |
Файлзилла | Виндовс, Мак, Линукс | Бесплатные и премиальные варианты |
Кибердак | Windows, Мак | Свободно |
Передать | Мак | Премиум |
В этом примере мы будем использовать Filezilla. Другие клиенты SFTP должны работать аналогичным образом.
Шаг 2: Получите свои учетные данные SFTP. Чтобы войти на сервер через SFTP, вам понадобятся следующие данные:
- Хост (IP-адрес или URL-адрес вашего сервера)
- Имя пользователя SFTP
- Пароль
- Номер порта
Эти данные обычно можно найти в панели управления хостингом. Эта информация может быть сгенерирована для вас, или ваш хост может предложить вам создать имя пользователя и пароль SFTP. Если вы не знаете, где найти эти учетные данные, или не можете понять, как их создать, поищите инструкции в справочной документации вашего хоста или обратитесь в их службу поддержки.
Шаг 3: Введите свои учетные данные SFTP.
Введите IP-адрес или URL-адрес вашего хоста, имя пользователя SFTP, пароль и номер порта (обычно 22 или 2222, но некоторые хосты могут использовать другой порт).

Примечание. Вы можете получить предупреждение «Неизвестный ключ хоста», если ваш SFTP-клиент использует аутентификацию «доверие при первом использовании» (TOFU). Установите флажок «Всегда доверять этому хосту, добавьте этот ключ в кеш», если вы планируете снова использовать свой SFTP-клиент для доступа к сайту. Нажмите OK , чтобы продолжить.

Шаг 4: Перейдите в корневой каталог вашего сайта.
После того, как вы вошли в систему, вы увидите два дерева файлов, отображаемых на кнопке вашего экрана — одно слева и одно справа. В правой части перечислены каталоги на вашем веб-сервере (удаленном). В левой части перечислены каталоги на вашем компьютере (локальные).
Ваш корневой каталог обычно находится в папке с пометкой www или public_html , но может использовать и другое имя. Если вы не знаете, в какой папке искать, спросите у своего хостинг-провайдера. Вы поймете, что находитесь в правильной папке, если увидите папки wp-admin , wp-content и wp-includes вверху списка файлов.

Шаг 5: Перейдите к functions.php в ядре WordPress, родительской или дочерней теме. Если вы ищете functions.php в ядре WordPress, вы перейдете к папке wp-includes .
Если вы ищете functions.php в каталоге вашей темы, вы перейдете к wp-content → themes → yourtheme .
Чтобы найти файл functions.php вашей дочерней темы, перейдите в wp-content → themes → yourtheme-child.
Шаг 6: Скачайте functions.php . Теперь, когда вы знаете, где находится functions.php , и получили к нему доступ, вы можете проверить или отредактировать файл. Прежде чем вы сможете это сделать, вам нужно скачать его. Щелкните правой кнопкой мыши файл functions.php и выберите « Загрузить ». Ваш файл будет загружен на ваш локальный компьютер.

Доступ к functions.php в cPanel
Если ваш хост использует cPanel, вы можете получить доступ к functions.php через его файловый менеджер. Если вы не знаете, как найти cPanel на панели управления хоста, обратитесь за помощью в службу поддержки клиентов.
Шаг 1: Откройте файловый менеджер cPanel. Как только вы окажетесь в cPanel, перейдите в раздел « Файлы » и нажмите « Диспетчер файлов ».
Шаг 2: Откройте корневую папку вашего сайта. Корневая папка обычно называется www или public_html , но может иметь и другое имя. Соглашения об именах корневых папок на некоторых хостах различаются, поэтому, если вы не уверены, в какой папке искать, спросите у своего хостинг-провайдера.
Вы поймете, что находитесь в правильной папке, если увидите папки wp-admin , wp-content и wp-includes вверху списка файлов.
Шаг 3: Найдите и скачайте functions.php . Файл functions.php ядра WordPress находится в папке wp-includes .
Файл functions.php вашей темы находится в wp-content → themes → yourtheme .
Если вы ищете файл functions.php вашей дочерней темы, вы можете найти его в wp-content → themes → yourtheme-child.
Когда вы найдете нужный вам файл functions.php , щелкните правой кнопкой мыши functions.php и выберите « Загрузить » или щелкните один раз functions.php, а затем выберите пункт « Загрузить » в верхнем меню.

Если вы переименовываете свой файл при сохранении, убедитесь, что вы вернули ему имя functions.php перед повторной загрузкой. И прежде чем вносить изменения и перезаписывать functions.php , создайте резервную копию своего сайта WordPress.
Когда мне следует редактировать functions.php в WordPress?
Прежде чем мы углубимся в то, как редактировать functions.php , мы должны поговорить о том, следует ли вам редактировать его и когда . Есть много причин, по которым вы можете захотеть отредактировать PHP-код в WordPress, но добавление этого кода в файл functions.php — не всегда лучший вариант, и его следует делать только при определенных обстоятельствах, которые мы обсудим ниже.
Когда редактировать functions.php в ядре WordPress
Никогда. Вы не должны редактировать functions.php в ядре WordPress. В лучшем случае вы можете заменить его, если обнаружите, что он поврежден, но удаление или добавление кода в основной файл functions.php WordPress может привести к поломке вашего сайта. Таким образом, вы можете открыть его, проверить, заменить новой копией, если вам нужно, но не возитесь с какими-либо работающими веб-сайтами.
Когда редактировать functions.php в вашей теме
Когда дело доходит до файла functions.php вашей темы, вам может потребоваться его редактирование, а может и не потребоваться. Если вы создаете свою собственную тему, вы наверняка захотите добавить некоторый пользовательский код в functions.php . Почти у каждой темы есть код в файле functions.php , который дает ей уникальный набор функций и возможностей. Помимо ваших таблиц стилей, эти функции являются огромной частью того, что отличает одну тему от другой.
Если вы добавляете код в файл functions.php вашей темы, который не относится к вашей теме и может использоваться независимо от вашей темы, подумайте о том, чтобы сделать его плагином. Таким образом, вы можете использовать эту функцию в нескольких темах и даже отправить ее в библиотеку плагинов WordPress.org, где она может быть полезна другим пользователям WordPress.
Прежде чем создавать свой плагин, проверьте библиотеку плагинов, чтобы убедиться, что то, что вы создаете, еще не существует. Если качественное решение уже существует, вы можете сэкономить энергию разработки для другой пользовательской функции на своем сайте.
Когда редактировать functions.php в дочерней теме
Если вы используете тему от разработчика и хотите изменить файл functions.php , вам всегда следует использовать дочернюю тему для внесения этих изменений. Когда разработчики темы выпускают новую версию своей темы, а вы обновляете ее до последней версии, ваша текущая тема перезаписывается новыми файлами, включая functions.php .
На дочерние темы не влияют обновления родительской темы, поэтому вы сохраните весь свой пользовательский код, если внесете изменения в файл functions.php дочерней темы.
Прежде чем добавлять код, подумайте, будет ли использование плагина лучшим решением. Код, который вы добавляете, специфичен для вашей темы? Отредактируйте файл functions.php вашей дочерней темы. Является ли код, который вы добавляете, чем-то, что вы хотите использовать, если вы измените темы в будущем (например, код отслеживания Google Analytics или пиксель Facebook)? Используйте плагин.
Как редактировать functions.php в WordPress
Вы всегда должны предпринимать шаги, чтобы защитить свой сайт от любых ошибок, которые вы можете допустить при редактировании functions.php . Поэтому, прежде чем начать вносить изменения, сделайте резервную копию своего сайта и подумайте о создании тестового сайта, чтобы сначала протестировать их. Таким образом, ваш активный сайт не будет нарушен, если вы случайно добавите какой-либо код в functions.php , который вызовет серьезные проблемы или, что еще хуже, полностью приведет к сбою вашего сайта.
Теперь, когда вы создали резервную копию своего сайта, вы можете перейти к редактированию файла functions.php .
Как редактировать functions.php в редакторе файлов темы WordPress
Редактировать functions.php в редакторе файлов темы WordPress немного рискованно. Если вы используете этот инструмент, потому что у вас нет доступа к cPanel или SFTP, вы окажетесь в довольно плохой ситуации, если ваши изменения вызовут фатальную ошибку, которая не позволит вам получить доступ к панели управления WordPress.
Если вы хотите отредактировать functions.php в редакторе файлов темы, убедитесь, что у вас есть прямой доступ к серверу и вашим резервным копиям, чтобы вы могли быстро восстановить файл резервной копии.
Вы можете найти редактор файлов тем WordPress в разделе « Внешний вид» → «Редактор файлов тем» в панели администратора WordPress.
Вы попадете на экран «Редактировать темы», где вы должны выбрать свою дочернюю тему, а затем выбрать файл functions.php в столбце «Файлы тем» в правой части экрана.

Если вместо этого вы выбрали родительскую тему, вы увидите предупреждение в нижней части экрана: « Внимание: это файл в вашей текущей родительской теме». Вы не хотите вносить изменения в файл functions.php вашей родительской темы, потому что ваши изменения будут перезаписаны при следующем обновлении темы.
Если вы видите в своем файле функции, которые вам непонятны, WordPress включает удобную функцию поиска документации прямо над кнопкой « Обновить файл» . Щелкните раскрывающийся список и найдите имя функции, о которой вы хотите узнать больше, и нажмите « Поиск» . Вы будете перенаправлены к документации WordPress.org для этой функции.
После внесения изменений нажмите «Обновить файл» . Проверьте переднюю и заднюю части вашего сайта, чтобы убедиться, что все работает как положено. Если вы столкнулись с фатальной ошибкой и вам нужно восстановить functions.php из резервной копии, вы можете сделать это в cPanel или через SFTP.
Редактирование functions.php в текстовом редакторе
Лучший способ редактировать functions.php — использовать выбранное вами программное обеспечение для редактирования кода. Поскольку вы редактируете копию, которая находится в автономном режиме на локальном компьютере, вам не нужно подключаться к Интернету, чтобы работать с файлом. У вас также будет больше контроля над тем, когда вы будете фиксировать изменения на своем действующем сайте.
Вы можете редактировать свой код в любое время и загружать свои изменения в то время, когда ваш сайт обычно получает наименьший трафик. Таким образом, если возникнут какие-либо проблемы, это затронет наименьшее количество посетителей.
Шаг 1: Откройте functions.php в текстовом редакторе. Если вы не знакомы с использованием текстового редактора, есть несколько бесплатных вариантов на выбор.
Бесплатный исходный код и текстовые редакторы:
Заявление | Система |
Блокнот++ | Окна |
Атом.ио | Виндовс, Мак, Линукс |
возвышенный | Виндовс, Мак, Линукс |
ТекстПравить * убедитесь, что вы находитесь в текстовом режиме | Mac (приложение по умолчанию) |
Блокнот | Windows (приложение по умолчанию) |
Шаг 2: Отредактируйте functions.php и сохраните его на локальном компьютере. Ваш дисплей может выглядеть по-разному в зависимости от того, какую программу вы используете для редактирования файла functions.php . Вот как выглядит PHP-код в atom.io:

Добавьте или измените любую необходимую информацию, затем сохраните файл.
Шаг 3: Войдите на свой веб-сервер через SFTP или cPanel. Перейдите в папку своей темы или дочерней темы и найдите файл functions.php .
Шаг 4: Измените имя файла functions.php на вашем веб-сервере. Если ваша отредактированная версия содержит ошибки, вы не хотите перезаписывать исходный файл functions.php . Вы, конечно, сделали резервную копию, но вместо того, чтобы извлекать файл functions.php из своей резервной копии, у вас будет исходный файл под рукой.
Вы хотите иметь возможность быстро восстановить файл functions.php , если что-то пойдет не так, поэтому переименовав его во что-то вроде «functions-orginal.php» , вы убедитесь, что содержимое исходного файла сохранено на вашем сервере.

Шаг 5: Загрузите functions.php с вашего локального компьютера на ваш веб-сервер. Используя SFTP или cPanel, загрузите файл functions.php в основной каталог вашей темы или дочерней темы.
Шаг 6: Посетите свой веб-сайт, чтобы убедиться, что он работает правильно. После того, как вы загрузили файл functions.php , вы должны убедиться, что все работает на вашем сайте. Посетите внешний интерфейс и войдите в панель управления WordPress, чтобы убедиться, что все доступно, отображается и работает правильно.

Шаг 7: Удалите старый, переименованный файл functions.php . Как только вы убедитесь, что ваш сайт работает правильно, вы можете удалить functions-original.php (или то, во что вы его переименовали). Если вы обнаружите проблему в будущем, у вас должен быть файл functions.php из резервной копии, которую вы сделали.
Редактирование functions.php прямо в cPanel
Если у вас нет или вы не хотите использовать редактор исходного кода, вы можете редактировать functions.php непосредственно в cPanel (если ваш хост использует cPanel). Как и редактирование в редакторе файлов темы WordPress, это немного более рискованно, чем работа на локальном компьютере. Если ваше интернет-соединение прервется во время редактирования, вы можете потерять свои изменения. Вы также рискуете потенциально перезаписать исходный файл functions.php .
Шаг 1: Найдите functions.php в cPanel. В cPanel нажмите «Диспетчер файлов» .
Перейдите в свою корневую папку (обычно это public_html или www , но она может иметь и другое имя).
Шаг 2: Сделайте копию functions.php . В главном меню файлового менеджера нажмите + Папка , чтобы добавить новую папку. Вы можете сделать копию файла functions.php и сохранить его здесь в качестве резервной копии.
Назовите вашу новую папку как-то легко идентифицировать, например, «функции резервного копирования», чтобы вы могли легко найти ее позже. Щелкните Создать новую папку .

Шаг 3: Найдите functions.php в папке вашей темы или дочерней темы и скопируйте его в резервную папку. В папке вашей темы или дочерней темы прокрутите вниз до functions.php и щелкните правой кнопкой мыши имя файла. Выберите Копировать .

Появится диалоговое окно с просьбой ввести путь, по которому вы хотите скопировать файл. Путь к папке, в которой вы сейчас находитесь, будет предварительно заполнен, поэтому, если путь к папке с резервной копией отличается от того, что вы видите, введите правильный путь. Щелкните Копировать файл(ы) .
Шаг 4: Вернитесь к файлу functions.php в каталоге темы или дочерней темы. Теперь, когда у вас есть резервная копия, вы можете вернуться к файлу functions.php в папке темы или дочерней темы и начать редактирование.
Щелкните правой кнопкой мыши functions.php , затем нажмите « Изменить ».
Шаг 5: Отредактируйте functions.php . Теперь вы должны увидеть содержимое вашего файла functions.php на экране. Это должно выглядеть примерно так:

Добавьте или измените любую необходимую информацию, затем сохраните файл.
Использование плагина для добавления функций на ваш сайт WordPress
Вместо того, чтобы напрямую изменять файл functions.php , вы можете использовать плагин, например Code Snippets, для добавления функций на свой веб-сайт. Если вам нужно добавить на сайт достаточное количество функций, можно легко потерять представление о том, какие функции вам все еще нужны, а какие нет.
Фрагменты кода предоставляют графический пользовательский интерфейс (GUI) для управления блоками кода PHP. Вы можете добавлять описания, чтобы знать, что должен делать код, а также включать и выключать блоки кода, как активируя и деактивируя плагин.
Поскольку вы не вносите изменения в functions.php , это гораздо более безопасный метод добавления функций PHP на ваш сайт WordPress.
Как защитить functions.php от эксплойтов безопасности
Файл functions.php часто становится целью хакеров, поэтому его безопасность должна быть приоритетной задачей. Выполните следующие действия, чтобы защитить файл functions.php :
1. Установите плагин безопасности
Используя подключаемый модуль безопасности, вы получите расширенную защиту от хакеров в нескольких областях вашего сайта.
Jetpack Security — это недорогой вариант, который помогает защитить ваш сайт от вредоносных атак. Он включает в себя сканирование вредоносных программ и исправление одним щелчком мыши, защиту от атак методом грубой силы, мониторинг простоев, журнал активности, чтобы вы знали, был ли взломан ваш сайт и когда, а также защиту входа в систему с помощью двухфакторной аутентификации (2FA).

Jetpack Security также отслеживает на вашем сайте любые изменения в основных файлах WordPress, устаревшие или небезопасные плагины и другие уязвимости, чтобы вы могли обнаружить их до того, как хакер обнаружит их и воспользуется ими.
Кроме того, он обеспечивает резервное копирование WordPress в режиме реального времени, поэтому вы можете быстро восстановить чистую версию, если что-то пойдет не так, даже если вы не можете войти на свой сайт.
2. Запретите доступ к основным функциям WordPress.php через файл . htaccess- файл
Если ваш веб-сайт размещен на сервере Apache, вы можете использовать файл . htaccess , чтобы защитить основной файл functions.php WordPress, заблокировав доступ ко всей папке wp-includes .
Шаг 1: Скачайте .htaccess
Используя SFTP или cPanel, перейдите в корневую папку вашего сайта. Щелкните правой кнопкой мыши на . htaccess и выберите « Загрузить », чтобы загрузить файл на локальный компьютер.
Шаг 2. Добавьте код для блокировки доступа к папке wp-includes .
В исходном коде или текстовом редакторе откройте . htaccess и добавьте следующий код:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>
Сохраните файл. Убедитесь, что ваша программа-редактор не включает расширение файла. Если вы используете Notepad++ или Text Edit, он может добавить расширение .txt. Файл должен называться просто «.htaccess».
Шаг 3: Загрузите отредактированный файл . htaccess обратно в корневую папку
Загрузите отредактированный . htaccess обратно в корневую папку вашего сайта. Вас спросят, хотите ли вы перезаписать существующий файл. Нажмите «ОК» .
Теперь ваш . htaccess должен блокировать внешний доступ к любым файлам в вашей папке wp-includes , включая functions.php .
3. Запретить доступ к functions.php с помощью functions.php
Вы можете заблокировать прямой доступ к вашему файлу functions.php , добавив следующий фрагмент кода непосредственно в functions.php .
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'functions.php' == basename($_SERVER['SCRIPT_FILENAME'])) { die ('Access denied!'); }
4. Скрыть functions.php за пределами корневого каталога
Хакеры знают расположение всех стандартных файлов WordPress по умолчанию. Изменение местоположения конфиденциальных файлов в папку с ограниченным доступом за пределами корневого каталога может сделать их недоступными для хакеров. Этот процесс немного более сложен, чем просто добавление кода в файл .htaccess , но он стоит дополнительных усилий для дополнительного уровня защиты вашего веб-сайта.
Всего за несколько шагов вы можете защитить functions.php за пределами корневой папки.
Шаг 1: Загрузите текущий файл functions.php
Если вы перемещаете файл functions.php вашей темы, вы найдете его в разделе wp-content → themes → yourtheme . Файл вашей дочерней темы будет находиться в wp-content → themes → yourtheme-child .
Найдя файл functions.php , загрузите его на свой компьютер через SFTP или cPanel.
Шаг 2: Создайте новый каталог за пределами корневой папки.
Перейдите за пределы корневого каталога на следующий уровень папки с файлами. Вы должны увидеть имя вашей корневой папки, а также несколько других папок. В этом каталоге щелкните правой кнопкой мыши и выберите «Создать каталог ».

Дайте вашему каталогу имя, которое легко запомнить, как местоположение вашего файла functions.php .
Шаг 3: Загрузите functions.php в новую папку
Загрузите файл functions.php , который вы скачали ранее, в новую папку через SFTP или cPanel.

Проверьте права доступа к новой папке и файлу functions.php и убедитесь, что они установлены на 600.

Шаг 4: Укажите WordPress на новый файл functions.php
У вас должен быть файл functions.php в новом каталоге, а также исходный файл functions.php , который все еще находится в папке вашей темы. Чтобы WordPress мог найти и использовать правильный файл, вам необходимо удалить всю информацию из файла functions.php вашей темы и следующий фрагмент кода:
<?php include('/home3/usr/securefunctions/functions.php'); ?>
Примечание. Ваш путь к файлу будет выглядеть иначе, так как вы будете использовать имена каталогов вашего сервера.
В cPanel вы можете открыть файл functions.php корневого каталога и отредактировать его напрямую или отредактировать копию, которую вы ранее загрузили на локальный компьютер, используя редактор исходного кода. Для этого примера мы отредактировали копию, загруженную ранее с помощью Atom.io.
Сохраните файл funtions.php и загрузите его обратно в каталог вашей темы.

Вас спросят, хотите ли вы перезаписать файл. Нажмите «ОК» .
Теперь WordPress должен ссылаться на ваш новый файл functions.php в безопасном месте за пределами корневой папки.
4. Измените имя вашего файла functions.php
Изменение имени вашего файла functions.php — это еще один шаг, который вы можете предпринять, чтобы защитить его от хакеров. Вам нужно будет разместить этот файл за пределами вашей корневой папки, поэтому, если вы следовали процессу Hide functions.php за пределами корневого каталога , вам нужно будет выполнить всего несколько дополнительных шагов.
Шаг 1: В защищенном каталоге за пределами корневой папки измените имя файла functions.php .
Перейдите в папку functions.php , расположенную за пределами вашего корневого каталога, и измените имя файла на что-то уникальное, например, «keep-out.php» или «это не те функции, которые вы ищете». php' . Хорошо, последнее немного длинное, но на самом деле не имеет значения, как вы его называете, если вы включаете его в путь к файлу в копии папки темы functions.php .
Шаг 2: Отредактируйте код в functions.php в корневом каталоге, чтобы отразить изменение имени.
Теперь, когда вы изменили имя на другое, отличное от functions.php , вам нужно убедиться, что копия functions.php в каталоге вашей темы указывает на правильное имя файла.
Загрузите копию functions.php из корневой папки на свой локальный компьютер и отредактируйте ее в текстовом редакторе. Измените имя файла functions.php на новое имя файла, затем сохраните файл.
<?php include('/home3/usr/secureconfig/keep-out.php'); ?>
Шаг 3: Загрузите functions.ph p обратно в каталог темы
Вас спросят, хотите ли вы перезаписать существующий файл. Нажмите «ОК» .
Теперь WordPress должен указывать на ваш переименованный файл functions.
Дополнительные уровни безопасности для functions.php
Вы можете добавить некоторую дополнительную защиту своему веб-сайту в целом, включая файл functions.php , внеся аналогичные изменения в файл wp-config , например, переименовав его, разместив вне корневого каталога и запретив публичный доступ.
Если вы видите подозрительный код в своих файлах functions.php и опасаетесь, что вас уже взломали, вам следует прочитать о том, как обнаружить и удалить вредоносное ПО с вашего веб-сайта WordPress.
Какой код я могу добавить в functions.php в WordPress?
Существует множество различных фрагментов кода, которые вы можете добавить в файл functions.php WordPress. Однако зачастую лучше использовать плагин (или написать свой собственный плагин) для многих функций. Если код, который вы хотите добавить, специфичен для вашей темы, вы можете добавить этот PHP-код в файл functions.php вашей дочерней темы.
Ниже приведены несколько полезных функций, которые вы можете вставить в файл functions.php вашей дочерней темы:
Добавление нового пользователя-администратора в functions.php
Если вы потеряли доступ администратора к своей панели управления WordPress и не можете восстановить свое имя пользователя или пароль по электронной почте, вы можете создать нового пользователя-администратора через свою учетную запись хостинга. Либо через SFTP, либо через cPanel вы можете загрузить файл functions.php и добавить следующий код, чтобы создать нового пользователя-администратора для вашего сайта.
function qode_add_new_admin_account() { $user = 'your-username'; $password = 'your-password'; $email = 'your-email'; if ( ! username_exists( $user ) && ! email_exists( $email ) ) { $user_id = wp_create_user( $user, $password, $email ); $user = new WP_User( $user_id ); $user->set_role( 'administrator' ); } } add_action( 'init', 'qode_add_new_admin_account' );
В приведенном выше коде замените «ваше имя пользователя», «ваш пароль» и «ваш адрес электронной почты» своими учетными данными. Сохраните файл functions.php и повторно загрузите его в папку темы. Это создаст нового пользователя-администратора с именем пользователя, паролем и адресом электронной почты, которые вы назначили в коде.
После загрузки файла перейдите на страницу входа на сайт и используйте новое имя пользователя и пароль для входа в систему. После успешного входа в систему и подтверждения наличия у вас прав администратора вам следует удалить код, который вы добавили в создайте новую учетную запись администратора из functions.php .
Добавление и удаление размеров изображений в functions.php
Когда вы загружаете изображение в медиатеку WordPress, создается несколько вариантов вашего изображения. В WordPress есть миниатюры по умолчанию, маленькие, средние и большие размеры, которые используются в дополнение к вашему полноразмерному изображению. Ваша тема, как правило, использует оптимальный размер изображения для отдельных частей вашего сайта.
Если вы создаете свою собственную тему или вам нужно внести изменения в дочернюю тему, чтобы приспособить дополнительные пользовательские размеры изображений, вы можете сделать это в файле functions.php .
Используйте следующий код и измените имя пользовательского размера изображения с «нестандартный-маленький-квадрат» и «нестандартный-ландшафт» на любое имя, которое вы хотите использовать. Цифры рядом с названием пользовательского размера изображения представляют размер изображения в пикселях, поэтому введите значения в пикселях, начиная с ширины и заканчивая высотой.
function register_custom_image_sizes() { if ( ! current_theme_supports( 'post-thumbnails' ) ) { add_theme_support( 'post-thumbnails' ); } add_image_size( 'custom-small-square', 450, 450, true ); add_image_size( 'custom-landscape', 1000, 600 ); } add_action( 'after_setup_theme', 'register_custom_image_sizes' );
Keep in mind that additional custom image sizes can weigh down your site and impact load times. If you have some WordPress default image sizes that your theme doesn't use, you may want to delete and disable those to make room for your custom sizes.
If you want to disable WordPress default image sizes, you can place this code snippet into your functions.php file:
add_filter( 'intermediate_image_sizes_advanced', 'prefix_remove_default_images' ); // This will remove the small, medium, and large default image sizes. function prefix_remove_default_images( $sizes ) { unset( $sizes['small']); // 150px unset( $sizes['medium']); // 300px unset( $sizes['large']); // 1024px return $sizes; }
If you only need to disable one or two sizes, you can only add those sizes to the code above and delete the code that you don't need.
Use functions.php to allow additional file types in uploads
WordPress only allows a few different file types to be uploaded in your WordPress dashboard. This is a reasonable security measure, but you might encounter a situation where you need to upload a file type that's not natively allowed.
To add more allowed file types to WordPress, add the following code to your child theme's functions.php :
function additional_upload_file_types($mime_types){ $mime_types['stl''] = 'application/sla'; $mime_types['stl'] = 'application/vnd.ms-pki.stl'; $mime_types['stl'] = 'application/x-navistyle'; return $mime_types; } add_filter('upload_mimes', 'additional_upload_file_types', 1, 1);
For the above example, we used the stl file type, which is a CAD file type. It's an unusual file type to upload to a website outside of certain niche industries, but if your site is for an industrial designer, engineering firm, or even an orthodontics lab, you might find the ability to upload STL files really useful.
You can replace the $mime_type variable with whatever file extension suits the needs of your website. You'll also need to include the media type and subtype after that (eg 'application/sla' or 'image/octet-stream'). Here's a complete list of mime types that you can refer to.
Frequently asked questions about editing the functions.php file in WordPress
We've covered what the functions.php file is, how to find functions.php , how to access it, how to edit it, and a few code snippets you can add to your functions.php file. We'll wrap things up with a few helpful answers to frequently asked questions.
Do I really need to use a child theme to edit functions.php ?
Короткий ответ? Да.
If you're a theme developer, you'll definitely want to add your theme-specific functions directly to your theme's functions.php file. If you're modifying a theme from another developer that will get regular updates, however, you'll absolutely want to use functions.php within a child theme.
Most theme developers will periodically make updates to their themes for security and performance reasons, or to add new features. If you change the parent theme's functions.php file, those changes will all be overwritten when you update to your theme's latest version. All your hard work and customizations — poof! Gone.
Child themes aren't touched when the parent theme updates, so if you make changes to your child theme's functions.php file, your changes will be preserved any time you update your parent theme.
I edited functions.php and now I don't have access to my WordPress dashboard. Помощь!
In the unfortunate event that you edited the functions.php file and caused a critical error on your site that kept you from accessing the WordPress dashboard, don't worry — all is not lost!
There are a few things you can do to restore access to your site. You can edit functions.php via SFTP and a text editor or directly in cPanel if you know which bit of code caused the issue. Alternatively, you can restore functions.php from a backup or download a fresh copy of functions.php from your theme developer.
I know what code I messed up. I just need to access and edit functions.php to fix it.
See How to edit functions.php above for instructions on how to access and edit your theme or child theme's functions.php file.
I have no clue what I did to my functions.php file, but I have a backup.
If you have a backup on hand, you can access your files either on your web host's server or your remote server (depending on where you have opted to store these files), and use them to replace your corrupt functions.php file via SFTP or cPanel.
If you feel more comfortable restoring your entire site backup rather than trying to restore just the functions.php file, our article, “How to Restore WordPress from a Backup” goes in depth on the different methods you can use to restore your WordPress site.
I have no idea what code caused the problem and I didn't make a backup.
If you don't have a backup, you can download a fresh copy of the theme you're using from your theme developer, extract the functions.php file, and overwrite the broken functions.php file on your server via SFTP or cPanel.
Note: If you're using a theme that hasn't been updated in awhile, you may encounter issues in overwriting functions.php with a version that's from a much more recent update. If you encounter issues, you might be better off just manually updating your entire theme to the latest version. Alternatively, you can contact your theme developer to get the theme files for your current version and use that version of functions.php .
Can I add JavaScript to my functions.php file?
Yes, you can add code to your functions.php file that will add your custom JavaScript to either specific pages, posts, or all pages and posts on your site. This article covers all the different ways you can add JavaScript to your functions.php file.