WordPress 10 трюков для файла functions.php


Оглавление (нажмите, чтобы открыть):

Functions.php в WordPress — правильное использование

Что такое functions.php

Это главный файл в вашей теме WordPress. Располагается в /wp-content/themes/<тут название вашей темы>/functions.php .
В нём определяются важные свойства темы, кастомизируются хуки, внешний вид и её функциональность, а также добавляются некоторые необходимые вам функции. Этот файл загружается каждый раз при открытии любой страницы WordPress, поэтому с его помощью можно изменить любой элемент сайта. В связи с этим, многие советы а-ля «как изменить что-то в WordPress без плагинов» часто касаются именно внесения изменений в functions.php, вместо того, чтобы создать под этот функционал отдельный плагин или воспользоваться готовым решением. Зачастую это приводит к информационной перегрузке этого файла, код становится тяжело разобрать, а внести исправления ещё сложнее. Но не это самое опасное. Самое опасное — это то, что при смене активной темы пропадёт часть или весь необходимый функционал сайта.

Чем отличается functions.php от плагина

Ничем. По своей сути, functions.php и есть эдакий глобальный неотключаемый плагин, который привязан к текущей теме. Как он подключается в WordPress, можно посмотреть в wp-settings.php. Как видно из исходного кода, его загрузка происходит после всех плагинов, однако, это не даёт никаких недостатков или преимуществ, разве что возможность переопределить что-то в подключенных плагинах. На скорость исполнения кода это также никак не повлияет. Влияет только содержание плагинов и functions.php. Поэтому, будьте внимательны при выборе активных плагинов для своей темы и откажитесь от ненужных, малополезных вам, тогда вы сможете облегчить ваш сайт и ускорить его работу.

Когда нужно использовать functions.php

Руководствуйтесь следующим правилом: если функционал напрямую связан с текущей темой, но не с работой сайта, записывайте его в functions.php.

К примеру, это может быть

  • Настройка миниатюр
  • Установка размеров сайдбаров
  • Настройка мест под виджеты
  • Объявление мест под навигационное меню
  • Настройки темы
  • Дополнительные функции вашей темы

Когда стоит избегать использования functions.php

Если функционал должен работать даже при смене активной темы, стоит позаботиться об его вынесении в отдельный плагин.
Сюда можно отнести:

Списки неполные, вы можете определить их содержание сами под себя.

Куда внести данный код, если не в functions.php? Вы можете написать специальные плагины под них, однако, есть способ интереснее и проще.

mu-plugins как альтернатива functions.php

К нам в современные версии WordPress из WordPress MU(Multi-User) пришёл интересный функционал, называемый MU Plugins. Суть его заключалась в следующем. Администратору WordPress MU порой требовалось определить плагины для всей сети сайтов. Обычным функционалом этого было не добиться, поэтому ввели специальный раздел: /wp-content/mu-plugins/ , где они и определялись. Ещё что интересно, файлы плагинов из этой директории загружаются раньше всех остальных, что даёт возможность предопределить некоторые константы или настройки.
Позже WPMU упразднили, его код интегрировали с основным блоговым, и теперь любой WordPress может использовать функционал MU-plugins, который теперь расшифровывается как Must Use, то есть обязательный к использованию.

Как использовать mu-plugins

Вначале нужно создать специальный раздел /wp-content/mu-plugins/
В него мы помещаем нужные файлы-плагины. В отличие от обычных плагинов, здесь не нужно выдерживать специальный синтаксис, а функционал можно объявлять напрямую

Здесь для примера создан файл с кодом счётчиков посещаемости.
Внутри этот файл выглядит вот так

В админке он будет выглядеть как Необходимые

В отличие от обычных плагинов, здесь подключаться будут только файлы, непосредственно находящиеся в разделе mu-plugins . Если вы хотите подключить файлы из подразделов, создайте загрузчик этих файлов

Создаём загрузчик файлов для mu-plugins

Допустим, у нас есть такая иерархия директорий

WordPress functions php — тонкая настройка и хитрости

В любой теме для wordpress есть файл functions php. Он отвечает, за своего рода, поведение темы. С использованием этого файла есть много интересных трюков и хитростей, которые позволяют реализовывать интересный и новый функционал.

Очень часто в сети рекомендуют записывать в этот фал различный код, но тут есть свои подводные камни.

Распространенные проблемы при изменение файла functions php.

Самая частая проблема — это белый экран вместо сайта. Проблема появляется достаточно часто. Прочитав инструкцию, владелец сайта добавляет предложенный код и получает белый экран. Это связано с тем, что код был добавлен в неверное место и произошла ошибка.

Решением данной проблемы является замена файла и делать это необходимо через ftp, так как чаще всего админка также становится недоступна.

Если вы не подстраховались и у вас нет резервной копии этого файла, можно еще раз скачать архив темы и взять этот файл в нем. Возможно, вы потеряете какие-то внесенные изменения (если вносили правки ранее), но сайт заработает.

Следующая проблема — замена файла wp functions php при обновлении темы.

Проблема встречается реже, и в этой ситуации замена файла уже не поможет, так как появится несовместимость версий.
Решение проблемы чуть ниже в этой статье.

Заблуждение про оптимизацию работы wordpress через файл functions php.

В сети очень много информации на тему оптимизации скорости сайта путем удаления плагинов и добавления кода в файл функций темы. На самом деле во всех подобных советах не учитывает то, что бесконечный файл functions php будет создавать нагрузку подобную установленным плагинам.
Да и сам файл wp functions php был создан для несколько иных целей.

Решение всех озвученных проблем — создание своего аналога фала functions php.

Файл создается в несколько кликов мышки. Для этого необходимо создать php фал.
Условно назовем его my-functions.php.
Код файла:

После создания файла, его нужно закачать в папку с плагинами /wp-content/plugins
Затем он станет доступным для работы из админки.

Переходите в раздел «плагины» — «установленные».
В конце списка будет плагин с названием « Моя альтернатива файлу functions.php» .
Нажав кнопку «изменить», вы сможете вносить в этот файл любой код. Так же его нужно активировать как любой другой плагин.

На самом деле таких файлов может быть несколько, один может отвечать за скрытие рубрик, другой за добавление дополнительных кнопок и так далее. Но не стоит подключать множетво таких файлов. Если вы используете 5-6 тонких настроек , можно объединить их в одном файле.

Такой метод обеспечивает безопасность внесения правок, так как если сделать что-то не так, система сама отключит плагин, а сайт продолжит работать.

Плюс такой подход позволяет не раздувать файл wp functions php и страхует нас от потери внесенных ранее правок.


10 самых распространенных ошибок, которые делают разработчики на WordPress

Разработчики на WordPress в погоне за быстрыми результатами часто совершают одни и те же ошибки. Перед вами 10 советов, которые помогут с ними бороться.

Включайте режим отладки

Зачем использовать отладку, если код работает нормально? Отладка — это встроенная функция в WordPress, которая поможет отобразить все ошибки PHP, предупреждения и уведомления (включая устаревшие функции). С отключенной отладкой тяжело регистрировать нештатные ситуации, возникающие на сайте, что в конечном итоге может принести массу проблем. Кроме того, ошибки могут привести к существенному снижению скорости открытия страниц. Каждый раз, добавляя новый скрипт или пользовательский код в WordPress, включайте отладку (но не забывайте отключать её при введении новой функциональности в эксплуатацию).

Чтобы активировать режим отладки, нужно отредактировать файл wp-config.php в корневом каталоге установки WordPress:

Это не исчерпывающий список параметров конфигурации, которые можно использовать, но этой настройки должно хватить для решения большинства проблем на вашем ресурсе.

