Как правильно добавить произвольный PHP-код в functions.php в WordPress?
Сейчас этот код я держу в файле header.php, но не считаю это правильным.
При попытке вставить код в functions.php, шаблон (header.php) перестаёт выводить данные из echo $cururl.
Не могу разобраться.
- Вопрос задан 16 янв.
- 82 просмотра
2 комментария
Простой 2 комментария

если вы добавляете данный код в фанкшн, то для ее использования надо сначало запросить ее глобально(ибо она таковой в итоге является-переменная). Вопрос зачем, если у вп есть, например, функция is_ssl() и прочие, которые работают везде.
Biff @biffick Автор вопроса
Владимир Брумер, я не силён в PHP и часто попадаю на то, что функция WordPress работает не так, как хотелось бы.
Если не сложно, напишите, как сделать под WP правильно получение текущего URL страницы. Но важно — требуется получать URL также пагинаций, страниц 404 (т.е. любой URL, даже несуществующих страниц) и вообще любой URL.
Мне это требуется для разметки Open Graph и get_permalink и прочее ничего не выводят на странице результатов поиска и для 404
Решения вопроса 1

Илья Салигжанов @Le_Traceur_Snork
PHP-программист | WordPress
Лучше (но не идеально) — вынести это в функцию, оставить её в functions.php и вызывать в хэдере, а там уже echo или как угодно. Что-то типа такого:
// functions.php function getRequestUri() < return ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; >
// header.php $cururl = getRequestUri();
Ответ написан 16 янв.
Нравится 1 5 комментариев
Biff @biffick Автор вопроса
Да, это то, что нужно. Спасибо.
Но я в header.php вывел так вместо $cururl = getRequestUri():
Biff @biffick Автор вопроса
Сопутствующий вопрос для другого тега Open Graph.
Как правильно в functions.php добавить код:
function og_get_description() < if ( is_front_page() ) elseif ( is_404() ) elseif ( is_search() ) else >
Т.е. мне надо выводить в HTML примерно так:
Как (безопасно) добавить код в functions.php в WordPress

Поиск интернета для решения проблем WordPress неизбежно приведет вас к сайтам, которые просят вас вставить какую-то часть кода или функцию в functions.php. Если вы новичок в WordPress, это может быть запутанной вещью. По умолчанию WordPress не имеет никакого очевидного интерфейса для ввода кода. И кроме того … копирование/вставки в вашу установку опасно. В этой статье мы покажем вам, как безопасно установить код в файл functions.php WordPress. Поехали.
Что такое functions.php, и разве это опасно?
Вы, наверное, уже знаете, что WordPress имеет темы. Каждая из этих тем находится внутри собственной папки или каталога. И каждая папка содержит файл под названием «functions.php». Это специальный файл, содержащий специфический PHP-код.
Но это тоже опасно!
Несмотря на свою ценность, function.php является опасным файлом. Причина в том, что это связано с вашей темой. Если в коде есть синтаксическая ошибка, она может отключить саму тему и сделать ваш сайт недоступным. Так что будь осторожен! Мы также покажем вам, как избежать ошибок при вставке кода.
Шаг 1. Найдите функцию functions.php в вашей теме.
Войдите в панель инструментов WordPress и перейдите в «Внешний вид-> Редактор», как показано ниже:

Это приведет вас к странице, где вы можете редактировать свои файлы тем. Эти файлы перечислены в правой части. Текущая тема выбрана по умолчанию. Найдите файл с надписью «Тематические функции» и нажмите на него, как показано ниже:

