Тестовый форум PhpBB
Яндекс.Деньги
Ad blocker detected: Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by disabling your ad blocker on our website.
Где находится файл functions.php WordPress
1 сообщение • Страница 1 из 1
southklad_3.2 Администратор Сообщения: 20 Зарегистрирован: 19 мар 2017, 19:48
Где находится файл functions.php WordPress
- 0 0 0 41 //—>
- Цитата
Сообщение southklad_3.2 » 21 июл 2022, 17:31
Файл функций расположен в корневой директории темы (вместе с index.php, single.php и другими). То есть вы заходите в папку wp-content/themes/название_темы/, и он будет там. Это не то же самое что одноименный файл ядра, который находится в системной директории /wp-includes/, нужный нам объект — в папке шаблона.
Файл functions.php – зачем он нужен, как его редактировать в WordPress
В 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 данного блока нет. В этом случае вписываете желаемый код сразу после . На изображении ниже наглядно это продемонстрировано. 
- Второй вариант, позволяющий редактировать файлы в WordPress, это использование FTP клиента для доступа к файлам на хостинге\ сервере и популярного бесплатного текстового редактора под названием Notepad++ для непосредственного редактирования файла. Этот способ весьма удобен и предпочтителен, ведь если внести какую-либо некорректную запись в файл functions.php, то сайт может перестать функционировать, включая админ-панель WordPress. Но это никак не повлияет на работоспособность FTP. Вы всегда сможете моментально отменить все внесённые в файл изменения. И так, используя FTP клиент (их существует множество, как платных, так и полностью бесплатных), настройте в нём доступ к файлам своего сайта (инструкцию по настройке можно получить у провайдера хостинга). Открыв в нём список вашего сайта, перейдите в папку wp-content/themes// и далее откройте на редактирование файл.
Впишите или отредактируйте необходимое и сохраните результат. Если что-то пойдёт не так, то вы сможете моментально отменить все внесённые изменения, для этого в верхнем меню имеется пункт Правка ->Отмена или стрелочки на панели инструментов. 
Вот мы и рассмотрели детально, что за файл, который весьма часто упоминается в статьях и материалах, где приводятся различные твики и функциональные решения для сайта, работающего на движке WordPress.
Гайд для новичков — как добавить сторонний код в WordPress