Не добавляйте все скрипты в верхнюю часть сайта

Хотя в WordPress есть множество популярных скриптов, многие разработчики добавляют дополнительные скрипты в wp_head . Это может привести к сильному снижению скорости загрузки страниц.

Решить эту проблему поможет очередность — удобный способ добавления скриптов и стилей для WordPress. Очередность используется для предотвращения возможных конфликтов плагинов и обработки зависимостей, которые могут возникать при использовании различных скриптов. В WordPress есть встроенные функции wp_enqueue_script и wp_enqueue_style , которые отвечают за выполнение скриптов и стилей соответственно. Основное отличие между этими двумя функциями заключается в том, что с wp_enqueue_script у нас есть дополнительный параметр, который позволяет переместить скрипт в подвал:

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

14 ноября в 10:00, Санкт-Петербург, беcплатно

Для того, чтобы проверить, насколько успешно вы провели эту или любую другую оптимизацию, воспользуйтесь одним из веб-чекеров — инструментов для сканирования и анализа сайтов.

Создавайте дочерние темы и не меняйте файлы движка

Всегда создавайте дочернюю тему, если планируете вносить изменения в шаблон. В родительских элементах поверх внесенных изменений может быть перезаписано что угодно, и после обновления вы увидите, что ваши старания пропали навсегда.

Чтобы создать дочернюю тему, поместите файл style.css в подкаталог папки дочерней темы и наполните подобным содержимым:

В приведенном выше примере создается дочерняя тема, основанная на теме «WordPress Twenty Sixteen». Важной строкой этого кода является слово Template , которое должно соответствовать имени каталога родительской темы, с которой вы клонируете шаблон.

Такие же принципы применяйте к основным файлам WordPress: не нужно изменять файлы движка, постарайтесь использовать функции и фильтры CMS так, чтобы ваши изменения не были перезаписаны после обновления. Подключаемые функции позволяют вам переопределить некоторые базовые функции, но этот подход используется всё реже и заменяется фильтрами. С фильтрами достигается тот же результат, что и с подключаемыми функциями: изменение вывода функций WordPress. Не забывайте добавлять в код if ( !function_exists() ) при использовании подключаемых функций, поскольку несколько плагинов, пытающихся переопределить одну и ту же подключаемую функцию без этой оболочки, будут приводить к фатальной ошибке.

Не используйте хардкодинг

Очень часто нам кажется, что проще вставить значение в код напрямую (например, ссылку), но в итоге время, затраченное на отладку и устранение проблем, которые возникают в результате таких действий, сильно возрастает. Лучше всего использовать функцию для генерации нужного нам результата динамически, что принесет меньше проблем в будущем.

Пример: вы переносите сайт с тестовой среды на хостинг с прописанными вручную значениями для всех ссылок (хардкодинг), в итоге вам придётся потратить больше времени на то, чтобы заставить его работать. Поэтому лучше использовать функции, аналогичные представленным ниже, для получения путей к файлам и генерации ссылок:

Другим плохим примером хардкодинга является запись пользовательских запросов. Например, в качестве меры безопасности мы меняем установленный по умолчанию префикс WordPress из wp_ на нечто более уникальное, например, wp743_ . Наши запросы не сработают, если мы когда-нибудь переместим наш сайт на WordPress, поскольку префиксы таблиц могут меняться между средами. Чтобы этого не произошло, мы можем ссылаться на свойства таблицы класса wpdb :

Обратите внимание, что в коде выше не используется значение wp_users , а имя таблицы мы получаем с помощью WordPress. Использование этих свойств для генерации имён таблиц поможет гарантировать корректный результат.

Не давайте постоянно индексировать ваш сайт

Индексация нужна, не так ли? Тем не менее при создании веб-сайта вы вряд ли хотите, чтобы поисковые системы индексировали его, пока вы не закончили работу над ним и не создали его структуру. Кроме того, если у вас есть тестовый сервер, на котором вы проводите обновления своего ресурса, вы не хотите, чтобы поисковые системы, такие как Google, индексировали эти повторяющиеся страницы. Когда есть несколько страниц с одинаковым контентом, поисковым системам сложно решить, какая версия более релевантна поисковому запросу. Поисковые системы наказывают сайты с повторяющимся контентом, и ваш сайт просядет в результатах поиска.

Как показано ниже, в настройках чтения WordPress есть флажок, который гласит: «Попросить поисковые системы не индексировать сайт» (хотя это не гарантирует, что поисковые системы отработают данный параметр):

Поэтому, если вы хотите надёжно предотвращать индексацию вашего сайта поисковыми системами, отредактируйте файл .htaccess и вставьте следующую строку:

Перепроверяйте работоспособность плагинов

Зачем проверять, включена ли функция плагина, если он активен? Конечно, в 99 % случаев это так, однако этот один процент может привести к тому, что ваш сайт будет выводить некоторые ошибки PHP. Чтобы этого не произошло, мы можем проверить, активен ли плагин, прежде чем использовать его функции. Если функция плагина вызывается через фронтенд, то нужно включить библиотеку plugin.php в код, чтобы вызвать функцию is_plugin_active() :

Мастер Йода рекомендует:  Php блокировка PHP

Этот метод обычно достаточно надёжный. Однако могут быть случаи, когда автор изменил имя основного каталога плагина. Более надёжным методом было бы проверить наличие класса в плагине:

Вообще, авторы не часто меняют имя класса плагина, поэтому лучше использовать этот подход.

Не загружайте слишком много ресурсов

Зачем выборочно загружать ресурсы для страниц? Нет веской причины загружать стили и скрипты для плагина, если этот плагин не используется на странице, на которой находится пользователь. Используя плагины только тогда, когда это необходимо, мы сможем существенно ускорить время загрузки страниц. Возьмем, например, сайт WooCommerce, где нам нужно, чтобы плагин загружался только на торговых страницах, что позволит снизить нагрузку на сайт. Для этого следует добавить следующий код в файл шаблона functions.php :

Сценарии также можно удалить с помощью функции wp_dequeue_script ($ handle) через дескриптор, с которым они были зарегистрированы. Аналогично wp_dequeue_style ($ handle) предотвратит загрузку таблиц стилей. Но, если это технически сложно для вас, можно установить Plugin Organizer, который обеспечивает выборочную загрузку плагинов на основе определенных критериев, таких как тип сообщения или имя страницы. Рекомендуется отключить любые кэширующие плагины, такие как W3Cache, чтобы изменения стали заметными.

Не оставляйте панель управления в верхней части сайта

Можно ли оставить панель администратора WordPress видимой для всех? Да, вы можете позволить своим пользователям получить доступ к страницам администратора. Но если вы хотите, чтобы ваш сайт выглядел профессионально, вы должны отключить панель администратора для пользователей и оставить её только для себя:

Этот код нужно вставить в файл functions.php вашей темы. Таким образом, панель будет отображаться только для администратора сайта. Используя current_user_can ($) , можно добавить пользователю любую роль, а также исключить его из панели управления.

Используйте фильтр GetText

Можно использовать CSS или JavaScript для изменения ярлыка кнопки, что с этим не так? Да, можно. Однако вы добавляете лишний код и тратите дополнительное время, чтобы отобразить кнопку, когда вместо этого вы можете использовать один из самых удобных фильтров в WordPress — gettext . Используя этот фильтр совместно с textdomain , мы можем изменять текст до загрузки страницы. Если изменяемый текст находится в теме, найдите строку кода load_theme_textdomain ($ domain) .

На примере WooCommerce рассмотрим, как изменить текст, который появляется для заголовка «Related Products». Вставьте следующий код в файл functions.php вашей темы:

Этот фильтр применяется к переведённому тексту с помощью функций интернационализации __() и __e() , если textdomain определен с помощью вышеупомянутых функций.


Меняйте значения для постоянных ссылок

По умолчанию WordPress использует строку запроса с идентификатором post , чтобы вернуть запрашиваемый контент. Такой формат ссылок будет неудобным для использования, кроме того, это может сказаться на индексации вашего ресурса поисковыми системами. Включение постоянных ссылок, например, в режим «Произвольно», поможет поднять ранжирование страниц, ведь там могут также находиться ключевые слова. Лучше всего это делать сразу после установки WordPress. Вы можете выбрать формат ссылок на экране «Настройки постоянных ссылок»:

Заключение

Приведённые здесь примеры не являются полным списком допускаемых ошибок при работе с сайтами на WordPress. Не стесняйтесь делиться с нами некоторыми ошибками, которые вы сделали в прошлом, и, что более важно, с любыми извлечёнными уроками, оставив комментарий ниже.

Создаём плагин — отдельный файл функций для сайта my-functions.php

Файл функций — занимательный помощник в расширении функционала сайта ! особливо, если используется по назначению, — однако, многие владельцы блогов/сайтов замечательным образом превращают functions.php в сборную солянку.

В любом деле существуют целесообразности и ограничения (ограничения, чаще логические), а посему некоторый исполняемый код, призванный регулировать параметры ядра WP (не темы), правильнее вынести за пределы шаблона…

Когда разговор ведётся об модернизации функциональных возможностей сайта, в линейке статей «без плагинов…» непременно советуют пихать все блоки кода в легендарный functions.php . Это неправильно!

Все чисто технические расширялки (не касаемые напрямую стиля шаблона) логичнее перенести в организованный для их прописки плагин.

Создадим его! а также потолкуем о плюсах и минусах (коих значительно меньше)…

как создать свой плагин

по тексту ниже узнаем как своими руками создать собственный плагин: разберёмся во всех подробностях, нюансах. Узнаем в чём плюсы и минусы (минусов меньше!! и скорее, это вовсе не минусы, а та или иная целесообразность для каждого администратора)

в чём отличие файла functions.php от плагина

Почему следует некоторый код, относящийся непосредственно к функционалу сайта, перенести в отдельный плагин?

Самый файл функций, его цель и сообразность ничем не отличается от плагина (попросту — плагин в теме))! — его основная задача — обогатить полезным функционалом конкретный (активный) шаблон.

Например, «навигация», где по логике, меню кнопок оформлено CSS соответственно стилю активной темы — может быть, правильнее оставить в корне шаблона.

Я говорю о том, что, все функциональные примочки, не касающиеся напрямую внешнего вида шаблона сайта, целесообразнее перенести в плагин: к примеру, такие как чистота кода шапки wp_head , …исключение всевозможных паразитных ссылок… код добавочных кнопок визуального и html редакторов… и многое-многое другое логичнее отправить за пределы шаблона.

14 полезных сниппетов для наилучшей работы сайта WordPress

В чём выгода — разбить файл функций на отдельные файлы, либо отдельный плагин?

Например, самое банальное — вы решили поменять шаблон!? …как итог — пропадут все функциональные наработки, ибо весь полезный код расположен в файле функций (видел однажды такой размер файла 750кИЛО)

Конечно, можно перенести документацию функций в новую тему, но — чаше всего, без правок, что отнимают уйму полезного времени, не обойтись: обезьянка и труд)

очерёдность загрузки файлов сайта

Кратко: порядок загрузки файлов ядра сайта в нашем примере такой — чуть раньше подгружаются активные плагины сайта (из папки plugins) и их содержание, и уж потом обрабатывается файл functions.php с содержимым. Это всё миллисекунды, и вряд ли тут стоит всерьёз говорить о выигрыше самой скорости страниц.

Хотя, думается, что одна из причин такой очерёдности загрузки, установленной разработчиками, где второе место отведено файлу функций (как предположительно более лёгкому элементу), как раз тот факт широкого использования плагинов, зачастую массивного содержания…

Кто-то воскликнет: ещё один плагин…? это тяжело!

А я говорю, ни на какую скорость это не повлияет… скорее — наоборот, если к созданию сайта подходить вдумчиво.

Притом — выгода переноса некоторого кода очевидна в другом, а именно, — скорость загрузки сайта зависит не от количества активных плагинов, но от их содержимого! Так почему же не уменьшить файл функций, который, как говорилось, подгружается чуточку позже. и к тому же является полноценным массивным ПЛАГИНОМ уровня шаблона! Так где же место большей части его кода?

По моему мнению, (активный, рабочий) шаблон должен содержать в себе только касаемые конкретно его параметры.

экскурс к арифметике…

  1. подгружается позже, спрашивается, почему не перенести туда, где обработка кода выполняется первичнее, а, соответственно, заданные админом поправки параметров ядра WP прочитаются быстрее и обработаются на соответствующем же этапе запуска сайта?
  2. пресловутая целесообразность и логичная организация функционала сайта.
  3. удобства, что не немаловажно!

К тому же, как и говорилось, файл функций тот же плагин, — снова спрошу, зачем всё что ни попадя в него пихать? а в процессе работы с сайтом путаться в огромном, трудно читаемом документе кода, который, кстати сказать, неимоверно и неоправданно раздут своим содержимым.

Проще и логичнее создать лёгенький плагин, настроить и забыть…

Словом, каждый решает сам: прислушиваться ли к своему опыту, либо к мнению автора некоей обучающей статьи.

Тогда как учится следует в библиотеках вордпресс, но не по статьям… из статей возможно почерпнуть лишь ту или иную идею…

…для тех, которым интересно:

изучить все правила работы ядра (и, кстати, очерёдность загрузки ядрёных директорий)) можно замечательным образом в кодексах WordPress.


…в одной из следующих статей как раз такая тема-бедекер! …и ссылки на полезные странички.

How To’s & Tutorials 10 WordPress Tricks For The Functions.php File

Among other themes in your WordPress folder, there is the most powerful of them all: the functions.php file. As you can already guess from the name, this file contributes to some of the unique functions of your WordPress installation, even if added as a plugin to your already existing theme. What it does is to allow you to override or modify critical WordPress features without having to drill deep and tackle core files. If used appropriately, functions.php can make your WordPress amazing and fortress-firm. At the same time, it will accelerate development by simply collecting all codes under one roof.

PHP programming language syntax for web coding script in screen vector

As expected, there is a multitude of incredible tricks and best practices to help you make the most of your WordPress functions.php file, and this article reveals the most wanted among them.

In case you’re designing a client’s theme, you can use this file to be the perk. What it takes is to paste this code inside the file:

2. Disabling WordPress search

When working with WordPress as your CMS, you don’t really need the search function, and you can use functions.php to remove it from your design. Searching will still be possible, with the difference that there will be no sidebar for the function. This is the code you should use for the purpose:

3. Using RSS to control the availability of your posts

The most common error of all bloggers is that publish their posts right after completing them, and they start catching errors just after a minute or two. That’s why posts should be delayed at least 5 or 10 minutes, and be published on the RSS only after it is confirmed that there are no errors. In order to do it, add the following function:

4. Customizing excerpt length

Excerpt length is intuitively capped at exactly 55 words, which puts an obstacle to the flexibility designers want and expect from WordPress. In order to customize excerpt length you should use the following function:

5. Disabling RSS feeds

The RSS feed is not absolutely necessary for static WordPress websites, so in case you’re designing one you can consider disabling it with the following function:

6. Enabling a featured image function

According to the codex, a WordPress author can use the featured image function to pick representative images for his pages, posts, or post categories.

In order to enable the functionality, copy the following code and include it in the functions.php file:

Most of the time, it is WordPress that defines thumbnail sizes, but we could also take matters into our hands and define sizes ourselves. No doubt most designers would be impressed by this option!

Take a magazine website as an example, where all featured images appear at least in 3 different sizes. The largest one, for instance, can be used for most recent posts, medium ones for less important posts, and a small one that will appear in other necessary locations.

You should use the add_image_size() function to instruct WordPress to make few copies of the featured image and adjust them to the predefined sizes.

In order to do it, add the following code to the functions.php file:

7. Removing the security information of your WordPress version

Restricting backend access to menu functions depending on usernames and role permissions

You can use this function to deactivate individual access to the admin menu, based on the permissions assigned to that particular username:

8. Adjusting the excerpt word length

As we already said, the usual excerpt length is 55 words, but you can always overwrite it with the following snippet:

9. Showcasing dynamic copyright data in the footer space

Many websites neglect the importance of updating their copyright data, or include simply the current year because that’s the only thing the WordPress feature allows them to do. As often as it happens, this doesn’t qualify as a best practice, as patterns similar to © 2012 to 2020 look much prettier and more professional for websites that want to maintain their reputation. You’re supposed to do nothing else, but to add a simple code snippet to the functions.php file:

10. Upgrading your author profile with author fields

The best thing about WordPress is that adding is just as simple as removing. We’re going to share one truly important code you could use to add input boxes to the author profile:

WP Magazine

Про WordPress на русском языке

Вся правда о functions.php

Одной из самых частых ошибок начинающих разработчиков WordPress — это использование файла темы functions.php не по назначению. В данной статье мы раскроем все мифы о данном файле и расскажем в каких случаях стоит его использовать.

Что такое functions.php

Если вы хоть раз открывали исходный код любой темы для WordPress, вероятно вы сталкивались с файлом под названием functions.php.

» data-medium-file=»https://wpmag.ru/wp-content/uploads/sites/13/2014/08/functions-php-300×120.png» data-large-file=»https://wpmag.ru/wp-content/uploads/sites/13/2014/08/functions-php.png» src=»https://wpmag-22.cdn.pjtsu.com/wp-content/uploads/sites/13/2014/08/functions-php.png?w=780″ alt=»Файл functions.php» w />

Основная цель данного файла — предоставить дополнительные функции необходимые для полноценной работы темы, а также установить некоторые параметры для ядра WordPress, например размер миниатюр, путь к файлам локализации темы, разделы для виджетов и другие.

Файл functions.php загружается при каждом запросе любой страницы в WordPress, включая запросы в панель администрирования и AJAX запросы. Это дает разработчикам темы возможность изменять любые аспекты их проекта на WordPress, а не только то, что связано с внешним видом.


К сожалению многие уроки WordPress в сети Интернет (серии «без плагинов») предлагают вставлять блоки кода именно в файл functions.php активной темы, потому что редактировать этот файл легче, чем создавать новый плагин, особенно через редактор файлов в панели администрирования WordPress.

» data-medium-file=»https://wpmag.ru/wp-content/uploads/sites/13/2014/08/wordpress-theme-editor-300×137.png» data-large-file=»https://wpmag.ru/wp-content/uploads/sites/13/2014/08/wordpress-theme-editor-1024×467.png» src=»https://wpmag-22.cdn.pjtsu.com/wp-content/uploads/sites/13/2014/08/wordpress-theme-editor.png?w=780″ alt=»Редактор файлов темы в WordPress» w />

Редактор файлов темы в WordPress

Таким образом после прочтения серии подобных уроков, файл functions.php становится огромным и нечитаемым, а при смене активной темы пропадает часть функционала, которая вовсе не относится к внешнему виду сайта.

Чем functions.php отличается от плагина

Если коротко — то ничем.

Если взглянуть на порядок загрузки ядра WordPress в файле wp-settings.php, то мы увидим что файл functions.php активной темы загружается немного позднее всех активных плагинов, но данный порядок не дает каких-либо преимуществ или недостатков. А содержание файла functions.php и файлов плагинов подключаются и выполняются идентичным образом.

Основным отличием плагинов от functions.php является то, что плагины можно выборочно активировать через интерфейс, а файл functions.php активной темы загружается всегда. Таким образом при смене активной темы мы теряем все, что было написано в старом файле functions.php, но наши активные плагины продолжают функционировать.

Мифы о производительности functions.php

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

Как мы уже упомянули, файлы плагинов и файл functions.php подключаются и исполняются идентичным образом, и PHP код размещенный в плагине и в файле functions.php будет выполняться с абсолютно одинаковой скоростью.

Список активных плагинов в базе данных WordPress хранится в одной опции, которая будет выбираться с одинаковой скоростью, независимо от количества активных плагинов. Иными словами, количество активных плагинов не влияет на скорость работы сайта на WordPress. Влияет лишь их содержание, ровно так же как и содержание файла functions.php.

Когда следует использовать functions.php

Как было сказано ранее, файл functions.php предназначен для функционала, связанного с темой или внешним видом сайта. Ниже представлен список примеров того, что следует писать именно в файле functions.php:

  • Установление ширины содержимого в WordPress
  • Объявление доступных разделов для виджетов в теме
  • Установление пути к файлам локализации темы
  • Объявление поддержки миниатюр и их размеры
  • Объявление поддержки навигационного меню в теме
  • Подключение требуемых скриптов и стилей для темы
  • Подключение стилей темы для визуального редактора
  • Создание раздела с настройками темы
  • Создание дополнительных элементов управления в конфигураторе темы
  • Дополнительные функции используемые в шаблонах темы
Мастер Йода рекомендует:  Генерация случайного пароля PHP

Список далеко не исчерпывающий, но дает понять какого рода функционал стоит хранить в файле functions.php. Для контрастности приведем короткий список сниппетов, которые не стоит хранить в functions.php:

  • Код счетчиков Google Analytics или Яндекс.Метрики
  • Произвольные типы записей или таксономии в WordPress
  • Дополнительные скрипты и стили, не связанные с темой
  • Дополнительные роли и привилегии
  • Код для вставки рекламных баннеров в содержимое сайта
  • Отключение RSS лент
  • Скрытие версии ядра WordPress (этого делать вообще не стоит)
  • Скрытие верхнего меню администрирования WordPress
  • Отключение ревизий записей
  • Отключение функций pingback/trackback
  • Любые шорткоды

При столкновении с очередным отрывком кода, попробуйте задать себе простой вопрос — что произойдет при смене активной темы в WordPress? Если ваш ответ «перестанут работать счетчики посещаемости», «пропадут все произвольные типы записей», и т.д. то данный отрывок лучше хранить в виде плагина.

Как создать свой плагин

Для многих начинающих WordPress разработчиков тема создания собственных плагинов является сложной. Действительно для написания хорошего комплексного плагина для WordPress потребуется немало усилий и знаний в программировании, но, если вам нужно лишь вставить небольшой отрывок кода, то для этого подойдет и простой короткий плагин:

Сохраните этот файл под названием my-functions.php и разместите его в директории wp-content/plugins. После этого перейдите в раздел Плагины в панели администрирования WordPress и активируйте его.

» data-medium-file=»https://wpmag.ru/wp-content/uploads/sites/13/2014/08/functions-php-alternative-300×61.png» data-large-file=»https://wpmag.ru/wp-content/uploads/sites/13/2014/08/functions-php-alternative-1024×207.png» src=»https://wpmag-22.cdn.pjtsu.com/wp-content/uploads/sites/13/2014/08/functions-php-alternative.png?w=780″ alt=»Собственный плагин для WordPress» w />

