wordpress подключить файл php
Подключение файлов внутри темы WordPress
Доброго времени суток 🙂
Данная статья будет интересна тем, кто сам своими руками вносит правки в сою тему, которая установлена на их сайте, что работает на WordPress. Если Вы не просто меняете стили, а уже серьезно разбираетесь в структуре и функциях WordPress то, я думаю, Вам очень понравится функция, о которой я расскажу.
Рано или поздно, внося изменения или создавая свою новую тему, Вы столкнетесь с тем, что нужно будет подключить файл внутри темы. Например, у Вас есть файл index.php, отвечающий за вывод главной страницы. В какой-то момент, вы решили добавить туда какую-то функцию или условие. Код с этой функцией очень большой и Вы решили его добавить в отдельный файл. Или Вы решили не писать код цикла в каждом файле где он встречается, а он бывает в большей половине файлов темы Вордпресса. index.php, search.php, category.php, archive.php и тд. Чтобы каждый раз не повторять один и тот же код, вы можете его добавить в отдельный файл, а уже его и подключить внутри тех, где должен быть цикл.
Многие для подключения файлов используют PHP функцию include(). Не буду лукавить, я и сам по началу тоже ее использовал. Но набирая опыт и все больше изучая материал я открыл очень полезную функцию, которой и поделюсь с Вами.
Например, как я описывал Выше вы вывели цикл в отдельный файл и назвали его content.php. Чтобы его подключить в нужном месте файла, где это нужно сделать добавляется такой вызов функции:
Так Вы подключаете созданный content.php, лежащий в той же папке что и файл где подключаете. Как видите указывается только название без расширения.
Теперь давайте рассмотрим случай, когда в названии присутствует дефис. Например файл называется content-loop.php. Так же в одних скобках указать нельзя, нужно немного изменить.
Вам нужно просто через запятую, в кавычках указать второе слово после дефиса. Сложного, по сути, тоже ничего нет.
Бывает и так, что нужно подключить файл, который лежит в отдельной папке внутри темы. Например, я часто использую вложенные папки для файлов, которые подключаю, чтобы они не мешались с основными файлами темы. Например, что файл content.php лежит в папке inc, которая расположена в папке с темой. Тогда, подключение выглядит следующим образом:
Ну или для content-loop.php:
Вот в принципе и все. Хочу лишь добавить очевидную вещь, вдруг кто не знает. Данные примеры показаны для вставки в ту часть кода, что выводится в PHP. Если же в Вашей теме преобладает HTML, то функцию нужно заключать в PHP теги.
Данная функция намного удобнее include(). В ней не нужно указывать путь к папке с темой. Я рекомендую использовать get_template_part() при создании тем и надеюсь, что материал данной статьи Вам поможет.
На этом все, спасибо за внимание. 🙂
Если Вам был полезным мой труд, можете финансово поддержать сайт или отключить блокировщик рекламы, что займет 2 минуты 🙂
Как вставить PHP код в WordPress
Здравствуйте, дамы и господа! Сегодня мы рассмотрим с вами как правильно добавлять/вставлять в functions.php WordPress код PHP, то есть, безопасным и практичным способом. Не спешите редактировать файл functions.php. Есть гораздо более безопасные способы вставки своего кода в данный файл. В этом руководстве я покажу вам простой способ добавить / вставить собственный PHP код WordPress. Без редактирования файла functions.php и не нарушая работу вашего сайта WP (ВордПресс).
В некоторых случаях вам может понадобиться добавить новую функцию на свой веб-сайт, либо подключить что-либо к теме WP.
Сделать это можно разными способами: вставить PHP код WordPress напрямую в файл functions.php вашей темы (не безопасно и не практично). Или с помощью специального php плагина WP (легко, быстро, надёжно и безопасно).
Совет: Если вы редактируете файл functions.php, используемую в настоящий момент, подумайте о возможном нарушении работоспособности сайта.
При обновлении темы сделанные вами изменения будут перезаписаны. Чтобы избежать этого, можно создать дочернюю тему.
Файл functions.php WordPress
Вы можете использовать functions.php для добавления любых функций на ваш сайт (как это делают плагины). Однако новички часто не знают, как безопасно добавлять код в functions.php в WordPress. Обычно в статьях по WordPress вы найдете фрагменты кода с инструкциями (из уроков без плагина) по вставке их в файл functions.php темы или в плагин для конкретного сайта напрямую. Мол «необходимо будет вносить правки в файл функции темы сайта (functions.php)». Так делать не рекомендуется.
Проблема в том, что даже малюсенькая ошибочка в пользовательском PHP коде может поломать ваш сайт и сделать его недоступным. Или файл functions.php становится большим (сборная солянка) и не читаемым, а при смене активной темы пропадает часть функционала, которая вовсе не относится к внешнему виду сайта.
Безопасное добавление фрагментов кода в файл functions.php с помощью бесплатных плагинов.
Как добавить / вставить PHP код в WordPress
Универсальный способ добавить код в functions.php WordPress — это использовать плагин My Custom Functions, Code Snippets или создать собственный. Они решают задачу интеграции PHP функций, и добавляют их так, будто они были написаны в файле темы functions.php. При этом ни обновление темы, ни даже её изменение на новую, данную интеграцию не нарушают.
Больше не нужно редактировать файл functions.php вашей темы или какой-либо из ваших файлов плагинов для добавления собственного кода PHP. Просто добавьте свой собственный PHP-код в поле на странице плагина, и этот плагин сделает все остальное за вас. Он автоматически добавит ваш PHP-код на ваш сайт, без изменения каких-либо файлов вашей темы и без замедления вашего сайта.
Плагин работает полностью независимо от темы, поэтому вы можете использовать его с любой темой и независимо от того, имеет ли тема файл functions.php или нет. Код, который вы разместите на странице плагина, не изменится, если вы отредактируете содержимое файла functions.php темы или даже полностью измените тему.
Это действительно полезно в случае обновления темы или плагинов WordPress, потому что ваш собственный PHP-код никогда не будет перезаписан. Ваш собственный PHP-код будет продолжать работать независимо от того, сколько раз вы обновляете или переключаете тему и плагины.
Установка плагина My Custom Functions
После установки и активации в разделе Настройки появится пункт PHP Inserter. Кликните по нему, откроется страница настроек плагина My Custom Functions:
На странице плагина вы найдете редактор кода на базе CodeMirror. Этот редактор кода имеет такие параметры, как выделение синтаксиса, нумерация строк и многое другое.
Вставка кода PHP в WordPress
Чтобы добавить свой собственный PHP-код на свой веб-сайт, просто выполните следующие действия: на вкладке Главная, вставьте свой собственный код PHP в поле редактора.
Установите переключатель в положение ON (Включить) и нажмите кнопку «Сохранить изменения». Наслаждайтесь результатом применения вашего собственного кода PHP. Это так просто! Да, если будите добавлять ещё один код, тогда сделайте один пробел после первого и вставляйте следующий.
Можно ли использовать код HTML / CSS / JS, интегрированный в код PHP? Да, можно. Но делать это нужно правильно, вот так:
Пока не забыл, поделюсь. На скриншоте добавлена функция только один логин на пользователя. Для чего это?
У вас есть сайт WordPress на основе платной подписки (членство)? И пользователи могут делиться своей учетной записью со своими друзьями или кем угодно, что делает ее для них бесплатной. Но вы этого не желаете.
Вы хотите, чтобы к одной учетной записи мог входить только один человек. Можно реализовать функцию, которая предотвращает одновременный вход в систему более одного пользователя.
Переходим к следующему плагину. Он мне нравится больше и я его использую на двух моих блогах. Шикарный модуль.
Плагин Code Snippets (фрагменты кода)
Плагин Code Snippets позволяет использовать на своём сайте сниппеты кода (хуки, хаки и другие), не редактируя файлы темы functions.php. Такой метод имеет много преимуществ – при обновлении темы код пользователя не теряется, нет необходимости в создании дочерних тем, хаки работают на любой теме.
Code Snippets предоставляет графический интерфейс, аналогичный меню Plugins, для управления сниппетами. Фрагменты можно активировать и деактивировать, как и плагины. Редактор фрагментов включает поля для имени, описание с поддержкой визуального редактора, теги, позволяющие категоризировать фрагменты, и полнофункциональный редактор кода.
Установка плагина Code Snippets
После активации плагин добавит новый пункт меню с надписью Сниппеты (Snippets) в панель администратора WordPress. Нажав на нее, вы увидите список всех фрагментов пользовательского кода. По умолчанию в плагине добавлены фрагменты кода для примера. Это:
Они все деактивированы. Не удаляйте их. Они могут пригодится вам в качестве инструкции, как встроить HTML, CSS и JavaScript в PHP код:
Этот плагин предоставляет графический интерфейс для управления сниппетами, что упрощает добавление кода.
Как добавить фрагменты PHP кода в functions.php WordPress
Кликните на пункт Добавить новый. Для добавление сниппета нужно заполнить поля названия и кода. Обязательно укажите заголовок для фрагмента кода. Таким образом, вы сможете легко идентифицировать коды в будущем:
После присвоения фрагменту имени и добавления PHP кода вы также можете написать описание, которое поможет вам запомнить цель кода, где вы его нашли и почему вы добавляете его на свой веб-сайт. Это может быть полезно другим пользователям, которые работают над вашим сайтом сейчас или в будущем:
После этого, нажмите Сохранить изменения и активировать. Будьте внимательны, перед добавление сниппета убедитесь в том, что он является корректным PHP кодом, и не приведет к сбоям. Хотя добавляемый Snippets сразу не активизируется, это поможет сократить вероятность включения не исправного сниппета в будущем.
Как было уже сказано, вы можете легко управлять своими фрагментами PHP кода, включать, выключать, редактировать, удалять, клонировать или экспортировать их.
Как создать свой плагин дополнительного файла functions.php
Хорошим решением будет создать свой кастомный мини плагинчик.
Если нужно добавить на сайт свои пользовательские функции, но при этом вам не хочется устанавливать предложенные готовые модули или разбираться с дочерними темами, то сделать это можно при помощи своего личного плагина. Создаём плагин — отдельный файл функций для сайта WP. Создайте файл с кодом:
Сохраните данный файл в формате PHP с уникальным названием например, my-functions.php и загрузите его в директорию wp-content/plugins. Никакая пара используемых плагинов не должна иметь одинаковое имя файла. Далее перейдите в раздел Плагины в панели администрирования WordPress и просто активируйте его:
А давайте создадим настоящий плагин как положено, со стандартной информацией о нём:
Мой плагин активирован
Как подключать файлы и шаблоны в WordPress
Многие разработчики любят язык программирования PHP за его расширяемость и гибкость. Но в этом языке есть некоторые вещи, которые часто сбивают с толку. Самым ярким примером здесь выступает правильный способ подключения внешних файлов. Для этого в PHP есть аж четыре способа подключения файлов, а WordPress даже предлагает свой собственный вариант.
В сегодняшней статье мы рассмотрим четыре способа, которые есть в PHP для подключения файлов, а также рассмотрим способы подключения файлов и шаблонов, которые есть в WordPress.
Способы подключения файлов в PHP
Подключение файлов в PHP можно охарактеризовать как действие по добавлению другого файла в содержимое текущего файла. Это можно представить как импорт файла; в результате файлы объединяются, а затем интерпретируются как один файл.
Это выражение включает и выполняет указанный файл. Если файл не найден, появится предупреждение PHP.
Проще говоря, это означает, что PHP будет искать файл, который вы пытаетесь включить. Если он будет найден, его содержимое добавится в скрипт в том месте, где вы объявили эту конструкцию.
ВАЖНО: если вы пишете функции, которые зависят от функций в другом файле, тогда убедитесь, что этот файл подключается первым. Если вам нужно добавить набор функций или внешний файл в середине существующей функции, тогда вы можете включить его в нужном месте.
Обратите внимание, что если подключаемый файл отсутствует, PHP выдаст предупреждение об ошибке. В зависимости от конфигурации сервера ошибка будет либо отображаться в браузере, либо будет записана в файл лога (журнал ошибок), либо оба варианта. Предупреждение в данном случае не считается фатальной ошибкой, и, как правило, не останавливает выполнение скрипта, но учтите, что часть ваших функций может работать некорректно.
Зависимое подключение файлов в PHP
Зависимое подключение файлов аналогично включению файлов, но оно имеет ряд собственных последствий, связанных с ошибками и безопасностью.
В данном случае подразумевается, что зависимое подключение настаивает на том, что скрипту необходим определенный файл для выполнения.
Рекомендации по функциям подключения в PHP:
Подключение файлов в WordPress
Допустим, у вас есть определенный шаблон, который вам нужно подключить в другие шаблоны активной темы. Чтобы подключить другой шаблон, вы можете использовать что-то вроде этого:
Но это не является лучшей практикой в WordPress.
Вот функция, которую лучше использовать в WordPress: get_template_part()
Эта функция является частью API движка и используется специально для повторного использования разделов, шаблонов или кода (кроме блоков для хедера, футера и боковой панели) в вашей теме. Для этого вам нужно просто добавить в нужном шаблоне код вида:
Функция принимает два аргумента:
Ее синтаксис выглядит следующим образом:
Подключение файлов
Рассмотрим еще одну важную особенность тем WordPress. Как вы уже успели заметить, некоторые из файлов шаблона (к примеру, header.php) не привязаны к определенным страницам или типам страниц. Когда же они используются? WordPress включает в себя группу функций, выполняющих подключение различных компонентов страницы:
get_header – подключает файл header.php
get_footer – подключает файл footer.php
get_sidebar – подключает файл sidebar.php
get_searchform – подключает файл searchform.php (если указанный файл отсутствует, WordPress подключает стандартную форму)
comments_template – подключает файл comments.php
Подключение различных возможностей в WordPress может производиться другими, более удобными путями. Во-первых, функции, приведенные выше, допускают вызов с произвольным аргументом; к примеру, функция get_header(‘custom’) выполняет подключение файла с именем header-custom.php. Во-вторых, для подключения произвольных файлов можно использовать функцию get_template_part(‘partname’), где partname.php – имя подключаемого шаблона.
Некоторые из читателей, разбирающиеся в PHP, могут задать вопрос, почему WordPress определяет собственные функции вместо того, чтобы использовать стандартный метод PHP – include. Ответ на данный вопрос довольно прост: потому что get_functions обладает встроенной защитой от ввода неверных команд. Предположим, что ваш шаблон нуждается в файле, названном footer-foobar.php. Вызов данного файла вы определили следующим образом:
Теперь предположим, что какой-либо неаккуратный пользователь случайно удалил файл footer-foobar.php. Если бы вы использовали include, то каждая страница, вызывающая данный файл, выдала бы несколько сообщений об ошибке, которые были бы видны каждому из пользователей. В случае использования функции get_footer, WordPress сначала проверяет наличие файла footer-foobar.php, и, если такого не было обнаружено, то осуществляет загрузку файла footer.php. Если же и footer.php будет отсутствовать, WordPress попросту ничего не выведет на экран.
Если вы все равно хотите использовать старый добрый метод include, в WordPress имеются константы STYLESHEETPATH и TEMPLATEPATH, предназначенные для работы с регулярными операторами включения. Константа TEMPLATEPATH используется для работы с автономными темами, а константа STYLESHEETPATH – для работы с дочерними темами. Пример:
Изменение футера
Следующий шаг редактирования домашней страницы заключается в изменении футера. Нам необходимо, чтобы в нем был отображен список всех страниц верхнего уровня блога. Мы знаем, что get_footer выполняет поиск файла, имеющего имя footer.php. Для того, чтобы вызвать собственный файл футера, необходимо отыскать следующую конструкцию в home.php:
Тем самым мы переопределим стандартный вид футера для главной страницы. Однако, этим дело не ограничивается. Теперь нам надо создать файл footer-homepage.php и добавить в него некоторый код, который может иметь, к примеру, следующий вид:
На 13 строке появляется thematic_footer: он управляет отображением текста в футере, который можно задать в панели настроек Thematic. Подробнее о создании произвольных панелей настроек мы сможем узнать из последующих разделов.
Для того, чтобы вставить список страниц, необходимо использовать функцию wp_list_pages. Мы могли бы сразу добавить ее в наш новый файл футера и она бы отлично работала, но мы пойдем несколько иным путем. Спрячем объявление wp_list_pages в файл functions.php. Указанный файл выступает вместилищем всей функциональности, которую вы добавляете к своей дочерней теме. Сохранив генератор списка страниц в файле functions.php, мы можем быть уверены в том, что если нам понадобится вызвать его в других частях шаблона, мы сможем это сделать легко и быстро. Откройте файл functions.php и добавьте к нему свою первую пользовательскую функцию:
Мы используем здесь функцию echo PHP, позволяющую обернуть список страниц элементом ul с некоторым идентификатором id, что в дальнейшем облегчает стилизацию списка. В функцию wp_list_pages мы передаем следующие атрибуты: depth – требуемая глубина страниц (в нашем случае 1, т.е. страницы верхнего уровня), sort_column – тип сортировки страниц (menu_order – сортировка, аналогичная той, которая определена в панели администратора), title_li – заголовок над списком (пустая строка – отсутствие заголовка). Все параметры описаны в соответствующем разделе кодекса WordPress.
Теперь, когда мы создали нашу функцию, вызвать ее из футера можно следующим образом:
Результат можно будет увидеть в браузере. Для того, чтобы список страниц имел более интересное представление, к нему можно добавить стили CSS. Вот лишь некоторые из полезных стилей:
В следующем разделе мы рассмотрим еще один мощный механизм WordPress, позволяющий решать разнообразные задачи: хуки и фильтры.
Файлы темы в WordPress. Их иерархия и порядок подключения.
Редактировали какие-нибудь готовые темы для WordPress? Наверное заметили, что в каждой своя структура файлов.
Это потому, что существует порядок, следуя которому WordPress, в зависимости от текущей страницы сайта, ищет соответствующие файлы в директории темы и, если они существуют — подключает.
Этот пост должен раз и навсегда ответить на вопрос — какой из PHP-файлов темы используется для отображения той или иной страницы сайта?
Условные теги WordPress
К примеру, функция is_single() позволяет определить, находимся ли мы, просматривая сайт в данный момент, на странице поста.
Полный список условных тегов WordPress и их документацию вы найдёте здесь.
На некоторых схемах ниже, для того, чтобы обозначить, для какого типа страницы используются определенные файлы, я как раз таки задействовал условные теги.
Схема порядка подключения файлов шаблона
Кликните по картинке, чтобы открыть в полном размере.
На графике показан порядок, по которому WordPress запрашивает файлы. Есть и альтернативные варианты этой схемы, чуть более старые или урезанные, но рабочие, вот первый, а вот второй.
Примеры
Сразу же приведу пример для страницы с рубрикой с >54 и ярлыком myphotos :
Следующий момент, который может быть не до конца понятен, отображён на этой части схемы: