Функции wordpress


Эта статья была написана мной для «Доменных Имен». Ее опубликовали в третьем выпуске журнала. С разрешения руководителя департамента по информационной политике РуЦентра Андрея Воробьева, теперь, после выхода следующего номера журнала (раздавался на РИФ 2011), я могу опубликовать статью в этом блоге. Сразу предупреждаю — статья для новичков.

1. Введение

Ни для кого не секрет, что большинство современных сайтов создается при помощи CMS (систем управления контентов, content management system) или просто «движков». Что не удивительно, ведь CMS позволяют существенно сэкономить деньги и сократить время создания сайта. Движков существует великое множество, как платных, например Bitrix, так и бесплатных — Drupal, Joomla, WordPress.

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


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

2. Мифы о WordPress

Так что же за мифы окружают WordPress и почему они не соответствуют действительности? Основных мифов о WordPress три:

Миф 1. WordPress — тормознутый движок. «Я поставил WordPress. Вроде, все работает, но сайт еле-еле грузится!» А что, собственно, вы ожидали от хостинга за 50 рублей в месяц? Дело здесь вовсе не в WordPress. На таком хостинге не заработает ни Drupal, ни Joomla, ни любой другой более-менее серьезный движок. Вам нужен либо движок поскромнее, либо хостинг посерьезней. См также мой рассказ о том, как я занимался оптимизацией WordPress.

Миф 2. Еще WP дырявый, как дуршлаг. Большинство ошибок находят не в самом движке, а в его расширениях. И справедливости ради стоит отметить, что в расширениях далеко не самых популярных. Но даже если вам не посчастливится столкнуться с серьезной уязвимостью в WordPress, вы одним кликом сможете обновить движок и плагины до безопасной версии в панели управления. Если же выход обновления вдруг затянется, сообщество пользователей WordPress незамедлительно опубликует «заплатку». Так что о безопасности сайта, работающего на WordPress, стоит беспокоиться по крайней мере не сильнее, чем о безопасности сайта на Joomla.


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

Например, используя плагин Simple::Press Forum, можно добавить в WordPress раздел с форумом:

Форум на движке WordPress

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

В заключение к этому разделу хотелось бы привести немного цифр. По данным компании Acquia, WordPress является самой популярной CMS с открытым исходным кодом и используется на 8.5% всех сайтов в интернете. В то время, как Joomla и Drupal используются примерно на 1% сайтов каждый. Возникает вопрос. Если WordPress — это тормознутый дуршлаг, пригодный лишь для создания блогов, как он сумел завоевать такую популярность?

3. Базовые возможности WordPress

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


  • Мощную блог-платформу с поддержкой меток, рубрик, комментариев, ЧПУ, RSS и поиска по сайту. С помощью панели управления можно включить поддержку Gravatar и древовидных комментариев, настроить число комментариев, отображаемых на одной странице и многое другое;
  • Возможность создавать статические страницы, например «о сайте», «обратная связь» и так далее;
  • Мощный WYSIWYG текстовый редактор;
  • В последних версиях WordPress появился онлайн-редактор фотографий, поддерживающий функции «обрезать», «отразить», «повернуть» и «масштабировать». Не Photoshop, конечно, но вещь порою очень полезная;
  • В WordPress поддерживается автоматическое обновление как самого движка, так и установленных плагинов. Один клик мышкой, и движок самостоятельно скачает доступные обновления. Поиск и установка как плагинов, так и шаблонов также производится через панель управления;
  • Также в комплекте с движком идут два стандартных шаблона оформления.

4. Как, шаблонов всего два?!

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


  1. Установить понравившуюся тему через панель управления. К сожалению, в официальном каталоге вы найдете только темы на английском языке, так что в этом случае придется потратить несколько часов на перевод. Благо, это довольно просто;
  2. Найти сайты с уже переведенными темами. Сделать это можно с помощью любой поисковой системы. Учтите, что переводчики любят добавлять в переведенный шаблон ссылку на свой сайт с защитой от удаления. Без специальных навыков такую ссылку обычно непросто удалить;
  3. Найти веб-дизайнера, специализирующегося на создании шаблонов для WordPress. Стоимость изготовления уникального шаблона на заказ обычно составляет несколько сотен убитых енотов. Можно обратиться и в веб-студию, но там, скорее всего, заказ выйдет дороже при том же качестве исполнения;
  4. Еще один вариант — найти сайт с платными шаблонами. Стоимость шаблона в этом случае обычно меньше, чем изготовление на заказ, но следует убедиться, что шаблон переведен или по крайней мере быть готовым его перевести.