Собственный плагин для WordPress

Также советуем не хранить все сниппеты в одном единственном плагине, а разбивать их на более мелкие отдельные плагины, чтобы с ними было удобнее работать.

Помните — количество активных плагинов не влияет на производительность сайта. Один плагин с десятью функциями будет работать с той же скоростью, что и десять плагинов содержащих по одной из этих же функций.

mu-plugins как альтернатива

В WordPress есть специальный вид плагинов, которые называются «must use» или mu-plugins. Эти плагины активны по умолчанию, и деактивировать их через панель администрирования возможности нет. В mu-plugins также отсутствует требование к заголовку PHP файла (Plugin Name и т.д.), поэтому код можно писать сразу после открытия тега .

Подобные плагины необходимо размещать в директории wp-content/mu-plugins. Если такая директория у вас отсутствует, вы можете ее создать.

Как сверстать тему для WordPress

Введение

Добавление темы

Для начала в папке themes создадим папку нашего шаблона «whitesquare». В ней будет находиться папка images и два необходимых пустых файла index.php и style.css.

Следующим шагом нужно добавить скриншот нашей темы. Сохраните изображение главной страницы из psd макета размером 880х660 в папку темы whitesquare с именем screenshot.png.

После этого мы уже можем использовать нашу тему. Зайдите в панель администратора по адресу https:///wp-admin, а затем в управление темами (Appearance -> Themes). В списке уже должна появиться наша тема whitesquare. Наведитесь на тему и нажмите «Activate».

После того, как тема активируется, вы увидите сообщение со ссылкой на сайт. Уже сейчас можно зайти на него и увидеть пустую страницу.

Предварительный осмотр

Если посмотреть на макет, то можно увидеть, что наша страница состоит из шапки и футера, которые повторяются на всех страницах. Также на всех страницах, кроме главной, есть сайдбар слева. Для того чтобы руководство было более универсальным, давайте страницы главного меню оформим как «страницы WordPress» (page), а страницы подменю как «посты блога WordPress» (post) с комментариями. Главную же страницу сделаем как отдельную страницу (front-page) с собственной разметкой. Здесь надо отметить, что, несмотря на то, что страницы WordPress могут быть реализованы двумя способами (как страницы или как посты) в базе данных они различаются только типом, однако при создании шаблонов они обрабатываются немного по-разному. В этом вы сможете убедиться чуть ниже.

Структура страниц


Большинство руководств по созданию тем для WordPress ограничивается созданием макета и стилей для него. Мы же опишем весь порядок действий по созданию полноценного сайта на WordPress в рамках предоставленных макетов.

Давайте начнем со структуры страниц. Прежде чем добавлять страницы, нужно сначала зайти в настройки и указать стиль ссылок: Settings -> Permalink settings -> Post name. Это позволит сделать ссылки в виде «https://site_name/page_name».

Добавление страниц осуществляется через панель администратора: Pages -> Add new. Для каждой страницы в области Page Attributes в поле Order укажите цифрой порядок страницы в главном меню.

После добавления, список страниц должен выглядеть вот так:

Когда все страницы будут добавлены, нужно указать, что страница Home будет главной. Для этого зайдите в меню Settings -> Reading и в поле Front page displays укажите: A static page -> Home.

Header.php и Footer.php

Шапка в терминологии WordPress, это не только визуальная шапка на макете сайта. По сути, она содержит весь общий код, который встречается в начале всех страниц сайта. Давайте создадим файл header.php в папке нашего шаблона и наполним его содержимым.

Внутри тега head мы установили кодировку, указанную в WordPress, заголовок страницы и pingback (для связи с другими сайтами). В последней строке вызываем команду wp_head(), которая добавляет заголовки WordPress. Также открываем блок «wrapper».

Кроме этого, нам нужно подключить css и js файлы. В текущих версиях wordpress это делается не прямым текстом в header.php, а через подключение в специальных функциях. Для этого откройте файл functions.php внутри нашей темы и добавьте в него следующий код:

В функции enqueue_styles мы зарегистрировали и подключили нужные стили, а затем указали вордпрессу, что эта функция является подключением стилей. Аналогично и для js файла, который требуется для отображения html5 тегов в старых браузерах.

Футер аналогично шапке — содержит общий код, который встречается в конце всех страниц сайта. Давайте запишем его содержимое в файл footer.php.

Здесь мы закрываем открытые блоки и вызываем wp_footer(), чтобы добавить скрипты футера WordPress.

Шаблон страницы

Следующим шагом, нам нужно сделать шаблон обычной страницы WordPress.
Создайте в папке темы файл page.php и добавьте в него следующий код:

Здесь мы подключили наши файлы шапки и футера, создали блок названия страницы и в теге section вставили стандартный блок вывода контента страниц и постов.

Теперь нужно стилизовать получившуюся страницу. Сохраните фоны в файлы images/bg.png и images /h1-bg.png. Далее добавьте немного базовых стилей в файл style.css:

В результате должна получиться вот такая картина:

Логотип

После того, как мы закончили с каркасом основной страницы, приступим к ее наполнению. Начнем с логотипа. Сохраните изображение логотипа в images/logo.png. В шаблон шапки, в файле header.php вставьте разметку для логотипа:

Форма поиска

WordPress позволяет достаточно гибко сохранять блоки кода в отдельные файлы, а затем использовать их в нескольких разных местах. Рассмотрим пример на нашей форме поиска.
В папке темы создайте новый файл searchform.php и сохраните в него код формы поиска:

А в файл стилей запишите стили для формы:

Всё, что осталось сделать – это подключить searchform.php внутри header.php.

Навигация

Добавить навигацию на страницу можно разными способами, например через функцию wp_list_pages, но более современным способом будет добавление через админку. По умолчанию функционал добавления меню не активирован, для того, чтобы это сделать, добавьте в файл темы functions.php следующий код:

После этого, в панели администрирования в пукте меню Appearance появится подпункт Menus, в котором нужно нажать на ссылку Create new menu, ввести имя меню «top-menu», выделить страницы из левой колонки и добавить их в меню кнопкой Add to menu.

Теперь, когда меню создано, нужно его показать на страницах сайта. Для этого добавьте в конец header.php следующий код:

Функция wp_nav_menu отобразит меню с именем «top-menu» и css классом «top-menu».

После этого меню уже появится на страницах но без стилей. Стилизуем его:

Футер

Теперь приступаем к самой сложной части нашего шаблона. Давайте нарежем изображения и сохраним их в в папку images

images/footer-logo.png – логотип футера
images/social.png – спрайты больших иконок
images/social-small.png – спрайты маленьких иконок

Далее делаем вёрстку в файле footer.php:

И прописываем стили в style.css:

В итоге главная страница сайта должна выглядеть вот так:

Главная страница

Если вы посмотрите на psd макеты, то увидите, что разметка главной страницы отличается от внутренних. В частности, на главной странице нет сайдбара и заголовка страницы.

WordPress позволяет задавать разные шаблоны для разных страниц. Такой шаблон должен храниться в файле page-<название страницы>.php. Если шаблон не найден, то будет подключаться шаблон по умолчанию page.php.

Для главной страницы создайте новый файл front-page.php в папке темы. Добавьте в него следующий код:

Он отличается от кода page.php только тем, что в нем нет заголовка страницы.


