Содержание
Вся правда о functions.php — WP Magazine
Одной из самых частых ошибок начинающих разработчиков WordPress — это использование файла темы functions.php не по назначению. В данной статье мы раскроем все мифы о данном файле и расскажем в каких случаях стоит его использовать.
Что такое functions.php
Если вы хоть раз открывали исходный код любой темы для WordPress, вероятно вы сталкивались с файлом под названием functions.php.
Файл functions.php
Основная цель данного файла — предоставить дополнительные функции необходимые для полноценной работы темы, а также установить некоторые параметры для ядра WordPress, например размер миниатюр, путь к файлам локализации темы, разделы для виджетов и другие.
Файл functions.php загружается при каждом запросе любой страницы в WordPress, включая запросы в панель администрирования и AJAX запросы. Это дает разработчикам темы возможность изменять любые аспекты их проекта на WordPress, а не только то, что связано с внешним видом.
К сожалению многие уроки WordPress в сети Интернет (серии «без плагинов») предлагают вставлять блоки кода именно в файл functions.php активной темы, потому что редактировать этот файл легче, чем создавать новый плагин, особенно через редактор файлов в панели администрирования WordPress.
Редактор файлов темы в WordPress
Таким образом после прочтения серии подобных уроков, файл functions.php становится огромным и нечитаемым, а при смене активной темы пропадает часть функционала, которая вовсе не относится к внешнему виду сайта.
Чем functions.php отличается от плагина
Если коротко — то ничем.
Если взглянуть на порядок загрузки ядра WordPress в файле wp-settings.php, то мы увидим что файл functions.php активной темы загружается немного позднее всех активных плагинов, но данный порядок не дает каких-либо преимуществ или недостатков. А содержание файла functions.php и файлов плагинов подключаются и выполняются идентичным образом.
Основным отличием плагинов от functions.php является то, что плагины можно выборочно активировать через интерфейс, а файл functions.php активной темы загружается всегда. Таким образом при смене активной темы мы теряем все, что было написано в старом файле functions.php, но наши активные плагины продолжают функционировать.
Мифы о производительности functions.php
Некоторые источники утверждают, что functions.php работает быстрее чем плагины, и иногда даже советуют переместить код из файла плагина в файл functions.php для его «ускорения». Это неправда.
Как мы уже упомянули, файлы плагинов и файл functions.php подключаются и исполняются идентичным образом, и PHP код размещенный в плагине и в файле functions.php будет выполняться с абсолютно одинаковой скоростью.
Список активных плагинов в базе данных WordPress хранится в одной опции, которая будет выбираться с одинаковой скоростью, независимо от количества активных плагинов. Иными словами, количество активных плагинов не влияет на скорость работы сайта на WordPress. Влияет лишь их содержание, ровно так же как и содержание файла functions.php.
Когда следует использовать functions.php
Как было сказано ранее, файл functions.php предназначен для функционала, связанного с темой или внешним видом сайта. Ниже представлен список примеров того, что следует писать именно в файле functions.php:
- Установление ширины содержимого в WordPress
- Объявление доступных разделов для виджетов в теме
- Установление пути к файлам локализации темы
- Объявление поддержки миниатюр и их размеры
- Объявление поддержки навигационного меню в теме
- Подключение требуемых скриптов и стилей для темы
- Подключение стилей темы для визуального редактора
- Создание раздела с настройками темы
- Создание дополнительных элементов управления в конфигураторе темы
- Дополнительные функции используемые в шаблонах темы
Список далеко не исчерпывающий, но дает понять какого рода функционал стоит хранить в файле functions.php. Для контрастности приведем короткий список сниппетов, которые не стоит хранить в functions.php:
- Код счетчиков Google Analytics или Яндекс.Метрики
- Произвольные типы записей или таксономии в WordPress
- Дополнительные скрипты и стили, не связанные с темой
- Дополнительные роли и привилегии
- Код для вставки рекламных баннеров в содержимое сайта
- Отключение RSS лент
- Скрытие версии ядра WordPress (этого делать вообще не стоит)
- Скрытие верхнего меню администрирования WordPress
- Отключение ревизий записей
- Отключение функций pingback/trackback
- Любые шорткоды
При столкновении с очередным отрывком кода, попробуйте задать себе простой вопрос — что произойдет при смене активной темы в WordPress? Если ваш ответ «перестанут работать счетчики посещаемости», «пропадут все произвольные типы записей», и т.д. то данный отрывок лучше хранить в виде плагина.
Как создать свой плагин
Для многих начинающих WordPress разработчиков тема создания собственных плагинов является сложной. Действительно для написания хорошего комплексного плагина для WordPress потребуется немало усилий и знаний в программировании, но, если вам нужно лишь вставить небольшой отрывок кода, то для этого подойдет и простой короткий плагин:
<?php /** * Plugin Name: Моя альтернатива файлу functions.php */ // Ваш код здесь
Сохраните этот файл под названием my-functions.php и разместите его в директории wp-content/plugins. После этого перейдите в раздел Плагины в панели администрирования WordPress и активируйте его.
Собственный плагин для WordPress
Также советуем не хранить все сниппеты в одном единственном плагине, а разбивать их на более мелкие отдельные плагины, чтобы с ними было удобнее работать.
Помните — количество активных плагинов не влияет на производительность сайта. Один плагин с десятью функциями будет работать с той же скоростью, что и десять плагинов содержащих по одной из этих же функций.
mu-plugins как альтернатива
В WordPress есть специальный вид плагинов, которые называются «must use» или mu-plugins. Эти плагины активны по умолчанию, и деактивировать их через панель администрирования возможности нет. В mu-plugins также отсутствует требование к заголовку PHP файла (Plugin Name и т.д.), поэтому код можно писать сразу после открытия тега <?php
.
Подобные плагины необходимо размещать в директории wp-content/mu-plugins. Если такая директория у вас отсутствует, вы можете ее создать.
Это неплохая альтернатива файлу functions.php, особенно тогда, когда вам необходимо написать функционал, который нельзя отключить, для чего часто ошибочно используется файл functions.php.
Так что в следующий раз, когда вы наткнетесь на статью про WordPress из серии «как сделать … без плагинов», не спешите вставлять код в файл темы functions.php — возможно данный код имеет смысл хранить именно в виде плагина.
Заражение файла functions.php темы оформления в WordPress | Вопросы-ответы на Wiki
Внимание! Нижеприведенная информация является исключительно рекомендациями, которые могут помочь удалить вредоносный код из скриптов сайта. Администрация хостинга не несёт ответственности за ущерб, нанесённый сайту при их выполнении специалистом с ненадлежащим уровнем знаний.
Удаление вредоносного кода только из файла functions.php
, как показывает практика, не решает вопроса. Поэтому эта инструкция может быть полезной при устранении проблемы.
Убедитесь, что файла
wp-includes/class.wp.php
нет в принципе. Если есть — удалите его. Обратите особое внимание на имя файла — в этом каталоге есть много файлов с похожим названием, но вместо точки — дефис, и т. д. Речь идёт исключительно оwp-includes/class.wp.php
.- Аналогично предыдущему пункту удалите файл
wp-includes/wp-vcd.php
, если он существует.
Примечание к первым двум пунктам: проверив официальный репозиторий WordPress, можно убедиться, что в стандартной комплектации обоих файлов нет и они являются сторонними. - Проверьте содержимое
wp-includes/post.php
. А именно — если в первой строке присутствует нечто вида:
Для убедительности пример, как выглядит файлpost.php
в стандартном виде WordPress — https://github.com/WordPress/WordPress/blob/master/wp-includes/post.php (обратите внимание на строку 1). - Пункты 1-3 должны помочь устранить причину, по которой вредоносный код может появляться в файлах
functions.php
после удаления. Осталось проверитьfunctions.php
каждой установленной темы. Самый верный способ — попробовать переустановить тему, если есть возможность. В противном случае — приведём пример заражённого файла: https://gist.github.com/alexandrpaliy/b3bb8a19433478fe32414895ad641709 — внешний вид строки 3 из данного примера является типичным признаком, чтоfunctions.php
заражён. В таком случае — удалить нужно весь блок<?php … ?>
, в котором встречается строка 3:
Выражаясь чуть проще, удалить нужно всё с начала файла и до первого сочетания символов?>
. В данном примере — это строка 100. В итоге очищенный файл будет иметь такой вид: https://gist.github.com/alexandrpaliy/95663f8dc1186cf6e4a6b725c397781b Есть сведения, что, в некоторых случаях вирус помимо модификации файлов также пытается создать нового пользователя админ-панели сайта, предоставляя ему права администратора. Потому, имеет смысл проверить в базе данных таблицу
users
(чаще всего —wp_users
), и если в ней присутствуют незнакомые вам пользователи — рекомендуется удалить их, удалив соответствующие строки таблицы.
8 хуков для functions.php, необходимых каждому сайту на WP
Итак, вы только что установили свой сайт на WordPress (условимся, что наш WordPress на русском языке, если нет — то будет одним хуком меньше). Также будем считать, что вы уже определились с темой, которую будете использовать, либо же вы решили создать свою собственную тему — одно из двух.
В этом посту я перечислю не просто хуки, «которые прикольные», а хуки, которые необходимы к установке на каждый WordPress-сайт. Надеюсь, благодаря моим постам, ваши сайты (и все сайты рунета) станут чуточку лучше.
1. Склонение дат на сайте
Если вы хотите, чтобы вместо «Опубликовано 31 Декабрь 2013» у вас отображалось «Опубликовано 31 декабря 2013», тогда этот хук обязателен к установке:
function true_russian_date_forms($the_date = '') { if ( substr_count($the_date , '---') > 0 ) { return str_replace('---', '', $the_date); } // массив замен для русской локализации движка и для английской $replacements = array( "Январь" => "января", // "Jan" => "января" "Февраль" => "февраля", // "Feb" => "февраля" "Март" => "марта", // "Mar" => "марта" "Апрель" => "апреля", // "Apr" => "апреля" "Май" => "мая", // "May" => "мая" "Июнь" => "июня", // "Jun" => "июня" "Июль" => "июля", // "Jul" => "июля" "Август" => "августа", // "Aug" => "августа" "Сентябрь" => "сентября", // "Sep" => "сентября" "Октябрь" => "октября", // "Oct" => "октября" "Ноябрь" => "ноября", // "Nov" => "ноября" "Декабрь" => "декабря" // "Dec" => "декабря" ); return strtr($the_date, $replacements); } // если хотите, вы можете приминить только некоторые из фильтров add_filter('the_time', 'true_russian_date_forms'); add_filter('get_the_time', 'true_russian_date_forms'); add_filter('the_date', 'true_russian_date_forms'); add_filter('get_the_date', 'true_russian_date_forms'); add_filter('the_modified_time', 'true_russian_date_forms'); add_filter('get_the_modified_date', 'true_russian_date_forms'); add_filter('get_post_time', 'true_russian_date_forms'); add_filter('get_comment_date', 'true_russian_date_forms');
Функция склонения дат будет работать как для постов и страниц, так и для комментариев WordPress.
2. Сообщения об ошибках при попытке авторизации пользователя на сайте
Если при авторизации допустить ошибку при вводе логина или пароля, WordPress указывает, что именно было введено неправильно. Например «ОШИБКА: Неверное имя пользователя.» или «ОШИБКА: Введённый вами пароль пользователя admin неверен.»
Для того, чтобы WordPress не сообщал лишней информации, мы на оба случая сделаем общее сообщение об ошибке, вставив следующий код в functions.php
.
function true_change_default_login_errors(){ return '<strong>ОШИБКА</strong>: Вы ошиблись при вводе логина или пароля.'; } add_filter( 'login_errors', 'true_change_default_login_errors' );
Подробнее о замене сообщений об ошибках вы можете почитать здесь.
3. Защита от вредоносных URL-запросов
if (strpos($_SERVER['REQUEST_URI'], "eval(") || strpos($_SERVER['REQUEST_URI'], "CONCAT") || strpos($_SERVER['REQUEST_URI'], "UNION+SELECT") || strpos($_SERVER['REQUEST_URI'], "base64")) { @header("HTTP/1.1 400 Bad Request"); @header("Status: 400 Bad Request"); @header("Connection: Close"); @exit; }
4. Защита от автоматического спама
Отлично борется с автоматическим спамом, результат — менее 5 спамных комментариев в месяц. Хочу обратить внимание, что прежде, чем вставлять этот хук в ваш functions.php
, вы должны добавить скрытое поле в форму комментирования на сайте, иначе вообще никакие комментарии проходить не будут. Читайте подробнее здесь.
function true_stop_spam( $commentdata ) { $fake = trim($_POST['comment']); // обычное поле комментирования мы скроем через CSS if(!empty($fake)) // заполнение его роботами будет приводить к ошибке, комментарий отправляться не будет wp_die('Спамный коммент!'); $_POST['comment'] = trim($_POST['true_comment']); // затем мы присвоим ему значение поля комментария, которое для людей return $commentdata; } add_filter('pre_comment_on_post', 'true_stop_spam');
5. Скрываем имена пользователей из HTML-кода комментариев
Этот хук позволит удалить все имена пользователей из CSS-классов комментариев. Если же у вас стили комментария администратора отличаются от стилей остальных комментов, то благодаря этому хуку вы также можете добавить какой-нибудь особенный класс именно для администратора сайта. Читайте подробнее здесь.
function true_remove_css_class( $classes ) { foreach( $classes as $key => $class ) { if(strstr($class, "comment-author-")) { unset( $classes[$key] ); } } return $classes; } add_filter('comment_class', 'true_remove_css_class');
6. Запрет пингбэков и трэкбэков на самого себя
После добавления этого кода в functions.php
, трэкбэки больше не будут появляться, когда вы будете ссылаться на другие посты вашего сайта.
function true_disable_self_ping( &$links ) { foreach ( $links as $l => $link ) if ( 0 === strpos( $link, get_option( 'home' ) ) ) unset($links[$l]); } add_action( 'pre_ping', 'true_disable_self_ping' );
7. Скрываем версию WordPress
По умолчанию можно узнать версию установленного на сайте WordPress, заглянув в исходный HTML-код или в код RSS. Для того, чтобы не предоставлять злоумышленникам лишней информации, вставляем это в funcions.php
:
function true_remove_wp_version_wp_head_feed() { return ''; } add_filter('the_generator', 'true_remove_wp_version_wp_head_feed');
Подробнее здесь.
8. Ставим ссылку на себя в футере в админке
Если вы сделали кому-то сайт, то в футер можно добавить ненавязчивое сообщение, что разработкой занимались вы.
function true_change_admin_footer () { $footer_text = array( 'Спасибо вам за творчество с <a href="http://wordpress.org">WordPress</a>', 'Разработал <a href="https://misha.agency" target="_blank">Миша Рудрастых</a>' ); return implode( ' • ', $footer_text); } add_filter('admin_footer_text', 'true_change_admin_footer');
В итоге получим:
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!
Страница не найдена — ЛАВСИТ
5. Гарантия на Товар
5.1. Гарантийный срок на каркас мебели и элементы внешней отделки (швы, молдинг) составляет 24 месяца.
5.2. Гарантия не распространяется на ткань.
5.3. В соответствии с ГОСТ Р 16371-93 гарантийные обязательства продавца не распространяются на Товары, сборка которых производилась силами Покупателя.
5.4. Гарантия не распространяется на повреждения, полученные в ходе самостоятельной доставки и подъема Товара силами Покупателя.
5.5. Гарантийное обслуживание не производится в случае:
— истечения гарантийного срока;
— невыполнения условий эксплуатации;
— наличия на изделии механических повреждений и дефектов, выявленных Покупателем после осуществления приемки-передачи;
— наличия на изделии механических повреждений и дефектов, следов постороннего вмешательства в изделие, возникающих в результате неправильной эксплуатации;
— нанесения ущерба изделию в результате умышленных или ошибочных действий Покупателя;
— нанесения ущерба изделию, вызванного попаданием внутрь изделия посторонних предметов, жидкостей, животных, насекомых и т.д.;
— нанесения изделию ущерба в результате внесения изменений в его конструкцию;
— нарушения иных условий, указанных в Правилах и условиях эффективного безопасного использования мебели (ГОСТ Р 16371-93, ГОСТ Р 19917-93).
5.6. При доставке Товара от Продавца к Покупателю допускается наличие незначительных дефектов, не влияющих на функциональность:
— проходящий и несильный химический запах;
— незначительные сколы либо царапины на деревянных опорах;
— небольшой разнотон выкраса;
— незначительный разнотон ткани в сравнении с образцами;
— замин или залом ворса ткани.
5.7. Если в результате экспертизы Товара установлено, что его недостатки возникли вследствие обстоятельств, за которые Продавец не отвечает, Покупатель обязан возместить Продавцу расходы на проведение экспертизы и расходы на логистику.
5.8. Срок устранения недостатков Товара по гарантии — до 40 (сорока) рабочих дней, не считая дня обращения Покупателя к Продавцу, в случае если все необходимые комплектующие есть в наличии у поставщика Продавца. В противном случае Продавец должен предоставить электронную копию документа от своего поставщика, подтверждающего отсутствие необходимых комплектующих, и гарантийный срок может быть продлен на время их поставки в город Продавца.
5.9. В зависимости от периода закупки ткани, ее оттенок может меняться, в связи с чем мебель с одним и тем же артикулом ткани, Заказанная не одновременно, может незначительно отличаться по цвету друг от друга.
Файл functions.php – зачем он нужен, как его редактировать в WordPress
WPuse.ru 06.02.2020
Доброго времени суток!
В WordPress можно реализовать множество возможностей. Причём для этого можно использовать как плагины, так и непосредственно вписывать необходимый код в файлы, что относятся к WordPress. И одним из таких популярных файлов является functions.php.
Содержание:
Что за файл functions.php, каковы его задачи
Данный файл в обязательном порядке располагается в директории с используемой темой (дизайна) сайта. В большинстве своём в этом файле прописываются те или иные функции, отвечающие за дизайн и функционал используемой темы сайта (дизайна). Однако это далеко не весь перечень возможностей, что позволяет реализовать данный файл. Этот файл «подхватывается» при непосредственной инициализации движка WordPress, что означает, что имеющийся в файле код исполняется при вызове совершенно любой страницы сайта, включая даже консоль WordPress.
Давайте посмотрим, какие задачи можно решать с использованием файла functions.php:
- Внешний вид, функционал темы – как уже говорилось выше, изначально в этом файле размещается код, в первую очередь отвечает за дизайн и функционал темы. Он может быть самым различным, на усмотрение автора, что создал тему.
- Функционал сайта – в этом файле может размещаться код, что отвечает в целом за функционал сайта, логику его работы. Вы можете добавить самый различный код, затрагивающий все возможные области функционирования сайта.
- Консоль WordPress – да, размещаемый в файле код подхватывается и при использовании админ-панели WordPress. Можно что-либо изменить там с помощью всё того же functions.php.
По принципу работы файл functions.php практически идентичен добавленному на сайт плагину. Однако есть и свои особенности:
- Файл functions.php располагается в директории с файлами темы (дизайна сайта). Если, к примеру, вы переключите тему на другую, то будет обрабатываться уже имеющийся там файл functions.php.
- Плагин можно в любой момент включить или отключить, а код в functions.php обрабатывается всегда. И если вы туда что-то вписали для расширения функционала, то для его отключения впоследствии следует будет удалить вписанный ранее вами код.
- Файл расположен в папке с темой. И если выйдет новая версия темы и вами она будет установлена, то данный файл будет перезаписан, а все сделанные вами в нём изменения будут затёрты.
Где находится файл functions.php
Необходимый файл располагается в директории, где расположены другие основные файлы темы (header.php, footer.php, single.php и так далее). А сама директория располагается по пути wp-content/themes/<название_темы>/
Стоит сказать, что одноимённый файл ещё имеется в папке /wp-includes/, где располагаются файлы самого движка WordPress. И этот файл не подлежит редактированию.
Редактирование файла functions.php
Упоминание файла functions.php часто встречается в различных руководствах для WordPress, позволяющих расширить тот или иной функционал сайта.
Отредактировать файл можно двумя способами, давайте их рассмотрим:
- Первый вариант заключается в использовании возможностей по редактированию файлов, что предлагает сам WordPress.
Необходимо в консоли WordPress зайти в меню Внешний вид и далее нажать по пункту Редактор тем и выбрать необходимый файл для правки.
Вписывать код необходимо после блока описания темы. На изображении ниже вы можете видеть пример данного блока.
В некоторых темах у файла functions.php данного блока нет. В этом случае вписываете желаемый код сразу после <?php. На изображении ниже наглядно это продемонстрировано.
- Второй вариант, позволяющий редактировать файлы в WordPress, это использование FTP клиента для доступа к файлам на хостинге\ сервере и популярного бесплатного текстового редактора под названием Notepad++ для непосредственного редактирования файла.
Этот способ весьма удобен и предпочтителен, ведь если внести какую-либо некорректную запись в файл functions.php, то сайт может перестать функционировать, включая админ-панель WordPress. Но это никак не повлияет на работоспособность FTP. Вы всегда сможете моментально отменить все внесённые в файл изменения.
И так, используя FTP клиент (их существует множество, как платных, так и полностью бесплатных), настройте в нём доступ к файлам своего сайта (инструкцию по настройке можно получить у провайдера хостинга). Открыв в нём список вашего сайта, перейдите в папку wp-content/themes/<название_темы>/ и далее откройте на редактирование файл.
Впишите или отредактируйте необходимое и сохраните результат. Если что-то пойдёт не так, то вы сможете моментально отменить все внесённые изменения, для этого в верхнем меню имеется пункт Правка -> Отмена или стрелочки на панели инструментов.
Вот мы и рассмотрели детально, что за файл, который весьма часто упоминается в статьях и материалах, где приводятся различные твики и функциональные решения для сайта, работающего на движке WordPress.
Пожертвование сайту WPuse.ru (cбор пожертвований осуществляется через сервис «ЮMoney»)
Как отредактировать файл functions.php в WordPress @ TwentySixForty
Что такое файл functions.php?
Файл functions.php включен в темы WordPress. Он действует как плагин, позволяющий добавлять или изменять функции или функции на вашем веб-сайте WordPress. Вы можете вызывать встроенные функции WordPress или писать свои собственные. Очень важно отметить, что если вы редактируете файл functions.php, вы должны использовать дочернюю тему, потому что все ваши изменения будут потеряны при обновлении основной темы.Как сделать дочернюю тему.
Что мне нужно: отредактировать файл functions.php или написать плагин?
Вы должны использовать файл functions.php, чтобы добавить простой код, связанный с тем, как отображается ваш контент. Вам следует написать плагин для более сложного кода, который не зависит от вашей темы. Если вы хотите, чтобы код продолжал работать, даже если вы когда-нибудь измените тему, поместите его в плагин. Если нет, используйте файл functions.php.
Как отредактировать файл functions.php.
Есть несколько способов редактировать функции.php, я покажу вам два разных способа. Непосредственно через серверную часть WordPress и через FTP.
Как редактировать файл functions.php прямо в WordPress.
- Войдите в админку сайта WordPress.
- На боковой панели администратора , перейдите в Внешний вид> Редактор тем.
- Щелкните functions.php на правой боковой панели . (Убедитесь, что вы редактируете дочернюю тему.)
- При необходимости отредактируйте файл.
- Сохраните или обновите файл.
Как редактировать файл functions.php через FTP
Чтобы использовать этот метод, вам необходимо установить FTP-соединение. Если вы не знаете, как это сделать, сначала перейдите сюда: Как создать учетную запись FTP в cPanel. или Как установить FTP-соединение с FileZilla.
После подключения к FTP:
- В корневом каталоге веб-сайта перейдите в wp-content> themes> YOUR CHILD THEME.
- Найдите функции.php файл.
- Щелкните правой кнопкой мыши файл functions.php и выберите «Изменить».
- При необходимости отредактируйте файл.
- Сохраните файл.
- Выберите Да, если будет предложено.
- Закройте файл в текстовом редакторе, если редактирование закончено.
Дополнительные сообщения.
Что такое файл functions.php в WordPress?
Файл functions.php или файл функций темы — это шаблон, включенный в темы WordPress.Файл functions.php ведет себя как плагин WordPress, добавляя функциональность и возможности сайту WordPress. Файл автоматически активируется с текущей темой и использует код PHP для изменения функций по умолчанию или добавления новых.
Редактирование файла functions.php с помощью пользовательских кодов позволяет улучшить ваш сайт с помощью таксономий, коротких кодов, типов сообщений и т. Д. Например, тема WP может добавить код в файл functions.php темы, чтобы добавить настраиваемое приветственное сообщение или новую область виджетов в нижний колонтитул панели инструментов.
Functions.php и плагины WordPress
Существуют преимущества и недостатки использования functions.php вместо плагина WordPress
Файл functions.php:
- Не требует уникального текста заголовка
- Хранится в подкаталог темы в wp-content / themes
- Выполняется только в каталоге активной темы
- Применяется только к этой теме (если тема изменена, вы больше не можете использовать функции)
- Может иметь множество блоков кода, используемых для много целей
Плагин WordPress:
- Требуется особый уникальный текст заголовка
- Хранится в wp-content / plugins, обычно в подкаталоге
- Выполняется только при загрузке страницы при активации
- Применимо ко всем темам
- Должен иметь единственную цель — e.g., предложите функции SEO или помогите с резервными копиями
Обратите внимание: используйте functions.php с осторожностью
Если вы решите отредактировать файл functions.php, будьте предельно осторожны по следующим причинам: изменения в файле функций будут потеряны при обновлении темы.
Ошибка в коде, даже такая простая вещь, как пропущенная точка с запятой, может привести к исчезновению всего вашего сайта из-за ошибки «Белый экран смерти» и других ошибок WP. Редактируйте файл functions.php только в том случае, если у вас есть дочерняя тема, а фрагменты кода будут использоваться только с активной дочерней темой. Например, вы можете включить фрагменты для таблиц стилей, пользовательских шрифтов или добавить файл языкового перевода для этой конкретной дочерней темы
Правильный способ добавления пользовательских функций на ваш сайт WordPress
WordPress по праву славится огромным набором плагинов и тем, которые он делает доступными для владельцев сайтов.Если вы хотите добавить функцию на свой сайт WordPress, вы почти наверняка найдете плагин, который сделает эту работу.
Но иногда вам может понадобиться небольшая настройка или часть специальной функциональности, которая недоступна в виде плагина. Решение состоит в том, чтобы добавить на сайт фрагмент собственного кода. WordPress — это приложение PHP, а плагины и темы WordPress написаны на языке программирования PHP. Как клиент хостинга WordPress, вы имеете доступ к тем же хукам и инструментам, которые используют разработчики WordPress.
Для этого вам даже не нужно быть экспертом по PHP. В сети есть тысячи готовых сниппетов, которые вы можете адаптировать для своих целей. Однако будьте осторожны, добавление кода на ваш сайт может быть связано с безопасностью, а плохо написанный код может вообще помешать вашему сайту WordPress работать. Убедитесь, что вы знаете, что делает функция и что она совместима с вашей версией WordPress, прежде чем добавлять ее на свой сайт.
Когда вы обнаружили необходимость в функции и написали ее с нуля или адаптировали заранее написанную функцию, куда вы должны ее поместить?
Есть неправильный и правильный способ сделать это.Если вы сделаете это «неправильно», ваша функция может изначально работать, но, скорее всего, перестанет работать, когда вы обновите свой сайт.
Как не добавлять пользовательские функции в WordPress
Двумя наиболее распространенными «плохими» способами добавления пользовательских функций в WordPress являются редактирование существующего плагина или редактирование файла functions.php.
Не редактируйте файлы плагинов. Если ваш фрагмент кода изменяет функциональность плагина, может показаться разумным добавить новый код непосредственно в плагин.Но когда вы обновляете плагин, файлы, которые вы изменили, будут перезаписаны, и ваш код исчезнет.
Файл functions.php не является универсальной свалкой для пользовательского кода . Файл functions.php принадлежит вашей теме. Если код, который вы хотите добавить, зависит от темы, то functions.php — хорошее место для его размещения. Но при переключении тем в новой теме не будет настраиваемого кода. Избегайте использования пользовательского кода общего назначения в функциях .php .
Правильный способ добавления пользовательских функций
Есть несколько способов добавить пользовательские функции в WordPress, которые будут работать после вашего следующего обновления или переключения темы.
Плагин Code Snippets
Плагин Code Snippets разработан именно для этой цели. Он предоставляет графический интерфейс для добавления фрагментов кода на сайт WordPress. Вы можете добавить столько фрагментов, сколько захотите, легко включать и отключать их, а также экспортировать в формате, который можно импортировать на другие сайты WordPress с помощью плагина Code Snippets.
Руководство для новичков по оптимизации производительности WordPress >>
Создать собственный плагин
Идея может показаться сложной, но создать собственный плагин, который можно будет установить на сайте WordPress вместе со сторонними плагинами, несложно.
Базовая структура минимального плагина выглядит так:
- Папка с тем же именем, что и ваш плагин, например мой-плагин . Это не обязательно, но полезно, если вы хотите добавить больше файлов в будущем.
- Файл PHP внутри этой папки с именем my-plugin.php
В файл my-plugin.php добавьте следующий текст:
/ * Имя плагина: Пример плагина * /
По сути, это все, что вам нужно для создания плагина, хотя он пока ничего не делает. Чтобы сделать его полезным, вам нужно добавить свою пользовательскую функцию в файл PHP, а затем загрузить папку в каталог плагинов вашего сайта WordPress, обычно wp-content / plugins / .
Если вам нужно добавить новые функции, вы можете просто перезаписать старую версию своими изменениями.
Ускорьте работу WordPress с помощью полностью управляемого хостинга Nexcess
Если ваш хостинг WordPress не обеспечивает необходимую скорость, рассмотрите возможность полностью управляемого хостинга WordPress от Nexcess.
Nexcess может ускорить ваш сайт WordPress с помощью:
- Встроенный CDN с 22 адресами.
- Расширенное кэширование для сверхбыстрой загрузки.
- Сжатие изображения для сокращения времени загрузки браузера.
- И многое другое.
Начните работу с управляемым WordPress бесплатно. Начните бесплатную двухнедельную пробную версию сегодня.
Связанное содержимое
WordPress functions.php и плагин функциональности для конкретного сайта
Многие разработчики WordPress до меня обсуждали разницу между файлом functions.php темы и созданием плагина функциональности (WP Candy, Ottopress, WP Beginner, Justin Tadlock (несколько раз) , Райан Коулз и др.). С распространением премиальных тем WordPress кажется, что многие разработчики упаковывают свои темы множеством функций.Вероятно, это попытка создать комплексное решение для веб-сайта, поэтому пользователю нужно установить только одну вещь (тему), и у них есть все необходимое.
WordPress был разработан не так.
Темы и плагины
тем WordPress существуют для создания общего дизайна и макета веб-сайта. Вместе дизайн и макет определяют, как будет выглядеть контент, когда он будет представлен пользователю.
Плагины
WordPress существуют для создания функциональности веб-сайта, а также всего, что составляет его неотъемлемую часть.
Если завтра вы проведете ребрендинг своей компании — измените логотип, цвета, шрифты и все сообщение бренда — вам, очевидно, придется изменить тему. Но веб-сайт по-прежнему должен функционировать точно так же, как сейчас. И весь ваш контент должен оставаться в такт, точно так же, как и в течение многих лет. Пользователи должны иметь одинаковые возможности. Админка не должна выглядеть иначе.
Разбивка Райана Имела того, какой код куда идет.
Темы предназначены для дизайна, цветов, шрифтов, интервалов и макета.
Плагины предназначены для содержания, функциональности и функций администратора.
Что входит в плагин функциональности по сравнению с темой functions.php?
У Райана Имела из WP Candy есть таблица, в которой показаны функции, принадлежащие плагину, и файлу functions.php темы.
Я хотел бы расширить его и создать собственную таблицу. Вот моя разбивка:
Код | Подключаемый модуль функций | Функции темы.php |
---|---|---|
Добавление стилей и скриптов | Зависит (рамки, шрифты, сбросы) | Зависит (стили темы и другие, зависящие от темы) |
Поддержка миниатюр и форматов сообщений | Всегда | |
Создание виджетных областей (register_sidebar) | Всегда | |
Создание актуальных виджетов | Всегда | |
Регистрация меню | Всегда | |
Создание коротких кодов | Всегда | |
Пользовательские типы сообщений и таксономия | Всегда | |
Создание нестандартных размеров изображения | Зависит (если вы будете использовать их независимо от темы) | Зависит (если зависит от темы) |
Настроить админку и панель управления WordPress | Всегда | |
Пользовательские стили входа в систему для wp-login.php | Зависит (если общий с логотипом и персонализированным сообщением) | Зависит (если сильно настроен в соответствии с темой) |
Код Google Analytics | Всегда | |
Функции пользователя и поля профиля | Всегда | |
Функции Gravatar | Всегда | |
Добавить классы в body_class и post_class | Всегда | |
Изменения в разделе | Всегда |
Один плагин vs.Несколько
После нескольких часов исследования функций темы и подключаемых модулей функциональности я решил создать подключаемый модуль функциональности со многими из тех же функций, которые мы используем снова и снова. В итоге я создал один плагин, который содержит подпапки для организации различных функций в логические фрагменты кода.
Вы можете просмотреть и загрузить мой плагин WordPress Custom Functions на github.
Однако теперь, когда я прошел через весь этот процесс, я начинаю думать, что имеет больше смысла создавать плагины с несколькими функциональными возможностями.Причина:
- Если на сайте есть проблема, ее проще отладить, просто отключив плагин.
- Вы можете включать и выключать функции, если подозреваете, что есть конфликты, или вам нужно внести некоторые исправления, прежде чем они снова заработают.
Когда все функции содержатся в одном плагине, отладка становится более сложной, и код становится беспорядочным, комментируя вещи.
Мои следующие несколько мини-проектов, надеюсь, будут состоять из создания группы небольших одноразовых плагинов, которые я загружу в WordPress.org, чтобы сообщество могло выбирать, какие функции они хотели бы добавить на свой сайт.
Дополнительные ресурсы
Редактировать WordPress functions.php без ошибок в WP
Часто вы хотите что-то изменить в своей теме, добавить новые функции или изменить существующие. В сети вы можете найти множество руководств, которые должны сделать эти проекты возможными. Тогда это не редкость: «вставьте этот фрагмент в functions.php ваших тем и готово! Да, если бы это было так просто.Потому что не так уж и редко это приводит к полному отказу сайта. Файл functions.php является конфиденциальным, и если вы вставите код куда-нибудь без каких-либо знаний, вы рискуете парализовать весь сайт. В этом уроке я покажу вам, как правильно редактировать functions.php вашей темы WordPress, не закрывая сайт.
Как мне отредактировать functions.php моей темы?
Есть два основных метода редактирования файлов вашей темы. Как это часто бывает, удобный способ — не лучший способ внести изменения.Далее я более подробно расскажу об этих двух методах.
Изменения в PHP через редактор кода WordPress
Удобный метод, который я категорически не рекомендую, — это редактировать файлы с помощью редактора WordPress. Вы можете найти исходный код в разделе «Дизайн»> «Редактор». Затем вам нужно выбрать тему, которую вы хотите отредактировать. Доступные файлы перечислены справа.
В списке вы найдете файлы шаблона (php) и таблицы стилей (CSS) вашей темы.Хотя изменения в CSS обычно не приводят к каким-либо осложнениям, а в худшем случае дизайн немного перемещается, изменения в файлах PHP могут парализовать весь веб-сайт. Поэтому этот метод не следует использовать для экспериментов, а изменения следует вносить только в том случае, если вы полностью уверены в том, что делаете.
Внесение изменений в PHP через FTP
Лучшее и более безопасное решение — использовать клиент FTP (протокол передачи файлов). Любой, кто установил WordPress вручную, а не через установку в один клик, будет знаком с передачей по FTP.Если у вас не было опыта передачи данных через FTP, вы можете найти все остальное в нашем руководстве по FTP.
Инструкция: Правильно отредактировать тему functions.php
Сначала мы устанавливаем соединение между нашим FTP-клиентом и сервером веб-хостинга. Затем мы ищем на нашем сервере веб-хостинга файл, который хотим отредактировать, в правом поле FileZilla. Если вы хотите отредактировать functions.php, вы можете найти его по адресу: /wp-content/themes/*your-theme*/functions.php.
Перед редактированием файла необходимо сделать резервную копию.Для этого мы определяем место хранения (например, рабочий стол или USB-накопитель) для резервной копии в левой области клиента, щелкаем правой кнопкой мыши файл, для которого требуется создать резервную копию, и выбираем «Загрузить».
Мы используем загруженный файл в качестве резервной копии на случай, если во время редактирования что-то пойдет не так и нам потребуется восстановить файл. Затем мы щелкаем правой кнопкой мыши по нашей резервной копии и переименовываем ее (например, copy functions.php). Теперь мы снова загружаем «оригинальный» functions.php. После этого он должен выглядеть как на следующем скриншоте:
После этого файл можно редактировать.Для этого мы открываем документ правой кнопкой мыши (а не двойным щелчком). После его открытия можно вносить желаемые изменения. Для этого вам следует использовать простой текстовый редактор. Для Mac TextEdit — хороший выбор. Пользователи Windows могут использовать Блокнот. Если у вас нет обеих программ, вы можете загрузить бесплатный текстовый редактор Atom. Если вы не знаете, куда поместить код, следующая статья поможет вам: Правильно включите код в тему functions.php
После внесения всех изменений файл необходимо сохранить.Затем мы снова щелкаем правой кнопкой мыши по файлу и выбираем «Загрузить».
FileZilla сообщит вам, что файл с таким именем уже существует. Выберите «Перезаписать», чтобы заменить исходный файл измененной версией.
После загрузки измененной версии на сервер проверьте работоспособность веб-сайта. За исключением вашей сдачи, все должно быть как было раньше.Все в порядке? Тогда все!
Если на вашем веб-сайте отображается белый экран или сообщение об ошибке, что-то пошло не так. Может, вы неправильно поместили код?
справка с белым экраном или сообщением об ошибке
Хорошо, что мы сделали резервную копию. Если вы не сделали этого, потому что думали, что это сработает, у нас есть (более сложное) решение для вас.
Резервное копирование
Попробуйте вернуть код в исходный формат или вставьте код в нужное место и еще раз проверьте работоспособность своего веб-сайта WordPress.Если это не сработает, переименуйте резервную копию с исходным именем файла (functions.php). Загрузите версию на свой сервер и перезапишите измененную версию. Ошибка должна быть исправлена сейчас.
Без резервного:
Перезагрузите используемую тему. Если вы используете бесплатную тему WordPress, вы можете скачать ее здесь: Темы WordPress. Найдите functions.php темы. Загрузите его на сервер и перезапишите изменения. Ошибка должна быть исправлена сейчас.
Еще вопросы? Предложения по улучшению или предложения по дальнейшим статьям? Тогда напишите в комментариях.
файлов функций и дочерних тем — объяснено! · Кодекс bbPress
Файлы функций и дочерние темы — объяснены!
Codex Home → Файлы функций и дочерние темы — объяснение!
Создание дочерней темы и файла функций
Многие ответы службы поддержки wordpress и bbpress говорят вам добавить код либо в ваш файл функций, либо в ваш style.css. Но что такое файл функций и что такое файл style.css — как мне их создать и куда их поместить ?
Мы надеемся, что это руководство ответит на все эти и многие другие вопросы!
Что такое файл функций?
Файл функций — это просто файл с именем Функции.php, который находится в вашей теме. Это позволяет вам добавлять дополнительные функции в wordpress и bbpress без необходимости изменять код в этих файлах. Если вы измените код в bbpress и wordpress, он, вероятно, будет перезаписан при любых обновлениях, и вы потеряете его.
Теперь, поскольку файл функций принадлежит теме, с равной вероятностью он будет перезаписан при обновлении темы, поэтому по этим причинам лучший способ действий — создать дочернюю тему (если у вас ее еще нет. ) и поместите в него файл функций.
Что такое файл Style.css?
Каждая тема имеет style.css, но плагины также могут добавлять дополнительные файлы стилей. Вместе эти файлы определяют, как выглядит ваша страница, например, где на странице может располагаться элемент, есть ли у него какие-либо отступы, чтобы отделить его от другого текста, какой шрифт, цвет и размер должен быть у вашего текста, стили для ваших различных заголовков и т. Д. .Файл стиля также может скрывать вещи, поэтому иногда мы можем предложить вам изменить элемент на «display: none», чтобы он был скрыт.Как и файлы функций, файлы стилей могут быть перезаписаны обновлениями темы или плагина, поэтому не рекомендуется изменять их для темы или плагина, которые вы написали не сами. Итак, как и в случае с файлом функций, лучший способ действий — создать дочернюю тему (если у вас ее еще нет), и в качестве APRT у вас будет style.css для этой темы.
У меня уже есть дочерняя тема?
Итак, сначала нам нужно увидеть, что это за тема, и является ли она родительской или дочерней.Если это родительская тема, вам следует создать дочернюю тему, добавить файл функций в эту дочернюю тему и внести туда свои изменения. Если вы измените какие-либо файлы в родительских темах, вы можете потерять изменения при обновлении или обновлении. Таким образом, вы не хотите изменять файлы родительской темы.
Ваша тема wordpress
Прежде всего, ваша установка WordPress будет использовать «тему» - это набор файлов, которые стилизуют ваш сайт (как он выглядит) и добавляют некоторые функциональные возможности (как он действует).
Возможно, вы используете одну из «тем по умолчанию»: двадцать десять, двадцать одиннадцать, двадцать двенадцать, двадцать тринадцать и двадцать четырнадцать. Эти темы написаны и поддерживаются командой wordpress, и весь код wordpress и bbpress проверяется на соответствие этим темам, чтобы убедиться, что он работает. Вот почему вас часто просят протестировать проблему с bbpress, используя «тему по умолчанию», как часть процесса расследования.
В качестве альтернативы вы можете использовать «бесплатную тему». Многие из них доступны по адресу https: // wordpress.org / themes /.
В-третьих, возможно, вы используете платную тему. Они, как правило, более сложные и предлагают множество преимуществ, но интеграция с bbpress может быть более сложной. Перед покупкой стоит проверить, поддерживает ли ваша оплачиваемая тема активную поддержку bbpress, если bbpress важен для вашего сайта. Большинство тем можно настроить для работы с bbPress с помощью нескольких настроек, но это может быть очень неприятно на начальном этапе, когда все работает и выглядит великолепно.
Наконец, вы можете использовать дочернюю тему. Проще говоря, это тема, которая использует одну из вышеперечисленных (тема по умолчанию, бесплатная тема или купленная тема) в качестве основы, а затем вносит изменения.Если вы заплатили кому-то за создание или настройку сайта для вас, велика вероятность, что это дочерняя тема.
Итак, как узнать, что вы используете?
Самый быстрый способ — зайти в
Панель управления> внешний вид> темы
Вы увидите список тем, установленных на вашем сайте, и вы увидите, что первая из перечисленных тем является «активной», и это тема, которую использует ваш сайт.
Если вы наведете курсор на активную тему, отобразятся «сведения о теме», и если вы нажмете на нее, вы получите некоторую информацию о теме.
Если это «команда wordpress», то вы знаете, что это тема по умолчанию. В противном случае зайдите на https://wordpress.org/themes/ и найдите его. Если он там есть, то это бесплатная тема. Наконец, если вы введете название темы в Google, вам следует указать продавца или хотя бы некоторые детали службы поддержки, которые сообщат вам, что эту тему написал кто-то другой.
Если какой-либо из них отображается, значит, у вас есть родительская тема, которая поддерживается где-то еще, и они могут выпускать обновления, поэтому, если вы измените какие-либо файлы в них, вы можете потерять изменения при обновлении или обновлении.Значит, вы не хотите изменять эти файлы.
Если вам не удалось найти свою тему ни одним из вышеперечисленных методов, или если вы знаете, что кто-то изменил тему специально для вас, то велика вероятность, что это дочерняя тема, поэтому ее не должен обновлять кто-либо извне, поэтому вы должен иметь возможность вносить изменения, не беспокоясь.
Итак, последний тест, чтобы проверить, является ли ваша тема дочерней темой, и мы будем готовы продолжить. Итак, теперь вам нужно будет иметь возможность зайти на FTP и передать файл на свой компьютер, чтобы вы могли посмотреть его и прочитать заголовок.
Что такое FTP и как получить к нему доступ?
Для доступа к файлам вам понадобится FTP-клиент. Некоторые хост-провайдеры работают в пределах своей административной области, в случае сомнений обратитесь к своему хост-провайдеру.
В противном случае вам потребуется загрузить программу на свой компьютер. Доступно несколько, но одна из самых популярных — Filezilla.
Чтобы узнать, как скачать эту программу и использовать ее на своем ПК, поможет следующее видео
http: // www.youtube.com/watch?v=Wtqq1Mn1ltA
Есть много других учебных пособий — просто загуглите «видео-учебник по filezilla»
Также доступны другие программы FTP, просто введите в Google «FTP-клиент»
Чтобы получить доступ к своим веб-файлам, вам понадобятся три части информации:
Примечание: имя пользователя и пароль FTP полностью отделены от данных для входа в wordpress / wp-admin / admin.
Ваш хост-провайдер обычно перечисляет это в вашей административной области, поэтому просто поищите FTP и, если сомневаетесь, обратитесь к своему хост-провайдеру.
Затем следуйте руководству
https://make.wordpress.org/training/handbook/theme-school/child-themes/
или посмотрите видео
https://www.youtube.com/watch?v=yDPbCV5_2Cw
Если ваша тема импортирует другую тему, как показано на шаге 2, значит, у вас уже есть дочерняя тема.
Если нет, то в приведенном выше руководстве показано, как его сделать.
В итоге у вас будет дочерняя тема с файлом style.css
Смена кода с помощью блокнота ++
Поскольку вы собираетесь создавать или изменять файлы, вам понадобится кто-то, с кем это можно будет сделать.Можно использовать обычный блокнот, но в большинстве случаев то, что у вас есть, нечитаемо, и вы создадите беспорядок.
Так что загрузите Notepad ++ с http://notepad-plus-plus.org/
Это просто в использовании и намного лучше!
Добавление файла функций в вашу дочернюю тему
Если у вас уже есть дочерняя тема, то, скорее всего, у вас уже есть файл функций, просто найдите файл с именем functions.php в папке вашей темы.
Если нет, вам нужно создать файл функций.
Просто откройте блокнот ++, создайте новый файл и поместите
Php
на старте. Теперь сохраните его как functions.php и загрузите в свою тему. Вот и все. Теперь у вас есть файл функций!
Добавление кода в файл функций
Хорошо, теперь, когда вы видите «добавить это в свой файл функций», вы будете знать, что вам нужно загрузить текущий файл функций на свой компьютер с помощью FTP. Затем с помощью notepad ++ скопируйте код в конец файла функций.Затем загрузите измененный файл обратно на свой сайт, используя FTP, чтобы перезаписать старый файл.
Добавление стиля в style.css
Поскольку теперь у вас есть style.css как неотъемлемая часть вашей дочерней темы, вы можете вносить любые изменения в этот файл.
И все… !!
Как включить файл PHP в WordPress
Это небольшое руководство по включению PHP покажет вам, как включить PHP-файл в вашу тему WordPress (используя относительный путь).Этот фрагмент не столько «сниппет WordPress», сколько на самом деле просто функция PHP include, использующая WordPress get_template_directory для получения относительного пути к файлу. Почему вам следует ...
Это небольшое руководство «PHP include» покажет вам, как включить PHP-файл в вашу тему WordPress (используя относительный путь). Этот фрагмент не столько «фрагмент WordPress», сколько просто функция включения PHP, использующая WordPress get_template_directory
для получения относительного пути к файлу.
Почему следует выбирать относительный путь, а не абсолютный / статический путь
Если вы хотите включить файл PHP (или файл изображения, файл HTML и т. Д.), Необходимо указать конкретный путь, который указывает веб-серверу, где веб-сервер должен найти конкретный файл. Есть несколько способов сделать это, например:
- Использование абсолютного / статического пути (не рекомендуется) - указание местоположения файла или каталога из корневого каталога (/).
- Использование относительного пути (лучшая практика) - путь, связанный с текущей работой напрямую (pwd), начиная с вашего текущего каталога и никогда не начинается с символа «/».
Функция WordPress get_template_directory ()
Встроенная функция WordPress get_template_directory
, извлекает текущий каталог темы, возвращая абсолютный путь к серверу (например: / home / user / public_html / wp-content / themes / my_theme), а не URI.
Если вы используете дочернюю тему WordPress
Если вы используете дочернюю тему, будет возвращен абсолютный путь к каталогу родительской темы - и это не сработает.Если вы используете дочернюю тему, вам придется вместо этого использовать функцию WordPress: get_stylesheet_directory ()
, чтобы получить абсолютный путь к каталогу дочерней темы.
Как включить файл PHP в тему WordPress
В этом примере PHP include мы собираемся использовать относительный путь, используя встроенную функцию WordPress: get_template_directory
.
Php include get_template_directory (). '/inc/yourfile.php'; ?>
Как включить файл PHP в дочернюю тему WordPress
В этом примере PHP include мы собираемся использовать относительный путь, используя встроенную функцию WordPress: get_stylesheet_directory ()
.
Php включить get_stylesheet_directory (). '/inc/yourfile.php'; ?>
.