Обладая хорошими знаниями PHP, а также навыками в дизайне и верстке, изготовить собственный шаблон для WordPress несложно — достаточно посмотреть, как устроено несколько готовых шаблонов, после чего все должно стать ясно. Кроме того, на wordpress.org имеется подробное руководство по архитектуре движка, которое обязательно пригодится начинающим WordPress-дизайнерам.

5. И это все, что умеет WordPress?

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


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

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

Дополнение: А вот и отдельный пост.

CodeColorer — этот плагин добавляет в движок подсветку синтаксиса для всех популярных языков программирования, начиная с Java или Python и заканчивая Haskell.

Disqus Comment System — интегрирует ваш блог с популярной системой комментариев Disqus. С ее помощью ваши посетители смогут авторизоваться в блоге с помощью OpenID или учетной записи в Twitter, получать почтовые уведомления о новых сообщениях и многое другое. Кроме того, Disqus имеет собственную защиту от спама, причем весьма неплохую.

WP Super Cache — предназначен для кэширования часто посещаемых страниц. За счет кэширования повышается скорость загрузки страниц и снижается нагрузка на сервер.


Contact Form 7 — позволяет разместить на сайте весьма гибкую в настройке форму обратной связи.

Subscribe To Comments — встроенными средствами WordPress посетители могут следить за обсуждениями только с помощью RSS. Плагин Subscribe To Comments позволяет подписываться на обсуждения с помощью электронной почты. Разумеется, если вы используете Disqus, вам этот плагин не нужен.

TDO Mini Forms — довольно мощный плагин, позволяющий разместить на сайте форму для добавления посетителями новых сообщений в блоге. С помощью этого плагина можно построить сайт-сообщество или позволить посетителям присылать новости.

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

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

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


eax.me

WordPress является самой популярной бесплатной платформой для создания сайтов в Интернете. И его популярность WordPress заработал в основном благодаря тому, насколько легко с ним работать.

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

Функции wordpress

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

Зачем мне нужно знать, как работать с WordPress?

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

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

Порядок загрузки в WordPress

Итак, вы выбрали в браузере URL-адрес сайта WordPress и нажал ввод. Произошло разрешения имени домена, и Ваш браузер превратился на конкретный IP-адрес хостинг-сервера запрос на загрузку сайта.


Что будет дальше в ближайшие доли секунды, пока сайт не будет отображаться в окне браузера?

1. Скачать файл wp-config.php

В первую очередь, есть ссылка на основной конфигурации wp-config.php файл в корневой каталог на WordPress.

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

2. Скачать стандартные константы

После загрузки wp-config.php Вордпресс получает значения стандартных констант. Они включают в себя такие сведения, как местоположение директории загрузки (WP-содержание/), максимальный размер файла и все другие константы, которые изложены в wp-config.php.

3. Скачать файл advanced-cache.php

Если advanced-cache.php файл есть на сайте WordPress загружает его на данном этапе. Этот файл является так называемый «патчей» в терминологии WordPress плагины.

Функции wordpress

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

4. Скачать файл wp-content/db.php

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

Поэтому, если такой файл существует, он будет загружен на данном этапе.

5. Подключение к MySQL и базы данных


Теперь, WordPress имеет достаточно информации для соединения с MySQL сервером и подключение к указанному в базе данных wp-config.php или db.php .

Если по каким-то причинам, то WordPress не может подключиться к базе данных, Вы увидите на экране сообщение «ошибка установления подключения к базе данных» на белом фоне.

6. Загрузка файла object-cache.php или wp-includes/cache.php

Вордпресс сейчас буду загружать object-cache.php файл если он есть. Если нет, то он пытается скачать wp-includes/cache.php файл. Если нет, то следующий шаг.

7. Скачать файл wp-content/sunrise.php

Если сайт является частью сети Мультисайтов в WordPress, файл должен быть загружен wp-content/sunrise.php.

8. Загрузка библиотек локализации

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

9. Скачать Многоузловой плагины

Опять же, если веб-сайт сети WordPress, теперь будут загружены плагины Мультисайт.

Функции wordpress

10. Функция «muplugins_loaded»