То, что мы будем делать дальше, уже выходит за рамки создания темы WordPress, однако мы попытаемся воссоздать полную картину из psd макета и наполним контентом главную страницу. Содержимым страница наполняется из панели администратора для того, чтобы владелец сайта мог зайти в эту панель и что-то изменить на странице, не изменяя код самой темы.

Прежде, чем добавить контент главной страницы – необходимо нарезать все изображения этой страницы и добавить их в библиотеку WordPress через меню Media -> Library. Назовём эти изображения так:

home-1.png
home-2.png
home-3.png
home-4.png
home-5.png
clients-1.png
clients-2.png
clients-3.png
clients-4.png
clients-5.png
clients-6.png
clients-7.png

Далее, перейдите в панели администратора к форме редактирования главной страницы Pages -> Home -> Edit Page и в поле text введите содержимое страницы:

Не забудьте поправить пути до картинок. Они зависят от даты добавления.

Теперь осталось стилизовать данный код.

Если вы сейчас посмотрите на страницу, то увидите, что заголовки блоков разъехались. Это связано с тем, что редактор WordPress добавил пустые параграфы в наш код в местах перевода строк. Чтобы решить эту проблему, создайте в папке темы файл functions.php и поместите в него код:

После этого, главная страница должна отобразиться правильно.

Сайдбар

Теперь, когда главная страница готова, давайте вернемся к шаблону внутренних страниц и добавим в него сайдбар.

Для этого создайте файл sidebar.php и поместите в него следующий код:

Здесь верстка состоит из двух частей: отображение навигации подменю и блок карты офисов. Для полноты картины в качестве подменю предлагаем показать список всех постов на сайте. Подменю создается аналогично тому, как мы создавали меню. При создании подменю в разделе админки Appearance -> Menus создадим новое меню с именем aside-menu. Чтобы добавить в него посты, кликните наверху в Screen options и отметьте галочкой Show on screen: Posts. Блок карты особых вопросов не вызывает.

После того, как блок сайдбара готов, нужно его подключить для всех подстраниц в файле page.php:

Далее нам нужно добавить стили для вёрстки:

Ну и в заключение, добавьте несколько постов в наш блог. Делается это в панели администратора на вкладке Posts -> Add New. Мы добавили точно такие же названия, как были в psd макете.

Страница About us

Теперь, когда у нас готов шаблон для внутренних страниц, давайте наполним содержимым страницу About us. По той же схеме, как мы наполняли главную страницу – подготовьте изображения и добавьте их в в медиа библиотеку. Назовите изображения вот так:

about-1.png
about-2.png
team-Nobriga.jpg
team-Pittsley.jpg
team-Rousselle.jpg
team-Shoff.jpg
team-Simser.jpg
team-Tondrea.jpg
team-Venuti.jpg
team-Wollman.jpg

Далее перейдите в редактирование страницы в панели администратора и добавьте код:

И стили в style.css:

Шаблон поста

После предыдущих действий, на нашем сайте уже доступны все страницы, кроме страниц с постами. За отображение одиночных постов отвечает шаблон single.php. Создайте его со следующим содержимым:

Этот шаблон аналогичен предыдущим шаблонам с той лишь разницей, что здесь мы сначала отображаем контент поста, а затем комментарии к нему.

Страница поиска

В самом начале, когда мы создавали шаблон шапки мы добавили в него поиск, однако страницы для отображения результатов поиска у нас еще нет. Создайте в папке темы файл search.php и добавьте в него содержимое:

От других шаблонов этот отличается тем, что мы выводим заголовок с текстом поиска, а затем список результатов поиска.

Страница архива

В WordPress помимо одиночных постов существуют страницы, на которых отображаются списки постов. Это могут быть категории, сортировка по дате, автору или по ключевым словам. В нашем макете такого функционала нет, но добавить его обязательно нужно, так как мы создаем шаблон, который может использоваться с разным контентом. Для каждого из указанных списков, существуют свои шаблоны, однако если они не найдены, WordPress пытается найти общий файл archive.php. Мы этим воспользуемся и создадим его. Поскольку его содержимое ничем не будет отличаться от содержимого обычной страницы – просто скопируйте page.php в archive.php.

Последний шаблон, который осталось добавить — это шаблон для 404 страницы, когда WordPress не смог найти запрошенную страницу. Он будет точно такой же, как page.php только вместо вывода постов будет написано сообщение об ошибке:

Заключение

На этом создание шаблона WordPress закончено. Готовый проект можно скачать здесь.

Где находиться functions.php WordPress и его применение

Расширяем возможности сайта через functions.php

Хотите расширить функционал вашего сайта, внести корректировки или просто повысить производительность CMS WordPress? Многие владельцы сайтов на WordPress решают эту задачу добавлением небольшого кода в файл “functions.php” установленной темы. Попробуем рассмотреть моменты, плюсы и минусы данной процедуры.

Functions.php в WordPress

Файл functions.php необходим для правильной работы темы, с помощью него можно расширить стандартные ее функции и установить некоторые параметры ядра WordPress.

functions.php подгружается всегда при обращении к страницам сайта, во время AJAX запросов и при посещении административной панели WordPress. Зная это, можно добавлять свои php-функции или функции WordPress в файл functions.php для выполнения необходимого функционала.

Где находиться файл functions.php: /wp-content/themes/ название_вашей_темы /functions.php

Где находиться functions.php

Рад пользователей WordPress считают, что добавление функций непосредственно в файл functions.php вместо установки альтернативных по функционалу плагинов – повышают производительность их сайта. К сожалению это не так.


Что лучше использовать – functions.php или плагин?

Чем functions.php отличается от плагина? Если объяснять просто – то ничем.

Разница «плагинов» и «functions.php» в назначении и порядке выполнения. Первым загружается functions.php, плагины подгружаются после, но могут быть отключены через админ-панель. functions.php же загружается всегда. Но если выполнять одинаковый программный код по средством плагина и functions, выполняться они будут одинакового и их место выполнения никак не повлияет на скорость работы сайта.

Частично на скорость загрузки сайта влияет качество кода плагинов и функций для functions.php

Процесс подключения functions.php происходит во время инициализации текущей темы, после подключения функций WordPress.

Процесс подключения functions.php

Как добавить функцию и примеры использования functions.php

Открываем файл functions.php в любимом текстовом редакторе, например Notepad++.
Местоположение файла functions.php: /wp-content/themes/ название_вашей_темы /functions.php
Если в вашей теме такого файла нет, создайте его с названием functions.php в папке вашего шаблона: /wp-content/themes/ название_вашей_темы И скопируйте в файл нужный код функции.

Плагин как альтернатива файлу functions.php

Существует более правильный способ добавлять новые функции для вашего сайта. Необходимо добавить пустой плагин для WordPress и активировать его. Затем в него можно добавлять новые функции, как раньше делали это c файлом functions.php.

Создайте новый файл с расширением .php, например: «functionsphp.php» с кодом:

Данный плагин загружаем по FTP в директорию плагинов WP: /wp-content/plugins/

Скопируйте любые функции, которые обычно помечаются как «вставить в functions.php» в ваш новый плагин. После внесение изменений активируйте плагин. Не забудьте выключать плагин при добавлении новых строчек кода. Если после очередной функции сайт выдает ошибки, возможно вы нарушали синтаксис кода или данный код не актуален для вашей версии движка\темы.

Мастер Йода рекомендует:  4 концепта, необходимые специалисту по машинному обучению

Для начинающих разработчиков или для тех кто сам захочет написать функцию для WordPress есть хороший инструмент: Generatewp

Примеры: функции для functions.php

Вывод информации по разработке сайта в админ-панели

Отключение создания миниатюр – любых размеров изображений