Добавление стороннего кода в файл functions.php WordPress темы — достаточно распространённое явление. В то время как этот процесс является достаточно простым для тех, кто знает как функционирует PHP, для новых пользователей он является немного трудоёмким. Очень часто новички хотят достигнуть финального результата урока, но у них не хватает знаний в области PHP, чтобы понять как правильно вставить код, не сломав при этом весь сайт. В этом нет ничего плохого, и если вы читаете эту статью из-за того, что сломали свой сайт, то мы хотим вас заверить, что вы такие не одни. Все мы с этого начинали и все мы делали эту ошибку. В этой статье мы расскажем вам как избежать самые распространённые ошибки при вставке PHP-кода из уроков в файл functions.php вашей WordPress темы.
Обратите внимание: Файл functions.php находится в папке /wp-content/themes/yourthemename/. Это НЕ тот же самый файл ядра functions.php, который находится в папке /wp-includes/.
Чтобы понимать как правильно вставлять код, вам необходимо понимать базовую семантику PHP.
//Это открывающий тэг PHP кода
//Это закрывающий тэг PHP кода
Причина, по которой вам нужно разобраться с этим, заключается в том, что больше 95% проблем, возникающих у пользователей, связаны с неправильной вставкой кода. Так что знание семантики PHP может пригодиться. Ниже описаны некоторые самые часто встречающиеся ошибки.
Первая самая распространённая ошибка
Пользователь находит код на вебсайте, который обёрнут в PHP, как показано ниже, и они вставляют его не туда, куда надо.
add_filter ( ‘login_headerurl’ , ‘custom_loginlogo_url’ ) ;
function custom_loginlogo_url ( $url ) <
return 'http://www.wpbeginner.com' ;
Пример кода из файла темы functions.php (обратите внимание, что обычно файл functions.php содержат гораздо больше кода, но суть примерно такая же):
//Тонны всякого разного PHP кода, который уже есть в вашем PHP файле
//Пользователь скопирует и вставит сниппет, который они нашли в сети таким образом:
add_filter ( ‘login_headerurl’ , ‘custom_loginlogo_url’ ) ;
function custom_loginlogo_url ( $url ) <
return 'http://www.wpbeginner.com' ;
Очевидно, что это приведёт WordPress в недоумение, так как у вас открывающийся тэг PHP внутри другого, незакрытого, тэга PHP. Есть два способа решить эту проблему. Первый метод заключается в том, что мы вставляем код в нужное место:
//Тонны всякого разного PHP кода, который уже есть в вашем PHP файле
//Обратите внимание как мы закрыли первый открытый PHP тэг
//Теперь можно открыть PHP тэг
add_filter ( ‘login_headerurl’ , ‘custom_loginlogo_url’ ) ;
function custom_loginlogo_url ( $url ) <
return 'http://www.wpbeginner.com' ;
Заметьте, что мы сделали всё правильно и вставили PHP код после того, как был закрыт предыдущий.
Второй способ заключается в том, чтобы просто убрать открывающий и закрывающий тэги из вашей новой функции WordPress. Вот так примерно это будет выглядеть на практике:
//Тонны всякого разного PHP кода, который уже есть в вашем PHP файле
//Новый код будет здесь (Обратите внимание, что мы убрали открывающий и закрывающий PHP тэги из нового кода)
add_filter ( ‘login_headerurl’ , ‘custom_loginlogo_url’ ) ;
function custom_loginlogo_url ( $url ) <
return 'http://www.wpbeginner.com' ;
Вторая самая распространённая ошибка
Каждый автор уроков обладает своим собственным стилем письма. Некоторые оборачивают свои сниппеты в тэги PHP, как вы видели в примере выше. Другие авторы не оборачивают сниппеты в тэги PHP. Это приводит нас ко второй проблеме. Если вы видите такой вот код:
function custom_loginlogo ( ) < add_action ( 'login_head' , 'custom_loginlogo' ) ;
То автор подразумевает, что вы знаете о том, что этот код должен быть размещён внутри PHP тэгов. Некоторые даже рекомендуют вставлять их код внизу файла functions.php вашей темы. Пример ошибки новичка:
//Тонны всякого разного PHP кода, который уже есть в вашем PHP файле
//Сюда пользователь вставляет новый код (Обратите внимание, что PHP тэги уже были закрыты выше):
function custom_loginlogo ( ) <
add_action ( 'login_head' , 'custom_loginlogo' ) ;
Как вы могли заметить, пользователь вставил код вне тэгов PHP. WordPress понятия не имеет, что это за код, потому и ломается. Вот так будет выглядеть правильно вставленный код:
//Тонны всякого разного кода, который уже существует в вашем PHP файле
//Здесь новый код
function custom_loginlogo ( ) <
add_action ( 'login_head' , 'custom_loginlogo' ) ;
//Закрывающий тэг PHP
Третья самая распространённая ошибка
Теперь, когда мы рассмотрели проблему с открытием и закрытием PHP тэгов, рассмотрим последнюю самую распространённую проблему, с которой сталкиваются пользователи, — вставка нового кода внутри существующей функции.
Структура функции выглядит примерно так:
function custom_function_name ( ) < //Начало функции //здесь идёт характерный для функции код > //Конец функции
Если вы вставите другую функцию внутри функции, то это приведёт к поломке вашего сайта. Пример такой ошибки будет выглядеть так:
function custom_function_name ( ) < //Начало функции //здесь идёт характерный для функции код function custom_loginlogo ( ) < add_action ( 'login_head' , 'custom_loginlogo' ) ; > //Конец функции
Нельзя так. Каждая функция является обособленной и независимой, так что нельзя просто так взять и разместить их вместе. Правильный способ вставки будет выглядеть так:
function custom_function_name ( ) < //Начало первой функции
//здесь идёт характерный для функции код
> //Конец первой функции
function custom_loginlogo ( ) < //Начало второй функции
echo '<style type="text/css">
> //Конец второй функции
add_action ( ‘login_head’ , ‘custom_loginlogo’ ) ;
Описанные выше ошибки скорее всего являются причиной поломки вашей темы, когда вы скопировали и вставили сниппет из сети в файл functions.php вашей WordPress темы.
Другие полезные советы
Бывают ситуации, когда проблемы связаны с тем, что вставленный код содержит ошибки. Некоторые ошибки достаточно небрежные, например разработчик забыл поставить ; или закрыть кавычки. Другие ошибки, в свою очередь, либо носят чисто функциональный характер и связаны с самим кодом, либо возникают из-за того, что пользователь не чётко следует инструкциям.
Крайне важно, чтобы вы активировали плагин, если таковой используется в уроке. Некоторые авторы уроков просто вызывают функцию плагина напрямую в своём сниппете, не имея при этом условную конструкцию для проверки существования плагина. Можно винить как пользователя, так и автора за это. Автору следовало разместить условную конструкцию, а пользователю следовало более внимательно читать статью и установить требуемый плагин.
Бывают случаи, когда вы натыкаетесь на длинные сниппеты, которые вы очень хотите скопировать. У авторов есть тенденция объяснять код своим пользователям (что очень даже хорошо), но это так же приводит к ошибкам в коде. Так что всё, что мы делаем, это прокручиваем вниз или вверх, чтобы получить итоговый сниппет, вместо того, чтобы самим собрать его по кусочкам.
Вы когда-нибудь сталкивались с подобными ошибками? Как вы с ними справлялись? Сталкивались ли вы с проблемами, которые мы не описали? Обязательно поделитесь с нами в комментариях.
Если вам интересно то, о чем пишем, то подписывайтесь на наш блог и вступайте в нашу группу Вконтакте
- Метки wordpress
Все про файл functions.php для вордпресс

Файл functions.php для WordPress неоднократно упоминался в данном блоге при решении тех или иных задач. Однако при этом я говорил о нем вскользь, подразумевая, что вы хорошо знакомы с его работой. Сегодня же наоборот, решил детально рассмотреть все нюансы, которые касаются файла функций functions.php: зачем он вообще нужен, как правильно и безошибочно с ним работать и т.п. Инструмент на самом деле весьма актуальный как при работе с админкой, так и в процессе редактирования темы. Пусть информация и немного теоретическая, почитать будет полезно (особенно новичкам).
Статья имеет 3 подраздела:
- Особенности и задачи functions.php;
- Редактирование файла функций;
- Типовые ошибки и примеры использования.
Что такое файл functions.php и зачем он нужен?
Как правило, в данном файле задаются дополнительные функции для шаблона, позволяющие менять внешний вид вашего сайта. Однако на самом деле его возможности значительно шире, поскольку functions.php в WordPress автоматически загружается при инициализации системы. То есть при вызове любой страницы, как фронтенда (сайта), так и бэкенда (админки), соответствующие функции из данного файла будут выполнены.
Следовательно, с помощью файла functions.php вы можете решить целый спектр абсолютно разных задач:
- Наиболее простой вариант — изменение внешнего вида темы. Вспоминаются сразу хаки для ссылки читать далее где можно влиять на вид линка «read more» и формат анонса.
- Определение своих функций дабы позже вызывать их в других файлах шаблона, что экономит время на внедрение изменений на сайте (да, и вообще является нормальным принципом в программировании). Например, функция отображение первой картинки поста, которую после определения можно использовать в файлах темы для категорий, тегов, архивов.
- Настройка админки под себя — скрытие определенных пунктов из меню, изменение разных параметров отображения для других пользователей и т.п. Сразу вспоминается статья про скрытие custom fields для не админов. Также с помощью functions.php в WordPress можно создать специальную страницу настроек темы.
- Переопределение каких-то параметров системы — изменение размеров миниатюр для шаблона, а также разного рода хаки и фильтры. Например, с помощью данного файла можно подправить отображение комментариев в wp_list_comments.
Вообще файл functions.php в WordPress по логике и скорости работы напоминает плагины. Хотя при этом у них есть принципиальные отличия. Модули используются, как правило, для решения каких-то конкретных задач и применяются к любой теме вашего сайта. Плюс для работы их нужно активировать. Что касается файла шаблона functions.php, то он может содержать много разных функций и выполняется только для той темы, в которой определен. То есть при смене шаблона, все ваши текущие наработки будут отключены, а система начнет считывать информацию из другого файла функций (об этом следует помнить).
Где находится functions.php и как его редактировать?
Файл функций расположен в корневой директории темы (вместе с index.php, single.php и другими). То есть вы заходите в папку wp-content/themes/название_темы/, и он будет там. Это не то же самое что одноименный файл ядра, который находится в системной директории /wp-includes/, нужный нам объект — в папке шаблона.