Выполняет функции (или, в терминологии Вордпресс — действие) muplugins_loaded для сетевых плагинов WordPress Многоузлового.

11. Загрузить все плагины включены

Вордпресс сейчас буду загружать все остальные плагины активированы на сайте.

Список активированных плагинов хранится в базе в таблице wp_options, active_plugins поле.


Таким образом, во время фазы загрузки игнорирует все установлен, но не активен плагинов.

12. Скачать файл pluggable.php

Файл pluggable.php имеет функции, которые могут быть переопределены плагинов WordPress.

WordPress будет проверять, есть ли у вас определенные функции из файла pluggable.php некоторые другие активные плагины. Если нет, будет определена функция pluggable.php.

13. Функция «plugins_loaded»

Аналогично muplugins_loaded плагины WordPress Многоузлового, теперь функция выполняется plugins_loaded. Эта функция позволяет разработчикам привязать свои функции и выполнять их после загрузки всех активных плагинов WordPress.

14. Скачать Правила Переписать

Будут загружены переписать правила ссылок.

Другими словами, будет загружен SEO-дружественные ссылки, а не ссылки типа /?р=10467

15. Инициализировать $wp_query, $wp_rewrite, $wр

Теперь WordPress будет загружать следующие объекты:

  • $wp_query глобальной переменной, которая содержит класс WP_Query. Он говорит WordPress, что контент предлагается в традиционном формате запрос Вордпресс.
  • $wp_rewrite глобальной переменной, которая содержит класс WP_Rewrite. Включает в себя правила перезаписи и функциональности для переопределения URL-адресов при загрузке Контента.
  • в $WP в глобальной переменной, которая содержит класс РГ. Содержит функции, которые будет обрабатывать ваш запрос и загрузить основную очередь (основной запрос).

16. Функция «setup_theme»

Вордпресс выполняет функцию setup_theme на этапе перед загрузкой темы.

17. Скачать файл functions.php темы ребенок

Файл functions.php содержит набор функций и инструкции, которые относятся к каждой из тем в отдельности.

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

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

18. Скачать файл родительской темы functions.php

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

19. Функция «after_setup_theme»

After_setup_theme функция выполняется после WordPress решение о том, какие темы активны в данный момент, и загрузил его на functions.php файл.

Этот первый шаг применим к активной теме.

20. Установить текущий объект пользователя

Теперь WordPress загружает объект текущего пользователя. Это позволяет WordPress понять, какие запросы могут быть выполнены в будущем в соответствии с текущей роли пользователя и его привилегии.

21. Функция «инит»

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

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

22. Функция «widget_init»

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

23. Функция «РГ()»

Сейчас Вордпресс вызов функции WP() из файла wp-includes/functions.php.

Эта функция устанавливает глобальные переменные $РГ, $wp_query, $wp_the_query, а затем называет $РГ->главная.

24. Парсинг запросов

WP теперь имеет всю необходимую информацию для обработки запросов пользователей. Для начала идет проверка на рерайт-переписать правила.

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

25. Запросы

Если данный запрос контент не найден, Вордпресс определяет переменную is_404.

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

  • Будет выполнена WP_Query->get_posts()
  • Далее запустить DO_ACTION_REF_ARRAY функция ‘pre_get_posts’ на объект WP_Query.
  • Сейчас работает apply_filters зачистки запросов, и некоторые последние проверки.
  • Теперь загрузите самих записей (постов) из базы данных, применять фильтры и the_posts posts_results.

Этап выполнения запроса завершена и загружен генерирует WordPress записи.

26. Функция template_redirect

Функция Template_redirect выполняет только до WordPress определяет, какой шаблон для загрузки.

27. Скачать шаблон корма для RSS

Если запрашиваемое содержимое RSS-ленты, Вордпресс загружает соответствующий шаблон кормить.

28. Главная загрузить шаблон (тема)

Наконец-то!

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

Обычно все начинается с файла, который содержит основной цикл (цикл в WordPress).

29. Функция «выключения»

В самом конце перед завершением выполнения всех PHP в WordPress код выполняет последнюю функцию выключения.

На этом этапе работы с WordPress сделано и закончено.

30. Загрузки страницы в браузере

Все «подготовленные» PHP-код из WordPress передается для выполнения на веб-сервере.

Веб-сервер обрабатывает PHP-код и отправляет браузеру пользователя готовые HTML-код вместе с стилей и скриптов (CSS и JavaScript) для загрузки самой страницы.