Шаг 2: Убедитесь, что нет закрытия тега ?>
Это откроет функции functions.php в текстовом поле с левой стороны. Прокрутите вниз. Если вы видите следующий символ в самом конце файла, удалите его:
Старый способ состоял в том, чтобы гарантировать, что каждый файл php заканчивается тегом ?>. Но это привело к проблемам, когда люди случайно покинули пустую строку или даже пространство после этого, и это сломало бы их сайт. Было также очень сложно отлаживать.
Поэтому перед изменением function.php, убедитесь, что он не заканчивается ?>. Если он не удалит его.
Шаг 3: Форматирование кода
Старые сайты или те, кто придерживается старых стандартов WordPress PHP, могут сделать несколько ошибок в своем коде. Поэтому скопируйте код со своего сайта, вставьте его в текстовый редактор, например «Блокнот», и внесите следующие изменения:
Удалите любой открытый кодУдалите замыкающий код ?>В основном убедитесь, что код, который вы копируете, не заключен в теги . Если это так, у вас возникнут проблемы, и ваш сайт выйдет из строя, потому что мы удалили тег закрытия?> На шаге 2.
Читать Как исправить неработающие ссылки в WordPress с разбитыми Link Checker
Когда ваш код будет чистым, мы готовы вставить его!
Шаг 4: Вставка кода в functions.php
Прокрутите весь путь до текстового поля Шаг 1 с параметром «functions.php», выбранным с правой стороны. Теперь вставьте свой код внизу, как показано ниже:
Повторить (потому что это так важно), убедитесь, что нет закрывающего?> Тега! Теперь сохраните изменения, и вы успешно добавили код в functions.php в WordPress! Вот результат кода, который мы только что добавили на этом шаге, в качестве примера:
Лучшая практика
Вот несколько примеров:
Доступ из cPanel
Несмотря на то, что мы показали вам, как получить доступ и изменить functions.php изнутри WordPress, мы предлагаем вам сделать это из вашего файлового менеджера cPanel. Найдите свою установку WordPress и перейдите в следующее место:
[Папка WordPress] -> wp-content-> themes-> [папка темы] -> functions.php
Теперь вы можете щелкнуть правой кнопкой мыши и отредактировать функции.php. Причина, по которой мы рекомендуем делать это, — это то, что вы можете отменить изменения, если ваш сайт выйдет из строя!
Используйте пользовательский плагин для WordPress Code
Для этого требуется отдельный учебник сам по себе. Но идея состоит в том, что вы создаете свой собственный отдельный плагин для специального кода WordPress вместо того, чтобы вставлять его в functions.php. Таким образом, если что-то пойдет не так, WordPress может просто отключить плагин, а не разбивать ваш сайт!
Мы надеемся, что это полезный учебник для вас о том, как безопасно вставлять код в functions.php в WordPress!
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
3 Лучших плагина для добавления кода в functions.php
Если вы хотите добавить свой функционал к активной теме Вордпресс, вам нужно добавить код в файл functions.php этой темы. Проблема в том, что при обновлении темы файл functions.php обновится на оригинальный и ваши изменения пропадут.
Чтобы изменения сохранились, вам нужно:
- Создать дочернюю тему и добавить изменения в functions.php дочерней темы, или
- Добавить ваш код с помощью специального плагина.
В этой статье обзор трех лучших плагинов для добавления кода в файл functions.php, которые добавят ваши изменения к текущей теме, даже если вы начнете использовать другую тему.
Вставляйте код в эти плагины без открывающих и закрывающих скобок.
Code Snippets
Плагин Code Snippets рекомендуется разработчиками Вордпресс. Это плагин #1, который используется в западном сообществе Вордпресс для добавления собственного кода в functions.php.
У плагина более 600.000 загрузок, он регулярно обновляется и имеет совместимость с последней версией Вордпресс. Это самый лучший плагин.

Вы можете создать отдельный снипет, настроить появление снипета на сайте и дать снипету описание и метки.
Минусы. Плагин довольно большой, в распакованном виде весит 1,4 Мб.
Меню плагина находится в главном меню Вордпресс.
Решение проблем с Code Snippets
Если после добавления кода в плагин Code Snippets сайт перестал открываться, у плагина есть встроенный режим Safe Mode, в котором снипеты не будут исполняться. Это позволит вам зайти на сайт и отключить снипет, вызывающий проблему.
Чтобы включить safe mode, добавьте в файл wp-config.php этот код перед строчкой /* Это все, дальше не редактируем. */ :
Чтобы отключить режим Safe Mode, закомментируйте эту строчку wp-config.php, или удалите ее из файла.
Также вы можете активировать режим safe mode отдельно на каждой странице. Для этого добавьте этот запрос в конце URL адреса нужной страницы, например:
My Custom Functions
Плагин My Custom Functions поддерживается украинским / армянским разработчиком Артуром Гарегиняном и является альтернативой предыдущему плагину.

У плагина более 60.000 установок, он регулярно обновляется и имеет совместимость с последней версией Вордпресс. Это еще один хороший плагин.
Настройки плагина находятся в разделе Настройки — PHP Inserter.
На странице настроек находится много всего ненужного, но это не мешает. Размер плагина в распакованном виде 2,5 Мб.
Решение проблем с My Custom Functions
Если после добавления кода в плагин My Custom Functions сайт перестал открываться, следуйте этой инструкции, чтобы отредактировать или удалить ваши дополнения:

- Зайдите на сервер, откройте папку . /wp-content/plugins/my-custom-functions .
- Измените имя файла START на STOP .
- Зайдите в настройки плагина в админке Вордпресс.
- Измените код, который положил сайт. Сохраните изменения.
- Измените имя файла STOP на START на сервере.
ProFunctions
Плагин ProFunctions поддерживается российским разработчиком WPShop.
Плагин добавляет свои настройки в раздел Плагины — Редактор.

Плюс плагина в том, что он весит 540 Байт. В нем ничего нет, он почти пустой.
Если вы хотите использовать наиболее простые решения, этот плагин может вам подойти.
Решение проблем с ProFunctions
Если после добавления кода в плагин ProFunctions сайт перестал открываться, зайдите на сервер по FTP или через хостинг-панель, скопируйте файл /wp-content/plugins/profunctions.php на компьютер и удалите файл с сервера.
Откройте файл на компьютере и найдите ошибку. Обычно это ошибка синтаксиса вроде незакрытой скобки или кавычки.
Исправьте ошибку и закачайте обратно на сервер.
Читайте также:
- Руководство по functions.php
- Руководство по wp-config.php
- Как создать дочернюю тему Вордпресс
Надеюсь, статья была полезна. Оставляйте комментарии.
Что такое файл functions.php WordPress?