Сейчас в WordPress файл шаблона functions.php можно найти в 99% популярных тем, но раньше он был не везде. Если в вашей теме нет functions.php, то вы спокойно можете его создать.
Есть два способа редактирования файла функций:
- через WP админку;
- с помощью текстового редактора.
Первый вариант достаточно простой и наглядный. Вы заходите в меню «Внешний вид» — «Редактор» и выбираете соответствующий файл для правки.

После внесения изменений нажмите кнопку «Обновить файл» в самом низу. Преимущество данного метода в том, что вам не нужно использовать какие-то дополнительные программы для работы, все происходит внутри панели администрирования. Однако не всегда это возможно сделать.
Если файл functions.php закрыт для записи, то воспользоваться встроенным редактором WordPress у вас не получится. В таком случае запускаете FTP клиент, например, Mozilla и скачиваете файл функций на локальный компьютер.

Для работы с php файлом советую использовать специальные бесплатные редакторы — Notepad++ или Sublime Text. При этом важно чтобы кодировка редактируемого файла была UTF-8 без BOM. Вот как можно ее выбрать в Notepad++:

Если этого не сделать, то из-за BOM может возникнуть глюк в WordPress. Для Sublime Text 2 в меню «File» есть опция «Reopen With Encoding», позволяющая открыть файл в нужной кодировке. Однако при запуске functions.php автоматически срабатывает UTF-8 (т.к. файл сохранен именно в ней), поэтому ничего дополнительно делать не нужно.
После внесения изменений в файл, загружаете его обратно на FTP в ту же самую корневую папку активного шаблона. Второй метод, как видите, чуть более сложный, но иногда без него не обойтись. Если вдруг, редактируя functions.php в WordPress админке вы допустили ошибку, то весь сайт может перестать работать (увидите белый экран). В таком случае исправить код можно будет лишь, скачав файл функций на локальный компьютер и отредактировав его в текстовом редакторе.
Вставка сниппетов (примеры кода и типичные ошибки)
Дабы у вас не возникало ошибок при работе с functions.php в WordPress, давайте рассмотрим основные правила вставки кода и возможные ошибки. Первым делом обратите внимание на глобальную структуру любого PHP файла:
// . разный PHP код и функции . ?>
Здесь в начале идет специальный открывающий тег и в конце закрывающий. Важно чтобы не было никаких пробелов перед открывающимся и после закрывающегося тегов! Хотя в некоторых случаях вы можете встретить запись, когда последнего тега нет (для PHP это нормально). Давайте рассмотрим парочку примеров.
Ситуация 1
Допустим, вы нашли в интернете готовый сниппет для решения определенной задачи. И в описании сказано, что нужно вставить этот код в файл функций functions.php. В качестве примера выберем код удаления WP версии из wp_head:
remove_action('wp_head','wp_generator'); ?>
Так размещать неправильно:
// . разный PHP код и функции . remove_action('wp_head','wp_generator'); ?> ?>
Возникает ошибка, поскольку система встречает тег открытия из найденного сниппета (так правильно):
// . разный PHP код и функции . remove_action('wp_head','wp_generator'); ?>
Следующий вариант также будет работать (между PHP блоками не должно быть пробелов):
// . разный PHP код и функции . ?> remove_action('wp_head','wp_generator'); ?>
Ситуация 2
Допустим вы хотите обновить jQuery в WordPress для чего нашли соответствующий код:
function my_update_jquery () { wp_deregister_script('jquery'); wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false, false, true); wp_enqueue_script('jquery'); } add_action('wp_enqueue_scripts', my_update_jquery);
Неправильный вариант использования:
// . разный PHP код и функции . ?> function my_update_jquery () < wp_deregister_script('jquery'); wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false, false, true); wp_enqueue_script('jquery'); >add_action('wp_enqueue_scripts', my_update_jquery);
Нельзя размещать код после закрывающего PHP тега. Вам нужно поставить всю функцию внутрь конструкции:
// . разный PHP код и функции . function my_update_jquery () { wp_deregister_script('jquery'); wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false, false, true); wp_enqueue_script('jquery'); } add_action('wp_enqueue_scripts', my_update_jquery); ?>
Кстати, если в functions.php закрывающего тега ?> нет (что допускается), то добавляете нужный сниппет просто в конец файла.
Ситуация 3
Нельзя вставлять сниппет внутрь другой функции. Допустим, в файле шаблона functions.php у вас имеется следующий код:
// . разный PHP код . function some_name() { // Открывающий тег функции // разный код внутри функции } // Закрывающий тег ?>
Неправильный вариант вставки:
// . разный PHP код . function some_name() { // разный код внутри функции function my_update_jquery () { wp_deregister_script('jquery'); wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false, false, true); wp_enqueue_script('jquery'); } add_action('wp_enqueue_scripts', my_update_jquery); } // Закрывающий тег ?>
Добавить код можно только после закрывающего тега «>» первой функции. Вот так будет правильно:
// . разный PHP код . function some_name() { // разный код внутри функции } // Закрывающий тег function my_update_jquery () { wp_deregister_script('jquery'); wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false, false, true); wp_enqueue_script('jquery'); } add_action('wp_enqueue_scripts', my_update_jquery); ?>
Ситуация 4
Рассмотрим для ознакомления еще один вариант, когда внутри функции вы можете встретить конструкцию , которая не будет нарушать общий порядок работы самого файла.
// . разный PHP код . function oxygen_metabox() { $oxygen_post_location = get_post_meta( $post->ID, '_oxygen_post_location', true ); ?> echo __( 'Featured', 'oxygen' ) ?>
_e( 'Post location on the home page', 'oxygen' ); ?> } // . разный PHP код . ?>
Тут нужно учитывать 2 нюанса. Во-первых, не должно быть ошибок в последовательности открывающих и закрывающих PHP тегов — каждый открытый блок должен быть закрыт. Во-вторых, внутри функции пробелы и переносы строк между тегами не критичны. В любом случае нужно быть очень внимательным в процессе редактирования. Плюс редакторов Notepad++ и Sublime Text в том, что они подсвечивают теги/функции, и так проще ориентироваться в коде.
Итого. Надеюсь, данное руководство по WordPress файлу functions.php вам пригодится. Данный инструмент в веб-разработке под WP весьма и весьма полезен. Нужно только внимательно с ним работать, так как ошибки могут привести к проблемам в работе сайта. Дабы ничего не нарушить я предпочитаю редактировать файл через текстовые редакторы, предварительно сохранив оригинальный вариант на всякий случай.
Если у вас остались вопросы по работе с functions.php в вордпресс, пишите их в комментариях.
P.S. Постовой. Продвижение и оптимизация сайта — важные знания для вебмастеров.
А вы знаете самые популярные сайты? — ТОП10 сайтов в мире (по посещаемости).
Понравился пост? Подпишись на обновления блога по
RSS,
Email или
twitter!

Оцените статью:
(голосов — 10, средний балл: 6,40 из 7)
Категории: Возможности; Хаки и секреты;
Теги: админка wp, вордпресс веб-разработка, новичкам, пишем функцию для wp, правка функций wp, правка шаблона, функции wordpress.
Похожие статьи:
- Как убрать пункты меню в WordPress админке
- Упрощаем админку wordpress
- Улучшаем страницу с результатами поиска в wordpress
- Похожие статьи в wordpress без плагинов с использованием категорий блога
- Скрываем custom fields для не админов, функция remove_meta_box()