Вы так же можете добавить удаление миниатюр для нестандартных тем WP, указав их названия в кавычках, через запятую: ‘img_100x100’, ‘img_300x300’, ‘img_baner’,

Для отключение других размеров изображений ищем и удаляем в плагинах и теме сроки начинающиеся с кода:

Второй вариант оптимизации изображений

Подключаем популярные шрифты-иконки Font Awesome

Отключаем ревизии для экономии ресурсов

Открыть все внешние ссылки в новом окне

Добавляем поддержку Favicon для всех популярных устройств

Вставляем рекламу после определенного количества символов

Показывать рекламу только тем, кто пришел из поиска

Применение: Вставляем в то место, где должна выводиться реклама, например Google AdSense.

Не выводить определенные рубрики на главной странице сайта

где 100 и 101 это id желаемой рубрики WP

Удаление пробела между анонсом и полным текстом – more

Для удаления конструкции:

из полной статьи в wordpress, добавляем функцию:

Изменение пути к странице автора – замена author на user

Изменения окончания различных слов, например: день, дня, дней

Вывод склонения окончания слов:

Отключение стандартного поиска WordPress

Убираем выпадающий список в поиске

Скрыть текст после конкретной даты

Применение: [cdt month=”01″ day=”01″ year=”2015″] С Новым годом! [/cdt]. До наступления указанной даты, будет показан счетчик обратного отсчета.

Включить поддержку шорткодов в цитатах и поиске


Скрыть версию движка WordPress

Меняем стандартный адрес электронной почте

Удаляем ненужные meta данные и rrs

Скрыть атрибуты в главном меню

Скрыть поле сайт и email в комментариях

Данные хуки способны значительно расширить функционал сайта и упростить их внедрение. При желании можно написать довольно интересные решения, экспериментируйте. Если у вас есть интересные решения или вопросы, смело публикуйте их в комментарии.

Файл functions.php из папки с темой WordPress и реальные примеры его использования

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня хотел объединить в рамках одного поста все варианты использования файла functions.php, которые мне доводилось когда-либо пробовать и которые работают на моем блоге сейчас. Живет этот файл практически в папке каждой темы для Вордпресса, ну, а если его вы там не обнаружите, то не будет проблемой его создать.

Если вы используете достаточно продвинутую тему оформления, то в functions.php скорее всего будут прописаны различные возможности настроек ее внешнего вида и функционала. Сами эти настройки будут доступны из админки WordPress, и вам лазить в этой файл будет незачем. Но кроме всего прочего этот замечательный файлик может творить чудеса, часть из которых будет описана ниже.

Как вносить изменения в functions.php и все не поломать

Да, хотел сразу попросить вас дополнить описанные ниже функции теми, которые используете вы. Желательно было бы еще и пояснения небольшие к ним приартачить в комментариях. Давайте делиться своими находками для общего блага всех владельцев блогов на Вордпрессе.

Файл functions.php замечателен тем, что по аналогии с плагинами он подгружается при генерации страниц вашего блога (фронтэнда и админки тоже). Поэтому его и используют для прописывания различных функций, фильтров или прочих хаков, которые останутся работоспособными даже после обновления Вордпресса.

Поэтому он и является наилучшим способом доработки функционала движка под ваши задачи, а не прямая правка системных файлов. Как я уже упомянул, при обновлении до новой версии все ваши изменения в файлах движка могут быть потерты и вам придется их восстанавливать по памяти, либо копаться в бэкапе для их восстановления.

Очень неприятное занятие, доложу я вам. Понимать, что вы это уже когда-то сделали, но сейчас не в состоянии вспомнить как. Выбешивает это дело по страшному. А вот с functions.php все шоколадно.

При любых апдейтах движка он останется неизменным, и даже если вы по стечению обстоятельств его испортите или утратите, то его совсем не сложно будет найти в бэкапе — это вам не десяток файлов движка отыскивать, которые вы и не помните как назывались.

Да и при смене темы оформления достаточно будет просто скопировать содержимое этого файлика (за исключением той части, которая относилась к старой теме) для сохранения нужного вам функционала.

Итак, про устройство тем WordPress читайте тут. Статья рассказывает про назначение шаблонов и логике их подключения.

Сегодняшняя же публикация станет ее логическим продолжением, ибо functions.php я там не рассматривал.

Если по каким-либо причинам в папке с вашей темой такого ценного объекта обнаружено не будет, то вам всего навсего нужно будет его там создать с помощью FileZilla, о которой я писал здесь. Открываете папку с темой:

и щелкаете в любом ее месте правой кнопкой мыши, после чего выбираете пункт «Создать новый файл» из контекстного меню:

Замечательно. Я не знаток языка PHP, но все функции, которые вы будете добавлять в этот файл, должны обрамляться конструкцией:

Так же эти самые теги PHP могут стоять в самом начале и в самом конце всего содержимого. Тогда все функции внутри них нужно будет вставлять без указанного обрамления. Я их буду приводить именно в таком виде (разоблаченном). Понятно?

Ну, что поделать. Я и сам всех этих тонкостей не знаю (равно как и этот язык программирования), а просто чувствую по опыту. Поэтому, если хотите все по науке, то придется прочитать эту статью Уважаемого Камы.

Категорически не советую вносить изменения в functions.php через админку Вордпресса (Внешний вид — Редактор — Функции темы).

В этом случае у вас не будет возможности отката назад при неудачном эксперименте и не будет подсветки синтаксиса языка PHP, которая при должном навыке сразу же поможет вам понять, что вы делаете что-то не так. Таким способом работать можно, если только у вас по каким-либо загадочным причинам отсутствует доступ к сайту по ФТП.

Для редактирования очень желательно использовать специализированный или же универсальный редактор с подсветкой кода, например, Notepad++, о котором речь шла в этой статье. Замечательная вещь и к тому же бесплатная.

Так, еще не стоит пихать новые функции внутрь уже имеющихся (внутрь фигурных скобок <>). Если сумлеваетесь, то новый блок вставляйте в самом низу, но перед закрывающим PHP тегом:

Однако, если код каждой функции вы отдельно обрамляете этими тегами, то очередной шедевр вставляйте после закрывающего тега последнего фрагмента. Понятно? Да мне и самому было бы не понятно с такого объяснения, но чего то сегодня я косноязычен (или как это сказать применительно к клавиатуре).

Как вставлять блоки РСЯ и Адсенс с помощью functions.php

Ну, понятно, что вставить блок с рекламой в любое место макета сайта можно будет с помощью шаблонов из папки с вашей темой оформления (single, index, arhive и других). Но как добавить блоки в текст самой статьи?

Например, после всех заголовков, как у меня, ибо после тега More, о котором мы говорили тут. Без functions.php нам в таком случае будет не обойтись.

Собственно, в первом случае никаких нюансов — вставляете рекламный код как есть и все должно работать. Другое дело РСЯ. В его коде имеют место быть одинарные кавычки, которые могут вызвать ошибки, если их не экранировать. Делается это с помощью простановки обратного слеша перед каждой из таких кавычек (их много).

Вообще, блоки Рся любопытны тем, что их внешний вид можно править прямо из кода, как это описано в статье про настройку контекстных объявлений рекламной сети Яндекса.

Для начала посмотрим, как можно использовать короткие коды и ручной метод вставки рекламного блока. Для этого добавляете в functions.php код:

Теперича в нужном месте статьи блога на WordPress достаточно будет вставить обозначенную чуть ниже конструкцию, чтобы на ее месте ваши читатели могли лицезреть блок РСЯ или Адсенса:

