functions.php — используем правильно | WPNICE
Привет. Предлагаю всем читателям сегодня еще раз вернуться к теме о внесении изменений в файл functions.php, а вернее, поговорить о том, как это следует делать правильно.
Многие пользователи добавляют сниппеты кода прямо в файл темы functions.php file, но это мягко говоря, не самая хорошая идея. Создание кастомного WordPress плагина – это часто лучшее решение проблем, связанных с добавлением кода. И это совсем не сложно.
Что такое functions.php?
Если вы когда-нибудь просматривали папки вашей инсталляции WordPress, то могли заметить, что WordPress-сайт содержит множество файлов functions.php. Functions.php, о котором я говорю сейчас, это тот, который лежит в папке с вашей темой. Этот файл содержит все функции, специфичные для вашей темы.
Почему это плохая идея — всегда использовать functions.php
Начнем с того, что скажем, что использовать файл functions.php вашей темы для добавления сниппетов кода – это не всегда плохо. Но это панацея, и вы не должны использовать этот способ везде и всегда.
Давайте начнем с причины #1:
Если вы обновите свою активную тему, то все добавленные ранее функции могут пропасть. И я уже могу предвидеть вопль в комментариях “ так для этого и есть дочерние темы”. И вы правы: дочерние темы решают эту проблему. Но далеко не все люди умеют работать с дочерними темами, зато умеют использовать для тех же целей functions.php.
Причина #2 – даже если вы правильно используете дочернюю тему для functions.php, что случится, если вам захочется сменить активную тему? Я надеюсь, вы задокументировали все, что когда-либо добавляли в ваш файл functions.php, потому что без этого, смена темы может стать большой головной болью.
Причина #3 – если вы когда-либо добавляли в ваш functions.php такой код, который приводил к полному падению инсталляции WordPress, вы знаете, что надо получить доступ к сайту по FTP, скачать ваш functions. php, удалить злосчастный код и загрузить его обратно. Это раздражает, когда есть более просто способ решить подобную проблему.
Так, когда же вы должны использовать functions.php?
Даже правильное использование functions.php в вашей дочерней теме не всегда удачная идея.
Если вы добавляете твики, которые на 100% специфичны для вашей темы, то смело добавляйте их в functions.php (в дочерней теме!!). Вот несколько примеров, когда этот способ прокатит:
- Добавление второй страницы стилей для вашей темы
- Изменение длины цитат для лучшего соответствия вашей специфичной теме
- Добавление шрифтов, которые специфичны для данной темы
- Добавление файла перевода
Базово, каждый раз, когда вы добавляете, удаляете или модифицируете что-то 100% специфичное вашей теме, то можно сосредоточиться на functions.php вашей дочерней темы.
…и когда использование functions.php – это плохая идея?
Не стоит использовать functions.php, когда вы хотите перенести любые изменения из одной темы в другую. Вот вам примеры, когда не нужно использовать functions.php:
- Создание кастомного виджета, который вы будете использовать снова и снова
- Добавление чего-то независимого от темы, типа кода Google Analytics
- Создание кастомного шорткода
В этих случаях лучше создать кастомный плагин, и поверьте мне, это не так сложно, как кажется.
Как использовать кастомный плагин вместо functions.php
Чтоб создать плагин, куда можно помещать сниппеты кода, все, что вам нужно, это сделать это:
- Создайте.php-файл с небольшим количеством предложенного мной кода
- Создайте .zip-файл, содержащий .php-файл
- Установите и активируйте плагин, как и любой другой
Да, это реально просто. Давайте начинать.
Шаг 1: создайте PHP-файл и добавьте код
Чтоб начать, откройте редактор текста, типа Блокнота. Затем добавьте этот код в чистый документ:
<?php /* Plugin Name: Colin Custom Functions */ /* Add Your Code Snippets Below This Line. Make Sure to Document What they Do With Comments Like This */ ?>
Конечно, вы можете назвать файл, как хотите. В конце концов, результат должен выглядеть вот так:
Затем, сохраните файл, как-то так: colin-custom-functions.php. Называйте, как хотите, лишь бы имя было уникальным, чтоб WordPress не перепутал его с уже установленным ранее одноименным плагином.
Если вы используете Блокнот, то при сохранении файла вам нужно выбрать Все файлы из выпадающего меню, чтоб вы могли сохранить его как файл .php:
Шаг 2: Создайте .zip файл
Теперь вам нужно создать .zip-файл, содержащий файл, который вы только что создали. Если вы используете Windows, вот как вы можете это сделать:
Шаг 3: Устанавливаем наш плагин, как любой другой
Теперь просто загрузите ваш .zip-файл, проделав путь Плагины → Добавить новый → Загрузить плагин:
После активации, вы должны увидеть его в списке ваших плагинов:
Добавление ваших сниппетов кода
Чтоб добавить сниппет кода просто прицепите их к. php файлу, который вы создали. Или вы всегда можете создать новый плагин для разделения разных категорий сниппетов.
К примеру, вот как будет выглядеть шорткод “Hello World!”:
Я также рекомендую создавать комментарии перед каждым сниппетом. Комментарии не затронут ваш код, но не дадут вам забыть, зачем нужен каждый сниппет, если вам вдруг понадобится его отредактировать.
Чтоб создать комментарий, используйте следующий синтаксис: /* ВАШ КОММЕНТАРИЙ */.
Затем вы можете загрузить файл по FTP, переписав существующий файл. Или вы можете удалить существующий плагин и установить на его место новую версию.
Как еще можно избежать использования functions.php
Если вы все же не решились еще на создание собственного плагина, то можете просто использовать плагин, который называется Code Snippets
Он позволяет добавить множество сниппетов кода, присвоить им названия и описания, а затем активировать /деактивировать каждый сниппет отдельно от других.
Также он позволяет вам импортировать/экспортировать сниппеты кода на другие сайты для копирования необходимых функций.
Источник
По теме:
Как создать плагин WordPress
Как лучше всего добавить свой код в WordPress
Плагин WordPress и Functions.php. Что лучше?
2 095
Как лучше прикрутить новую функцию: установить плагин WordPress или добавить код в файл functions.php? Некоторые пользователи считают, чтобы сохранить производительность сайта, лучше добавлять код. Но это не так. В этой статье я расскажу о плюсах и минусах и объясню, какой метод лучше: плагин WordPress и functions.php.
Установка плагина WordPress и кода в functions.php
Добавить новый функционал на сайт возможно двумя способами:
- установить плагин WordPress.
- добавить кастомный код в файл functions.php вашей темы.
А какой способ лучше влияет на производительность и скорость?
Некоторые пользователи беспокоятся, что из-за большого количества установленных плагинов снижается скорость и безопасность сайта.
Другие — что добавление кода вообще сломает сайт, а исправить это будет нелегко.
Давайте сравнивать.
Плюсы и минусы файла functions.php
Файл functions.php — это как большой плагин WordPress, который используется для размещения кода и увеличения функционала.
Плюсы
- Легко добавлять через встроенный редактор в админке сайта.
- Можно копировать и вставлять все фрагменты кода в один файл.
- У вас есть уникальный шанс изучить код и узнать, как он работает.
Минусы
- Кастомный код не будет работать, когда вы переключите тему сайта.
- Можно и нужно использовать дочернюю тему, иначе обновление вашей темы перезапишет файл functions.php.
- Иногда трудно понять, где заканчивается код темы и начинается ваш.
- Некоторые фрагменты кода могут быть слишком большими. Тогда нужно использовать дополнительные скрипты и стили.
С помощью кода вы можете добавлять новое навигационное меню темы, новые поля в профиле автора, скрывать вывод ошибок при попытке входа в админку (полезно для защиты от хакеров), отключать поиск по сайту и много чего еще.
Но!
Код не заменяет плагин.
Добавление фрагмента кода в ваш файл functions.php влияет на производительность так же, как установка плагина. Если код такой же.
Не все функции можно добавить через файл functions.php. Например, для пользовательского кода могут потребоваться доп скрипты и таблицы стилей.
Теперь перейдем к плагинам.
Плюсы и минусы установки плагинов WordPress
Плагины похожи на приложения. Они содержат код для добавления новых функций на ваш сайт.
Смотрите нашу статью о том, что такое плагины WordPress и как они работают.
Плюсы
- Плагин не зависит от вашей темы.
- Если это тот же код, то он будет влиять на производительность так же, как и код в файле functions.php.
- Легче управлять, отключать, обновлять или переустанавливать.
Минусы
- Автор плагина может отказать в техподдержке в будущем, особенно когда плагин бесплатный.
- Вы не сможете изучить код.
Плагин WordPress и functions.php. Что лучше?
Если есть плагин WordPress с тем же кодом, то лучше использовать плагин.
Что касается производительности. И код плагина, и кастомный код влияют на производительность сайта одинаково. Не забываем условие: код одинаковый.
Управлять отдельными плагинами намного проще, чем редактировать один большой файл.
Если вы выберете плагин, то сможете воспользоваться будущими обновлениями: повышение производительности и безопасности, устранение возможных ошибок.
Когда нужно добавлять код в файл functions.php?
Если вы не нашли нужный плагин. Да, тогда можно использовать код.
Если вы часто используете код, тогда вам будет полезен плагин Code Snippets. С ним не нужно каждый раз вносить новый фрагмент в файл functions.php. Плагин хранит все фрагменты кода в одном месте.
Надеюсь, вам понравилась статья.
Посмотрите нашу подборку обязательных плагинов для сайта WordPress.
Вам также может понравиться наше руководство по выбору тему WordPress.
Если вы никогда раньше не устанавливали премиум тему, посмотрите видео «Как установить тему WordPress».
Не хотите использовать премиум тему? Читайте нашу статью «18 лучших бесплатных тем WordPress».
Если у вас есть вопросы, пишите в комментариях.
И подписывайтесь на нас в Facebook, Instagram и Twitter.
Как использовать тему functions.php
- Документация /
- Как использовать тему functions.php
Одним из способов внесения изменений в ваш сайт с помощью фрагментов кода является использование файла functions.php темы . Из Кодекса WordPress:
Файл функций ведет себя как плагин WordPress, добавляя функции и возможности на сайт WordPress. Вы можете использовать его для вызова функций, как PHP, так и встроенных в WordPress, а также для определения собственных функций.
Примечание: Мы не можем предоставить поддержку для настройки в соответствии с нашей Политикой поддержки.
Редактирование functions.php
Большинство тем содержат файл functions.php в главном каталоге, например, тема Twenty-Twelve имеет файл под wp-content/themes/twentytwelve/functions.php
.
Поскольку этот файл должен содержать код PHP, он должен начинаться с открывающего тега PHP:
Любые пользовательские функции могут быть размещены ниже этого, но убедитесь, что нет лишних тегов , когда вы вставляете свой фрагмент!
Мы рекомендуем никогда не использовать редактор в WP Admin для редактирования functions.php.
- Скачать тему functions. php на свой компьютер из каталога темы с помощью FTP-клиента.
- Внесите изменения с помощью простого текстового редактора, например Блокнота или редактора кода.
- Загрузите измененный файл обратно в каталог темы с помощью FTP-клиента.
Чтобы устранить любые ошибки после добавления кода, вы можете временно включить режим WP_DEBUG, чтобы увидеть, что пошло не так, и исправить ошибки.
Чтобы защитить изменения от обновлений темы, рекомендуется создать дочернюю тему со своим собственным functions.php вместо редактирования родительской темы. Поставщик темы может иметь дополнительные инструкции о том, как это сделать в своей документации.
- Справочник разработчика содержит дополнительную информацию о файлах functions.php темы, если это интересно.
- Почему не следует использовать файл functions.php: в качестве альтернативы файлам функций, например, для создания собственного подключаемого модуля.
WooCommerce
Самая настраиваемая платформа электронной коммерции для построения вашего онлайн-бизнеса.
- 30-дневная гарантия возврата денег
- Поддержка команд по всему миру
- Безопасность и надежность онлайн-платежи
- Поддержка команд по всему миру
- Безопасность и надежность онлайн-платежи
100 лучших функций PHP – Exakat
100 лучших функций PHPВот 100 лучших функций PHP: это список наиболее часто используемых встроенных функций PHP.
Функции названы и ранжированы от 1 до 100. Остальные 4500 функций сейчас не ранжированы. Столбец частоты показывает, как часто эта функция используется в коде PHP: эталонный корпус представляет собой список из 1900 проектов PHP с открытым исходным кодом. Они были проверены с помощью механизма статического анализа Exakat версии 1. 2.5. Среднее значение — это количество раз, когда функция вызывается в рамках одного проекта. Некоторые функции используются изолированно, а другие являются основными.
Например, 4 проекта из 5 используют функцию подсчета, и при использовании функция вызывается около 150 раз. Это популярная и часто используемая функция.
Нажмите на ссылку, чтобы перейти к документации. Некоторое понимание нижней части топ-100.
Ранг | Функция | Частота | Средний |
1 | количество | 81,41 % | 147,67 |
2 | is_array | 77,32 % | 117,86 |
3 | субстр | 74,62 % | 142,92 |
4 | in_array | 74,16 % | 79,55 |
5 | взорвать | 73,19 % | 71,51 |
6 | ул_заменить | 72,32 % | 101. 05 |
7 | взрывается | 72,27 % | 66,59 |
8 | стрлен | 70,07 % | 98,32 |
9 | array_merge | 69,46 % | 64.01 |
10 | стрпос | 67,98 % | 78,18 |
11 | прег_матч | 67,31 % | 76,60 |
12 | спринтф | 67,16 % | 119,46 |
13 | отделка | 66,75 % | 81,28 |
14 | стртонижний | 65,99 % | 59,62 |
15 | файл_существует | 65,12 % | 45.13 |
16 | is_string | 61,39 % | 45.10 |
17 | preg_replace | 60,27 % | 54,28 |
18 | file_get_contents | 59,96 % | 20,71 |
19 | массив_ключ_существует | 59,70 % | 57,50 |
20 | массив_ключей | 59,35 % | 39,59 |
21 | имя_директории | 56,44 % | 54,84 |
22 | функция_существует | 53,58 % | 42,62 |
23 | карта_массива | 53,22 % | 19,45 |
24 | получить_класс | 53,12 % | 33. 07 |
25 | class_exists | 52,50 % | 23.13 |
26 | is_object | 51,94 % | 35,35 |
27 | время | 51,79 % | 41,42 |
28 | json_encode | 51,48 % | 24,81 |
29 | дата | 50,72 % | 52,18 |
30 | is_null | 49,69 % | 60.52 |
31 | is_numeric | 49,49 % | 40,69 |
32 | массив_сдвиг | 49,49 % | 23,28 |
33 | определено | 48,72 % | 86,82 |
34 | is_dir | 48,57 % | 22,86 |
35 | json_decode | 48,42 % | 17,39 |
36 | заголовок | 48,16 % | 59,71 |
37 | верхняя часть | 47,80 % | 30,95 |
38 | массив_значений | 47,24 % | 17,27 |
39 | мд5 | 46,88 % | 23,74 |
40 | метод_существует | 46,73 % | 19. 05 |
41 | file_put_contents | 46,68 % | 12,49 |
42 | rtrim | 45,91 % | 18.08 |
43 | массив_поп | 45,51 % | 20,60 |
44 | отключить | 44,59 % | 23,55 |
45 | базовое имя | 44,59 % | 27,23 |
46 | реальный путь | 44,08 % | 15,90 |
47 | call_user_func | 43,97 % | 16.41 |
48 | call_user_func_array | 43,92 % | 18.40 |
49 | фопен | 43,77 % | 25,61 |
50 | микротайм | 43,46 % | 14.41 |
51 | закрыть | 42,85 % | 28,36 |
52 | is_int | 42,75 % | 15,78 |
53 | is_file | 42,08 % | 20,52 |
54 | массив_срез | 41,83 % | 13. 20 |
55 | preg_match_all | 40,55 % | 14,66 |
56 | ucfirst | 40,25 % | 17.02 |
57 | интервал | 40,19 % | 88.13 |
58 | str_repeat | 40,14 % | 19,51 |
59 | сериализовать | 40,14 % | 22.05 |
60 | массив_фильтр | 39,99 % | 13,87 |
61 | мкдир | 39,79 % | 11.17 |
62 | is_callable | 39,43 % | 11,94 |
63 | лтрим | 39,17 % | 10,90 |
64 | об_старт | 39,12 % | 13,26 |
65 | круглый | 39,07 % | 28,56 |
66 | fнаписать | 38,97 % | 23,39 |
67 | массив_уникальный | 38,87 % | 15,96 |
68 | массив_поиск | 38,82 % | 14. 19 |
69 | сброс | 38,71 % | 20,79 |
70 | array_unshift | 38,10 % | 10,32 |
71 | parse_url | 37,90 % | 9,61 |
72 | func_get_args | 37,79 % | 28,33 |
73 | конец | 37,49 % | 12,70 |
74 | base64_encode | 37,39 % | 14,15 |
75 | десериализовать | 37,18 % | 18,35 |
76 | макс. | 36,98 % | 22,88 |
77 | preg_split | 36,98 % | 13,27 |
78 | получить тип | 36,93 % | 16.16 |
79 | стрпос | 36,67 % | 11,95 |
80 | версия_сравнить | 36,67 % | 14,87 |
81 | массив_толчок | 36,67 % | 26. 18 |
82 | этаж | 36,11 % | 18,78 |
83 | стртотайм | 36,01 % | 27,94 |
84 | htmlспециальные символы | 35,96 % | 51.08 |
85 | ini_get | 35,85 % | 19,25 |
86 | ini_set | 35,60 % | 14,49 |
87 | чр | 35,34 % | 186,97 |
88 | extension_loaded | 35,29 % | 14.17 |
89 | is_bool | 35,24 % | 11,44 |
90 | ксорт | 34,98 % | 10,82 |
91 | массив_реверс | 34,93 % | 8,27 |
92 | или | 34,73 % | 53,17 |
93 | уникальный | 34,68 % | 9,83 |
94 | стр. | 34,47 % | 12,90 |
95 | массив_diff | 34,32 % | 11.13 |
96 | сообщение об ошибке | 34,17 % | 8,99 |
97 | потолок | 33,35 % | 11,99 |
98 | URL-адрес | 33,30 % | 29,63 |
99 | мин | 32,69 % | 18.31 |
100 | print_r | 32,64 % | 14.12 |
100 лучших идей
- Наиболее часто используемыми функциями PHP являются строковые функции, а затем массивы и файлы. (Математика, вероятно, выходит за рамки, так как она в основном основана на операторах)
- Ссылки ведут на документацию: многие из этих функций действительно развились и приобрели новые возможности: например,
count()
второй аргумент,dirname()
второй аргумент,preg_match()
иstr_replace()
прием массивов в качестве аргумента… Есть много пасхальных яиц. - В первой сотне нет недавно устаревших функций.
- ext/mbstring — первое появившееся неосновное расширение; ext/curl — второй; затем Б-г, фильтр и iconv.
-
md5
— единственная широко используемая криптографическая функция.Sha1
— второй (#147). -
print_r
используется где-то в коде 1 проекта из 3-х. Где-то… -
имя_каталога
имеет высокий уровень использования из-заимя_каталога(имя_каталога(имя_каталога()))
вызовов -
array
,echo
,print
,empty
,isset
и другие языковые конструкции не учитывались как функции в этом рейтинге. Вероятно, они все равно доверяют первым рядам. - Некоторые функции должны быть заменены операторами:
array_push
,is_object
,func_get_arg
,chr
,call_user_func
. - Достаточно много вызовов посвящено знанию типа значения
- Базы данных здесь не ранжируются: они часто используют классы, хотя функции по-прежнему часто встречаются.