Functions.php – файл функций темы (шаблона)
Про файл функций темы functions.php я уже неоднократно упоминал в этом блоге. Но при говорили о нем вскользь, подробно не останавливался на том зачем он нужен, что из себя представляет и т.п. Сегодня пришлось немного разбираться с настройками админки wordpress и опять оказалось, что без файла functions.php никуда. Собственно, вдохновившись таким поворотом событий даже решил изменить тему сегодняшней публикации и заострить внимание на файле функций. В принципе, информация немного даже теоретическая, но, думаю, может пригодится в будущем.
Итак, wordpress при обработке шаблона может обрабатывать специальный файл с названием functions.php, который находится в одной директории с темой. Причем данный файл работает как плагин. Таким образом, если в используемой теме есть файл functions.php, то он автоматически загружается при инициализации системы wordpress – как страниц блога, так и страниц админки. Представляете, какой потенциал у этого файла?
На официальном сайте системы есть 2 направления использования для functions.php:
- Можно определять функции, которые будут вызываться в некоторых файлах шаблонов темы, что экономит время на внедрение изменений в дальнейшем, да и вообще является нормальным принципом в программировании.
- Настройка экрана администратора, представление пользователям возможности выбора цветов, стилей вашей темы.
По второму пункту, как я понимаю, речь идет о различных опциях шаблонов, которые часто есть премиум темах – когда пользователь может выбирать и настраивать дизайн блога без особых знаний html, php или css. Про админку, кстати, тоже было сказано не зря – сегодня искал варианты как можно изменить ее внешний вид, и оказалось, что файл functions.php при этом весьма полезен.
Собственно, об этом можно будет почитать в следующих статьях, а пока приведу примеры первого варианта использования. Это, например, создание функции для получение и отображение первой картинки поста, которую дальше можно вызывать в любых файлах шаблона – для категорий, тегов, архивов. С помощью файла functions.php можно переопределить стандартную функцию отображения комментариев wp_list_comments.
Через файл применяются множество wordpress хаков, поскольку он обрабатывается при инициализации системы и есть возможность внести изменения на самом первоначальном этапе. Так, совсем недавно публиковал статью про вывод текста после статьи. Еще есть достаточно показательный пример – через functions.php можно убрать вывод строки шаблона с текущей версией wordpress. Это, кстати, не всегда получается простым удалением соответствующей строчки html в файле шапки блога header.php, а вот через функции работает. Для этого добавляем в functions.php строку
<?php remove_action('wp_head', 'wp_generator'); ?>
Учитывая возможности и принцип работы файла functions.php у него есть одно особенно значимое преимущество. Вы можете один раз создать подобный файл с нужными вам настройками, после чего использовать его для разных шаблонов, просто скопировав файл в корень директории темы. Короче говоря, файл функций добавляет гибкости и скорости в настройке шаблона. К недостаткам (минусам) можно отнести необходимость наличия определенного опыта работы с wordpress и соответствующих знаний – то есть, это явно возможности не для начинающих. Вторым негативным моментом является зависимость файла от функций wordpress, то есть от версий системы – если, например, в wordpress 3.0 какая-то стандартная функция перестанет использоваться, то вам придется изменять код в functions.php.
Хотя, конечно, эти «минусы» являются вполне логичными и естественными для любой системы, поэтому можно сильно не грузиться по данному поводу. Просто нужно быть аккуратным в работе с файлом функций, а также ориентироваться в новых изменениях wordpress. В любом случае использование functions.php – очень интересный момент и особенность движка.
P.S. Постовой. Продвижение и оптимизация сайта – важные знания для вебмастеров.
А вы знаете самые популярные сайты? – ТОП10 сайтов в мире (по посещаемости).
В нашем блоге вы можете узнать все про блоггинг и почитать полезные публикации об этом интересном деле.
Комментариев - 25 к статье “Functions.php – файл функций темы (шаблона)”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Плагин Lightbox Plus – улучшенный эффект для изображений
- Скрываем custom fields для не админов, функция remove_meta_box()
- Видеокурс WordPress Security по защите блога на WordPress
- Плагины смайликов в wordpress блоге
- Обновление WordPress подробно для начинающих
- Лишние ссылки с WordPress прочь
- Вставка PHP кода в WordPress через виджеты
- Безопасность (3)
- Видео (5)
- Возможности (53)
- Начинающим (16)
- Новости (19)
- Оптимизация (12)
- Плагины (61)
- Сервисы (10)
- Хаки и секреты (39)
- Шаблоны (13)
- Записи и посты wordpress, оформление записи