Браузер обрабатывает эту страницу с помощью, полученной от веб-сервера в HTML, CSS и JavaScript, и результат вас увидеть (визуально) запрашиваемой страницы сайта.

Результаты

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

Теперь подумайте об этом!

Все эти 30 пунктов с момента, когда вы вводите в адресную строку браузера и загрузить случиться страницы в считанные миллисекунды! Фантастический, не так ли?

Источник: wpbeginner.com

vanzzo.net

Плагины против functions.php

И плагины, и функции темы (скрипты, содержащиеся в functions.php) могут расширять функционал вордпресса, но есть некоторые различия между ними, о которых мы уже говорили ранее:

  • Зона действия — плагины, обычно, работают на всем сайте, функции работают только когда тема активна.
  • Обновления — плагины, обычно, обновляются периодически. Функции темы, обычно, не обновляются, особенно те, которые мы сами добавили вручную.
  • Админка — плагины всегда показываются в админ-панели. Функции темы могут и не проявлять себя в админке, в зависимости от их функции и скриптов.

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

Примеры полезных функций тем

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

Например:

Как отключить уведомления об обновлениях

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

 add_action('admin_menu', create_function('$a', "remove_action('load-plugins.php', 'wp_update_plugins');")); add_filter('pre_option_update_plugins', create_function('$a', "return null;")); add_action('init', create_function('$a', "remove_action('init', 'wp_version_check');")); add_filter('pre_option_update_core', create_function('$a', "return null;"));

Дополнительные кнопки комментирования

Вдобавок к кнопкам администрирования комментариев (редактировать, удалить, отправить в спам) в админке, удобно иметь такие же кнопки на страницах сайта, чтобы заниматься модераторскими делами не заходя в админку. Вот простой способ добавить кнопки «Удалить» и «Пометить как спам», которые будут выводиться после каждого комментария, если вы авторизированы как администратор. Простым посетителям они не будут видны и доступны.

 function spam_delete_links($id) { global $id;if (current_user_can('edit_post')) { echo ' | <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&c='.$id.'">Удалить</a>'; echo ' | <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&dt=spam&c='. $id.'">Спам</a>'; }}

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

 <?php spam_delete_links(get_comment_ID()); ?>

И это все!

Шорткоды для сайта

Шорткоды вордпресс – это ссылки на часто используемый контент, такой как ссылки, картинки, заголовки. Например, вместо того, чтобы писать полную ссылку на главную страницу сайта, этот шорткод будет выглядеть как [home]. И везде, где он размещен в тексте, он будет заменен на ссылку. Шорткоды могут быть весьма значительны и выполнять разнообразные задачи.

Как и ожидается, функционал шорткодов будет добавляться в functions.php. В этом примере функция для преобразования [home] в ссылку на главную страницу сайта будет выглядеть так

 <?php function myHomePage() {return '<a href="https://supersite.ru/" >Ссылко!</a>';} add_shortcode('home', 'myHomePage'); ?>

И если вдруг нужно будет изменить ссылку везде, где она использовалась, достаточно просто исправить ее адрес в функции. Более подробно про шорткоды можно почитать тут https://codex.wordpress.org/Shortcode_API

Перемещение плагинов в functions.php

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

Создание плагинов из функций

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

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

 <?php /* Plugin Name: My Awesome New Plugin Plugin URI: https://example.com/plugins/awesome-new-plugin/ Description: Provides awesome new functionality for WordPress. Version: 1.0 Author: The Awesome Plugin Maker Author URI: https://example.com/ */ // разместите тут крутой код функции ?>

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

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

iwsm.ru

Что представляет собой файл функций в WordPress?

Файл функций, обычно известный как файл functions.php, является файлом темы WordPress. Он поставляется со всеми бесплатными и премиальными темами WordPress.

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

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

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

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

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

Сказав это, вот некоторые чрезвычайно полезные фичи для файла functions.php.

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

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

function zacompom_remove_version() {  return '';  }  add_filter('the_generator', 'zacompom_remove_version');

2. Добавляем свой логотип в пользовательской панели мониторинга

Хотите изменить логотип в область администрирования WordPress? Добавление пользовательского логотипа в панели управления является первым шагом в этом процессе.

Сначала вам нужно будет загрузить свой собственный логотип в папку изображений вашей темы с названием custom-logo.png. Убедитесь, что ваш пользовательский логотип имеет размер 16×16 пикселей.