Вступление: Здравствуйте! Один из важнейших файлов вашей рабочей темы является файл functions.php WordPress. Любой администратор сайта обязан знать назначение этого файла и правила работы с ним.
Что такое файл functions.php WordPress?
Файл functions.php не нужно создавать. Он создан разработчиком темы и включён в каталог темы. Работает файл, как плагин и активируется с активацией выбранной вами темы.
Написан файл functions.php на языке программирования PHP, с использованием функций и тегов разработанных для CMS WordPress.
Где находится файл functions.php?
Файла functions.php (файл функций) находится в папке вашей рабочей темы. Чтобы его найти откройте корневую папку вашего сайта. В нём откройте каталог wp-content , далее каталог themes . Теперь, открыв каталог с названием вашей рабочей темы вы найдёте файл functions . Однако не торопитесь его редактировать. Напрямую лучше этого не делать.
Ещё раз обращу ваше внимание: файл функций есть в любой теме WordPress. Он не является шаблонным. Каждый разработчик специально пишет его для своей темы. Однако вы можете его редактировать добавляя новые и изменяя старые возможности вашей темы (о редактировании чуть ниже).
Как редактировать файл functions.php WordPress?
В Интернет вы легко найдёте куски кодов php , которые нужно добавить в файл функций, чтобы изменить и дополнить функционал темы.
Структура этих кодов узнаваемо проста: в начале идёт function, далее название функции, далее код. В конце кода могут быть: add_action (хук действия) add_filter (хук фильтра).
Теоретическое использование подобных функций довольно простое. Вам нужно проверить код на правильный php синтаксис (это можно сделать тут: phpcodechecker.com ) и вставить в файл functions.php .
Однако напрямую вставлять новую функцию в файл функций рабочего проекта я вам не рекомендую, и вот почему.
Читать: Три варианта массового удаления меток на сайте WordPress
Во-первых, неправильный код или его неправильная вставка непосредственно в файл функций могут «убить» ваш сайт.
Примечание: Проблемы с доступностью сайта в результате ошибок на WordPress принято называть «Белый экран смерти». Самое простое решение проблемы «белого экрана» наличие резервной копии сайта. Читать: Резервное копирование сайта WordPress. О более сложных решениях поговорим в следующих статьях.
Ещё раз обращу ваше внимание: самая простая ошибка в коде в виде пропущенной точки с запятой, может заставить весь ваш сайт исчезнуть.
Во-вторых, если вставляемый код правильный и начнёт работать, он исчезнет после первого обновления вашей темы.
В-третьих, если вы смените тему все ваши новые добавленные функции перестанут работать.
Как правильно редактировать файл functions.php?
Есть два правильных варианты редактирования (добавления функций) файла functions.php . Один простой, второй более сложный.
Простой вариант
Есть великолепный плагин под названием «Code Snippets», автор Code Snippets pro.
Установив его на сайт единожды, вы сможете редактировать файла functions.php рабочей темы без выше перечисленных опасений. Как работать с этим плагином читайте в следующей статье.
Сложный вариант
Если вы используете дочернюю тему для своего сайта, то править файл функций можно без плагина Code Snippets.
Для этого создаёте в «дочке» файл functions.php , можно пустой. Далее просто вносите свои новые функции (хуки) в этот файл.
Создать пустой файл просто. В файле должен быть открывающий тег PHP в начале и закрывающий тег PHP в конце. Между ними вы должны вставлять ваши новые функции.
Обратите внимание, что файл functions.php «дочки» не подменяет такой же файл «родительской темы». В «дочке» он будет загружаться как дополнение к файлу функций родителя, но перед ним. Читать: Самый простой способ создать дочернюю тему.
Читать: Как проверить здоровье сайта WordPress
Пример правки файла functions.php WordPress
Не все темы WordPress в customizer имеют настройки по фильтру рубрик, которые нужно показывать на главной странице последних записей. Это можно сделать с помощью такой функции с хуком фильтра. Вот она:
function exclude_cat($query) < if ($query->is_home) set('cat','-25, -46, -53, -70');> // где -25, -46, -53, -70 //это id убираемых категорий return $query; > add_filter('pre_get_posts','exclude_cat');
Итак, функция с хуком фильтра у нас есть. Теперь нужно проверить имеющийся код на синтаксис php (адрес сервиса проверок выше).

Как видим ошибок нет. Далее нужно вставить этот код на сайт при помощи плагина Code Snippets.

После активации сниппета указанные в коде рубрики не будут показаны в блоге последних записей.
Заключение
В завершении статьи про файл functions.php WordPress, дам две рекомендацию. Никогда не меняйте этот файл напрямую. Всегда имейте его базовую копию, а лучше свежую резервную копию всего сайта.
Еще статьи
- Как и когда администратор должен обновлять Вордпресс сайт
- Как администратору организовать безопасность WordPress сайта
- Что такое ядро WordPress, структура и работа WordPress, урок 18
- Что такое SSL сертификат и почему это важно для администратора сайта, урок 16
- WP date remove — плагин убирает дату публикаций выбранных рубрик сайта