(6,15 из 7, голосов - 20) - 17 полезных приемов и хаков для WordPress






(5,44 из 7, голосов - 9) - Что нового в WordPress 3.1






(5,38 из 7, голосов - 8) - Как добавить дополнительные кнопки в редактор WordPress






(5,25 из 7, голосов - 8) - Ссылка читать далее в wordpress – тег more






(5,00 из 7, голосов - 8) - Интернет магазин на wordpress – плагин UWCart






(4,63 из 7, голосов - 8) - Вывод категорий для поста через функцию get_the_category






(4,50 из 7, голосов - 8)
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Более шестидесяти новых приложений для Timeline в Facebook
- Пользователям ICQ: в любимой программе теперь есть радио!
- Новостной украинский агрегатор Like.ua – что это?
- Foursquare представил миру возможность персонализированного поиска
- Google выставлено публичное обвинение в пиратстве
- Для Windows Phone 7 выпущен новый WebMoney Keeper Mobile
- Ноутбуки с 3D-чипами станут более производительными

Оцените статью:
Категории:
Теги:
Да да… это самое классное что я нашёл в WP. Да и про изменение функций в новых версиях WP как то не особо важно, мы ведь в функциях прописываем доп. параметры либо создаём свою функцию и вызываем так что в большинстве своём, короче изучайте php xD
Крайне полезный файл, на своем блоге, добрая половина всех фич, прописана именно там. :) Например, убрать назойливые лапки в ковычках по умолчанию, можно именно с его помощью.
Одна из самых полезных фич WordPress – но при если не знать о ней, иногда запутывающая :) Буквально пару дней назад разбирался – почему не выводится строка «Ваш комментарий ожидает модерации». Причем, файл перевода есть, функция в ядре WordPress есть – а не выводится.
В итоге выяснилось, что функция была переопределена в functions.php.
Интересно, спасибо за статью надо будет попробовать поколупать сей файлик )))
Я использую на своем сайте дополнительные поля в записях. В них выводятся внешние ссылки. Как сделать эти ссылки внутренними? Пробовал плагин wp_noexternalinks но в дополнительных полях он не заменяет. Как быть? Может быть через файлик function.php это можно сделать. Подскажите пожалуйста.
danila, точного метода я не знаю, теоретически посмотреть как делаются ссылки внутренними и «провернуть» этот механизм для ссылок в дополнительных полях. Тут нужно разбираться с вопросом более детально, изучать, не уверен, что есть готовый плагин.
danila, WP-NoExternalLinks формирует ссылки по принципу _http://[доменн]/goto/[URL направления].
Соответственно, в выводе дополнительных полей, нужно прописать <a href="http://доменн/goto/ID, «link», $single = true); ?>»>[anchor]
Для примера, нам нужно сослаться на _http://wordpressinside.ru. В дополнительном поле link вставляем _http://wordpressinside.ru, а для вывода пишем:
<a href="http://www.poofsite.com.ua/goto/ID, «link», true); ?>»>ссылка
Люблю ковырять в этом файле настройки админки.
Так может к старости рнр и выучу :)
Над у себя заюзать =)
>>если, например, в wordpress 3.0 какая-то стандартная функция перестанет использоваться, то >>вам придется изменять код в functions.php
Думаю неверная фраза. Стандартная функция на то и стандартная, чтобы поддерживаться в следующих версиях. Что собственно принято у разработчиков. Речь можно вести о нестандартных функциях
Alex, к сожалению верная, местами в cms старые функции удаляют и заменяют новыми. Это, конечно, не частое явление, но бывает.
Я вот в своем блоге прописал код, который показывает нагрузку и количество запросов в самом низу страницы. Полезно иногда.
Я вставила код в этот файл, блок заблокировался. Я смогла его разблокировать, но запись Читать далее стала отображаться вопросительными знаками. Как мне ее восстановить?
function art_get_post_content() {
global $post;
ob_start();
if(is_single() || is_page()) {
echo art_get_the_content(__(‘Читать далее »’, THEME_NS));
wp_link_pages(array(‘before’ => ‘Pages: ‘, ‘after’ => », ‘next_or_number’ => ‘number’));
} else {
echo art_get_the_excerpt(__(‘Читать далее »’, THEME_NS),
get_permalink($post->ID),
art_option(‘metadata.excerpt_words’),
art_option(‘metadata.excerpt_use_tag_filter’) ? explode(‘,’,art_option(‘metadata.excerpt_allowed_tags’)) : null,
art_option(‘metadata.excerpt_min_remainder’),
art_option(‘metadata.excerpt_auto’));
}
return ob_get_clean();
Наталья, не совсем понятно, что значит «блок заблокировался». Иногда дизайнеры шифруют тему, когда при малейших изменениях в блоге отображается пустая страница – в этом случае нужно детально разбирать код. Что касается знаков вопроса, то, вероятно, при правке возникли проблемы с кодировкой (для редактирования кода лучше использовать Notepad++)
Tod, мне посоветовали запись Read more, код принял эту запись.
в wp 2 файла wp-includes\functions.php. первый в папке с темой. второй здесь wp-includes\functions.php.
насколько я понял все основные(стандартные ) функции в wp-includes\functions.php. пользователь если хочет создать свою, пишет ее в фаил, которые в папке с темой.
если происходит конфликт имён, то движок использует написанную пользователем функцию, то есть ту, которая в папке с темой. так ли это?
при обновлении движка функции в wp-includes\functions.php могут измениться. а в фаиле , которые в папке с темой – не могут измениться. так ли это?
cyklop, я как-то не думал, что может быть несколько файлов, но вообще речь в статье шла о functions.php, который идет с шаблоном. Функции в основном добавляются туда, поэтому при обновлении самой системы он останется таким, как был. Другое дело, что нужно быть внимательным при обновлении шаблона, т.к. он может перезаписать вашу functions.php.
Подскажите пожалуйста что сделать: при вставке любого кода в functions на сайте появляется только текст кода.
Изучай PHP – а где его взять для изучения и именно для вордпресс.. весь интернет перелопатил не найти, неужели умелые веб мастера не могут написать пару постов на эту тему
Дмитрий, похоже на то, что код находится где-то за пределами < ?php ,,, ?> и просто выводится вместо интерпретации, можно попробовать скачать базовый работающий файл functions (для шаблонов они как правило все правильно функционируют) и постепенно туда добавить нужный код, проверяя все ли отображается нормально.
mr_exclusive, слабо вы «лопатили» интернет, да и можно запросто парировать мол «неужели так сложно взять и заняться изучением того, что вам так нужно», вместо поиска уже готовых решений, точнее даже искать сейчас мало кто хочет, все и сразу бывает очень редко, надо и самому проявить хоть чуть-чуть смекалки.
Tod, может у меня просто такой файл в теме. Хотел добавить соц. кнопки, по методу одного блоггера мне выдает текст на странице вместо кода, а у другого блогера нашел работающий вариант. Он хотя бы работает.
mr_exclusive, сам уже проверил на своем малом опыте, что в нете есть ВСЕ. В крайнем случае можешь ознакомиться с дисками Попова, у него есть отдельный диск по этой теме. А на сайте он выкладывает новые уроки, в принципе, он сильно разжевывает материал, что иногда даже перематываю.
Во время активации любого плагина выдается такое сообщение. помогите пожалуйста кто знает что это такое
Notice: register_sidebar_widget is deprecated since version 2.8! Use wp_register_sidebar_widget() instead. in /var/www/administ/data/www/votkak.co.cc/wp-includes/functions.php on line 3303
Notice: load_plugin_textdomain вызвал аргумент, который не поддерживается с версии 2.7 и не имеет доступных вариантов. in /var/www/administ/data/www/votkak.co.cc/wp-includes/functions.php on line 3389
Hovo, как по мне, похоже на то, что шаблон блог очень старый и вызывает функции, которые старше версии 2.8 уже не работают. Как исправить? – либо установить шаблон поновее либо найти где в шаблоне используется register_sidebar_widget и убрать, скорее всего в Functions.php и найдете эти функции.
Эх, у меня не выходит редактировать этот файл. Я даже если что-то, что в нем есть уберу и поставлю вновь – приходится делать откат. Не понимаю, все делаю как пишут, очень точно – не хочет он меняться, слетает и все тут.
Oksana, если файл слетает, то есть 2 возможных причины – в шаблоне в этом файле есть некая «защита» для темы блога дабы не удалять ссылки в футере и т.п. Вторая более частая проблема – лишние символы в файле – лучше всего использовать бесплатный Notepad++ для редактирования файла и сохранить в utf-8 без BOM его, плюс удалить лишние пробелы в начале файла в конце.