После этого вы можете добавить этот код в файл функций вашей темы.

function zacompom_custom_logo() {  echo '  <style type="text/css">  #wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {  background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;  background-position: 0 0;  color:rgba(0, 0, 0, 0);  }  #wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {  background-position: 0 0;  }  </style>  ';  }  add_action('wp_before_admin_bar_render', 'zacompom_custom_logo');

3. Изменяем подвал в панели администратора WordPress

Подвал в области администрирования WordPress отображает сообщение «Спасибо вам за творчество с WordPress». Вы можете изменить его на все что захотите, добавив этот код.

function remove_footer_admin () {  echo '<p>Материал взят с сайта <a href="https://zacompom.ru.org" target="_blank">Zacompom.ru</a></p>';  }  add_filter('admin_footer_text', 'remove_footer_admin');

Не стесняйтесь изменять текст и ссылки, которые вы хотите добавить. Вот как это выглядит на моем сайте.

Функции wordpress

4. Добавляем пользовательские виджеты панели управления в WordPress.

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

add_action('wp_dashboard_setup', 'zacompom_custom_dashboard_widgets');    function zacompom_custom_dashboard_widgets() {  global $wp_meta_boxes;    wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');  }    function custom_dashboard_help() {  echo '<p>Здравствуйте! Нужна помощь по сайту на wordpress - <a href="mailto:info@zacompom.ru">обращайтесь</a>. Все мои услуги вы найдете <a href="https://zacompom.ru/services" target="_blank">здесь</a></p>';  }

Вот как это выглядит:

Функции wordpress

5. Изменение значение Gravatar по умолчанию в WordPress

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

add_filter( 'avatar_defaults', 'zacompom_new_gravatar' );  function zacompom_new_gravatar ($avatar_defaults) {  $myavatar = 'https://zacompom.ru/wp-content/themes/zacompom/images/avatar.png';  $avatar_defaults[$myavatar] = "Граватар по умолчанию";  return $avatar_defaults;  }

Теперь вы можете перейти на страницу настроек «Обсуждения» и выбрать свой аватар по умолчанию.

Функции wordpress

6. Динамическая дата в подвале WordPress

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

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

function zacompom_copyright() {  global $wpdb;  $copyright_dates = $wpdb->get_results("  SELECT  YEAR(min(post_date_gmt)) AS firstdate,  YEAR(max(post_date_gmt)) AS lastdate  FROM  $wpdb->posts  WHERE  post_status = 'publish'  ");  $output = '';  if($copyright_dates) {  $copyright = "© " . $copyright_dates[0]->firstdate;  if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {  $copyright .= '-' . $copyright_dates[0]->lastdate;  }  $output = $copyright;  }  return $output;  }

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

<?php echo zacompom_copyright(); ?>

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

7. Случайное изменение цвета фона в WordPress

Вы хотите случайно изменить цвет фона на своем сайте при каждом посещении или перезагрузке страницы? Вот как это легко сделать.

Сначала вам нужно добавить этот код в файл функций вашей темы.

function zacompom_bg() {   $rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');  $color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].  $rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];  echo $color;  }

Затем вам нужно будет отредактировать файл header.php в своей теме. Найдите тег <body> и добавьте следующую строку:

<body <?php body_class(); ?> style="background-color:<?php zacompom_bg();?>">

Функции wordpress

8. Обновление URL-адреса WordPress

Если ваша страница входа в WordPress продолжает обновляться или вы не можете получить доступ к области администрирования, вам необходимо обновить URL-адреса WordPress.

Один из способов сделать это — использовать файл wp-config.php. Однако, если вы это сделаете, вы не сможете установить правильный адрес на странице настроек. Поля URL-адреса и URL-адреса сайта WordPress будут заблокированы и неотредактированы.

Если вы хотите исправить это, вы должны добавить этот код в свой файл функций.

update_option( 'siteurl', 'https://zacompom.ru' );  update_option( 'home', 'https://zacompom.ru' );

Не забудьте заменить zacompom.ru на свое имя домена.

После входа в систему вы можете перейти в «Настройки» и установить там URL-адреса. После этого вы должны удалить код, добавленный в файл функций, в противном случае он будет продолжать обновлять эти URL-адреса при каждом обращении к вашему сайту.

9. Добавляем дополнительные размеры изображения

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

add_image_size( 'thumb-sidebar', 120, 120, true ); // Режим жесткой обрезки  add_image_size( 'thumb-homepage', 220, 180 ); // Режим мягкой обрезки  add_image_size( 'thumb-singlepost', 590, 9999 ); // Неограниченный режим высоты

Этот код создает три новых размера изображения разных размеров. Не стесняйтесь настраивать код в соответствии с вашими требованиями.

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

<?php the_post_thumbnail( 'thumb-homepage' ); ?>

10. Добавляем новые навигационные меню к теме

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

function zacompom_custom_new_menu() {   register_nav_menu('zacompom-custom-menu',__( 'Мое пользовательское меню' ));  }  add_action( 'init', 'zacompom_custom_new_menu' );

Теперь вы можете перейти в меню «Внешний вид», и вы увидите «Мое пользовательское меню» в качестве опции размещения темы.

Функции wordpress

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

<?php wp_nav_menu( array(    'theme_location' => 'zacompom-custom-menu',    'container_class' => 'custom-menu-class' ) );   ?>

11. Добавляем дополнительные поля в профиля автора

Вы хотите добавить дополнительные поля в профили автора в WordPress? Вы можете легко сделать это, добавив этот код в свой файл функций:

function zacompom_new_contactmethods( $contactmethods ) {  // Добавляем Twitter  $contactmethods['twitter'] = 'Twitter';  //Добавляем Facebook  $contactmethods['facebook'] = 'Facebook';    return $contactmethods;  }  add_filter('user_contactmethods','zacompom_new_contactmethods',10,1);

Этот код добавит поля Twitter и Facebook в профили пользователей в WordPress.

Функции wordpress

Теперь вы можете отобразить эти поля в шаблоне автора следующим образом:

<?php echo $curauth->twitter; ?>

12. Добавление виджета в боковую панель вашей темы

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

// Регистрируем виджет сайдбар  function custom_sidebars() {    	$args = array(  		'id' => 'custom_sidebar',  		'name' => __( 'Мой сайдбар', 'text_domain' ),  		'description' => __( 'Описание моего нового сайдбара', 'text_domain' ),  		'before_title' => '<h3 class="widget-title">',  		'after_title' => '</h3>',  		'before_widget' => '<aside id="%1$s" class="widget %2$s">',  		'after_widget' => '</aside>',  	);  	register_sidebar( $args );  }  add_action( 'widgets_init', 'custom_sidebars' );

Теперь вы можете посетить страницу Внешний вид — Виджеты и вы увидите новую пользовательскую область виджета. На моем сайте есть такие виджеты:

Функции wordpress

Чтобы отобразить этот виджет в вашей теме, добавьте этот код куда вам нужно в файл sidebar.php:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>  <!–-Информация о боковой панели по умолчанию идет здесь–->  <?php endif; ?>

13. Внедряем RSS-канал в подвал сайта

Вы видели блоги, которые добавляют свою рекламу в свои RSS-ленты под каждым сообщением. Вы можете легко справиться с этой простой функцией. Вставьте следующий код:

function zacompom_postrss($content) {  if(is_feed()){  $content = 'Этот пост написал Юрич '.$content.'Проверьте Zacompom.ru';  }  return $content;  }  add_filter('the_excerpt_rss', 'zacompom_postrss');  add_filter('the_content', 'zacompom_postrss');

14. Добавить миниатюры в RSS-ленту

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

function rss_post_thumbnail($content) {  global $post;  if(has_post_thumbnail($post->ID)) {  $content = '<p>' . get_the_post_thumbnail($post->ID) .  '</p>' . get_the_content();  }  return $content;  }  add_filter('the_excerpt_rss', 'rss_post_thumbnail');  add_filter('the_content_feed', 'rss_post_thumbnail');

15. Скрываем ошибки входа в WordPress

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

function zacompom_wordpress_errors(){   return 'Что-то не так!';  }  add_filter( 'login_errors', 'zacompom_wordpress_errors' );

Функции wordpress

16. Отключаем вход по электронной почте

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

remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );

17. Отключаем функцию поиска

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

function zacompom_filter_query( $query, $error = true ) {    if ( is_search() ) {  $query->is_search = false;  $query->query_vars[s] = false;  $query->query[s] = false;    // Ошибка  if ( $error == true )  $query->is_404 = true;  }  }    add_action( 'parse_query', 'zacompom_filter_query' );  add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

18. Задержка сообщений в RSS-ленте

Иногда в вашей статье может возникнуть грамматическая или орфографическая ошибка. Ошибка идет в прямом эфире и распространяется среди ваших подписчиков RSS-ленте. Если у вас есть подписка на электронную почту в блоге, то эти подписчики также ее получат.

Просто добавьте этот код в файл функций вашей темы.

function publish_later_on_feed($where) {  	global $wpdb;  	if ( is_feed() ) {  		// метка а WP-формате  		$now = gmdate('Y-m-d H:i:s');  		$wait = '10'; // число  		$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR  		$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";  	}  	return $where;  }    add_filter('posts_where', 'publish_later_on_feed');

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

19. Изменяем текст «Читать дальше» для анонса

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

function modify_read_more_link() {   return '<a class="more-link" href="' . get_permalink() . '">Сюда впишите свой текст</a>';  }  add_filter( 'the_content_more_link', 'modify_read_more_link' );

20. Отключаем RSS-ленту

Не всем веб-сайтам нужна RSS-лента. Если вы хотите отключить ее на своем сайте WordPress, добавьте этот код в файл функций вашей темы.

function zacompom_disable_feed() {  wp_die( __('Нет доступных каналов, пожалуйста, посетите наш <a href="'. get_bloginfo('url') .'">сайт</a>!') );  }    add_action('do_feed', 'zacompom_disable_feed', 1);  add_action('do_feed_rdf', 'zacompom_disable_feed', 1);  add_action('do_feed_rss', 'zacompom_disable_feed', 1);  add_action('do_feed_rss2', 'zacompom_disable_feed', 1);  add_action('do_feed_atom', 'zacompom_disable_feed', 1);

21. Изменяем длину анонса

WordPress ограничивает длину анонса до 55 слов. Если вам нужно это изменить, вы можете добавить этот код в свой файл функций.

function zacompom_excerpt_length($length) {  return 100; //тут выставите нужное число слов  }  add_filter('excerpt_length', 'zacompom_excerpt_length');

Измените 100 на количество слов, которые вы хотите показать в анонсе.

22. Добавляем нового администратора

Если вы забыли пароль WordPress и электронную почту, вы можете создать пользователя admin, добавив этот код в файл функций вашей темы с помощью FTP-клиента.

function zacompom_admin_account(){  $user = 'Логин';  $pass = 'Пароль';  $email = 'info@zacompom.ru'; //тут ваша почта  if ( !username_exists( $user ) && !email_exists( $email ) ) {  $user_id = wp_create_user( $user, $pass, $email );  $user = new WP_User( $user_id );  $user->set_role( 'administrator' );  } }  add_action('init','zacompom_admin_account');

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

23. Удаляем окно приветствия в панели инструментов

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

Функции wordpress

Вы можете легко скрыть это мета-окно, добавив этот код в свой файл функций.

remove_action('welcome_panel', 'wp_welcome_panel');

24. Показываем общее количество зарегистрированных пользователей

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

// Функция подсчета пользователей  function zacompom_user_count() {   $usercount = count_users();  $result = $usercount['total_users'];   return $result;   }   add_shortcode('user_count', 'zacompom_user_count');

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

25. Исключаем определенные категории из RSS-ленты

Вы хотите исключить определенные категории из своей RSS-ленты? Добавьте этот код в файл функций вашей темы.

function exclude_category($query) {  	if ( $query->is_feed ) {  		$query->set('cat', '-5, -2, -3');  	}  return $query;  }  add_filter('pre_get_posts', 'exclude_category');

26. Включаем выполнение шорткодов в текстовых виджетах

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

// Включение коротких кодов в текстовых виджетах  add_filter('widget_text','do_shortcode');

27. Добавляем классы css odd и even для комментариев

Возможно, вы видели темы WordPress, которые используя классы odd или even для комментариев. Это помогает пользователям визуализировать, где заканчивается один комментарий и начинается следующий.

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

function oddeven_post_class ( $classes ) {   global $current_class;   $classes[] = $current_class;   $current_class = ($current_class == 'odd') ? 'even' : 'odd';   return $classes;  }  add_filter ( 'post_class' , 'oddeven_post_class' );  global $current_class;  $current_class = 'odd';

Этот код просто добавляет класс odd или even в сообщения WordPress. Теперь вы можете добавить собственный стиль CSS, чтобы по-разному их отображать. Вот пример кода, который поможет вам начать работу.

.even {  background: #f0f8ff;   }     .odd {   background: #f4f4fb;  }

Конечный результат будет выглядеть примерно так:

Функции wordpress

28. Добавляем дополнительные типы файлов для загрузки

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

function zacompom_myme_types($mime_types){   $mime_types['svg'] = 'image/svg+xml'; //Добавляем файл с расширением .svg   $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Добавляем файл с расширением .psd   return $mime_types;  }  add_filter('upload_mimes', 'zacompom_myme_types', 1, 1);

Этот код позволяет загружать файлы SVG и PSD в WordPress. Вам понадобится Google, чтобы узнать mime для типов файлов, которые вы хотите разрешить загружать, а затем использовать их в коде.

29. Удаляем ссылки загружаемых изображений

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

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

function zacompom_imagelink_setup() {  	$image_set = get_option( 'image_default_link_type' );  	  	if ($image_set !== 'none') {  		update_option('image_default_link_type', 'none');  	}  }  add_action('admin_init', 'zacompom_imagelink_setup', 10);

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

Функции wordpress

30. Добавляем блок автора в запись

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

function zacompom_author_info_box( $content ) {    global $post;    // Обнаружить, если это один пост с автором сообщения  if ( is_single() && isset( $post->post_author ) ) {    // Получить имя автора   $display_name = get_the_author_meta( 'display_name', $post->post_author );    // Если отображаемое имя недоступно, используйте псевдоним как отображаемое имя  if ( empty( $display_name ) )  $display_name = get_the_author_meta( 'nickname', $post->post_author );    // Получить биографию или описание автора  $user_description = get_the_author_meta( 'user_description', $post->post_author );    // Получить URL сайта автора   $user_website = get_the_author_meta('url', $post->post_author);    // Получить ссылку на страницу архива  $user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));     if ( ! empty( $display_name ) )    $author_details = '<p class="author_name">Об авторе ' . $display_name . '</p>';    if ( ! empty( $user_description ) )    // Аватар автора и биография  $author_details .= '<p class="author_details">' . get_avatar( get_the_author_meta('user_email') , 90 ) . nl2br( $user_description ). '</p>';    $author_details .= '<p class="author_links"><a href="'. $user_posts .'">Посмотреть все статьи ' . $display_name . '</a>';     // Проверяем, имеет ли автор веб-сайт в своем профиле  if ( ! empty( $user_website ) ) {    // Выводим ссылку на сайт автора  $author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow">Сайт</a></p>';    } else {   // Если нет веб-сайта автора, то просто закрываем абзац  $author_details .= '</p>';  }    // Передаем всю эту информацию для публикации контента   $content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';  }  return $content;  }    // Добавляем нашу функцию в фильтр пост-контента   add_action( 'the_content', 'zacompom_author_info_box' );    // Разрешить HTML теги в разделе биографии автора  remove_filter('pre_user_description', 'wp_filter_kses');

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

.author_bio_section{  background: none repeat scroll 0 0 #F5F5F5;  padding: 15px;  border: 1px solid #ccc;  }    .author_name{  font-size:16px;  font-weight: bold;  }    .author_details img {  border: 1px solid #D8D8D8;  border-radius: 50%;  float: left;  margin: 0 10px 10px 0;  }

Вот как выглядит мой авторский блок:

Функции wordpress

31. Отключаем XML-RPC

XML-RPC — это метод, позволяющий сторонним приложениям общаться с вашим сайтом WordPress удаленно. Это может привести к проблемам безопасности и может быть использовано хакерами.

Просто добавьте этот код в свой файл функций, чтобы отключить XML-RPC в WordPress:

add_filter('xmlrpc_enabled', '__return_false');

32. Ссылка на запись у миниатюры поста

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

function zacompom_autolink_featured_images( $html, $post_id, $post_image_id ) {  If (! is_singular()) {   $html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';  return $html;  } else {   return $html;  }  }  add_filter( 'post_thumbnail_html', 'zacompom_autolink_featured_images', 10, 3 );

Это все на данный момент.

Я надеюсь, что эта статья помогла вам изучить новые полезные трюки для файла functions.php в WordPress.

На этом буду прощаться с вами — до скорых встреч!

www.internet-technologies.ru


You May Also Like

About the Author: admind

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.