Хотите вставлять разные типы объявлений в разные статьи или их места? Создайте в functions.php еще одну такую же функцию, но используйте testovoe_nazvanie2 и adsense2. Все очень просто, но хлопотно, ибо вставлять в каждую статью короткий код утомительно. Нет проблем.

Для автоматической вставки блоков рекламы после внутренних заголовков в статье (у меня они обрамлены тегами H3) нужно дописать в наш замечательный файлик следующий код:

Обратите внимание, что h3 вы должны поменять на то, в чем у вас обрамляются подзаголовки статьи (не тот, что вверху, а те что внутри статьи). Кроме этого, цифра 3 ограничивает количество вставок. Т.е. если у меня будет 4 подзаголовка уровня h3 с публикации, то под последним реклама показывать не будет.

Хотите выводить блоки после тега More? Нет проблем. Вставляете

А вот функция от уже упомянутого мною Камы:


Как вы думаете, что она делает. Все очень просто. Отсчитывается нужное число символов (1800 в нашем примере) от начала статьи, и после очередного закрывающего тега абзаца P вставляется РСЯ и Адсенс реклама. Замечательно? Да еще как, особенно если учитывать, что таких функций в functions.php можно добавить сколько надо и для каждой последующей увеличивать отступ в символах, чтобы они равномерно распределялись по статье.

Ну, и до кучи, хотя это не имеет отношения к нашему герою. У меня на главной выводятся блоки после некоторых анонсов статьей. Это реализовано в index.php:

Сам же код рекламного блока живет в файле google_left_kat.php из папки с темой оформления. Сравните этот фрагмент index.php со своим и поймете, что на главной посты выводятся в цикле. Вот мы в него и вклиниваемся, отсчитывая с помощью $loopcounter количество анонсов, которые надо пропустить (2, 4, 7) до вставки рекламного блока. Сам блок позиционируется с помощью CSS.

Другие примеры использования functions.php

В статье про настройку отображения статей в категория Вордпресса я упоминал функцию для functions.php, которая позволяла менять количество выводимых в описании статьи символов при замене the_content на the_excerpt. Если не понятно о чем речь, то смотрите саму статью.

А так же приводил пример фрагмента, позволяющего вместо троеточия в конце использовать стандартную ссылку «Читать далее»:

Для моих длинных заголовков я там использовал ограничение количества слов (до 7) в тайтле с помощью замены the_excerpt на:

Ну, а в файл functions.php при этом нужно было добавить такой вот фрагмент:

Все замечательно работает.

Так же я активно использую и другие способы укорачивания своих слишком длинных Тайтлов. Например, для стандартной кнопки добавления в Твиттер пришлось использовать нечто подобное, ибо в противном случае пользователям приходилось самим обрезать отдаваемый в эту социалку текст и они мне на это пеняли.

Стандартный код расшаривания в Твиттер выглядел так:

Я заменил в нем the_title () на trim_title_chars (110, ‘. ‘), а в functions.php дописал:

Это ограничило длину отдаваемого в Твиттер тайтла 110 символами. Однако, мне больше понравился вариант задания ограничения в словах с помощью замены the_title () на trim_title_words (7, ‘. ‘) и прописывании в нашу палочку-выручалочку следующей функции:

В публикации Как в WordPress можно выводить последние записи из категории с миниатюрами я описывал функцию для этого файла, которая позволяет выдергивать первую картинку из любого поста в WordPress. Это может понадобиться при отсутствии миниатюр.

Результаты ее работы можете наблюдать внизу любой статьи (блок «Самое интересное»). Можно было бы, конечно же, и миниатюры создать, но мне так показалось проще.

Она будет выводить в админке и в футере вашего блога число совершенных запросов к базе данных при генерации данной страницы, время затраченное на этой действо и количество отъеденной при этом оперативной памяти.

В публикации под названием Оптимизация CSS в Page Speed я приводил пример функции, позволяющей отменить подключение файлов стилей, которые добавляют некоторые плагины в Вордпресс.

Сами стили я переносил в основной файл Style.css из папки с используемой темой, потом узнавал нужные регистры в плагинах и прописывал в functions.php примерно такой код:

Это позволит уменьшить количество запросов на подгрузку файлов и увеличить скорость загрузки блога. Немного, конечно, но птичка по зернышку клюет.

Тоже самое можно сделать и с файлами скриптов, которые подгружаются плагинами. Их можно объединить в один, а для всех остальных прописать:

  • Если вы хотите снизить вероятность взлома вашего блога на Вордпресс, а так же убрать все лишние мета теги из служебной области Html кода ваших страниц. Делается это опять же в нашем любимом файлике путем добавления такого вот фрагмента:
  • Лично мне еще не нравится панель AdminBar, назойливо маячащая вверху окна браузера. Удалить ее можно, добавив в functions.php:
  • Я не хочу, чтобы добавляемые в комментариях Урлы (типа https://ktonanovenkogo.ru) автоматически преобразовывались бы в активные гиперссылки. Ну, вот такая я редиска. Поэтому пришлось добавить такую строчку:
  • Еще в комментариях я часто проставляю ссылки на другие свои посты, которые движком автоматически закрываются в rel=»nofollow». Как бы мне это показалось не здорово и для исправления сложившейся ситуации в functions.php пришлось добавить:
  • Вроде как усложняет жизнь взломщикам отмена выдачи кода ошибки при авторизации. Это может служить обратной связью для ускорения взлома, но мы это дело пресечем:
  • Вроде бы это все, что удалось вспомнить. Жду от вас полезняшек в комментариях. Код вставлять лучше всего с помощью указанных над полем ввода тегов. Спасибо.

    Файл functions.php в WordPress

    WordPress теме имеется мощный файл известный как functions.php . С помощью этого файла можно добавлять уникальные функции для выполнения различных действий. Файл functions.php работает точно так же, как и плагин в пределах вашей темы. Таким образом, вы можете включать/отключать основные функции без редактирования любых других файлов. При правильном использовании, этот файла может творить чудеса для вашего сайта. Еще это очень удобно поскольку все задействованные функции будут находиться в одном месте. В этой статье рассмотрим несколько полезных функций для файла functions.php .

    1. Добавляем favicon к сайту WordPress.

    Недавно мы рассматривали эту тему о favicon в статье «Как установить favicon на WordPress». Метод, установки был стандартный, заключая в тегах нужный код. Этот метод более динамичный и простой нужно только вставить следующею функцию в файл functions.php .

    Favicon загружайте в корневой каталог там, где находится WordPress, но при желании можете изменить путь.

    2. Удаляем номер версии WordPress.

    Подобную информацию лучше скрывать, удалять так, как она может быть полезна для злоумышленников. Для того чтобы удалить номер версии из head, rss-канала и всех других местах, следует в файл function.php вставить код.

    3. Добавляем полезные ссылки в footer админ-панели.

    У каждого веб-мастера есть несколько ресурсов на которые он часто всего заходит. И чтобы ускорить доступ к ним можно вывести самые необходимые ресурсы в footer’e админ-панели. Для этого нужно вставить код в файл functions.php .

    Результат.

    4. Удаляем сообщение об ошибки на страницы входа.

    При вводе неправильного логина или пароля показывается сообщение об ошибки на странице входа в систему. Это та же информация, которую следует скрывать для безопасности. Вставляем код в файл functions.php после чего сообщение будет удалено останется лишь пустой блок. Не рекомендуется для сайта с несколькими авторами.

    Результат.

    5. Длина текста в анонсе статьи.

    По умолчанию длина текста в анонсах статьи 55 слов. Это не всегда нужная длина, но с помощью этой функции мы можем настроить длину по желанию. Число 100 отвечает за количество слов.

    Добавить комментарий