студия занимательная МИХАЛИКА
! Михалика - запросто с WordPress:
доступная ручная работа по правилам оптимального интернет(а)
Здравствуйте !

издатель:   в теме: В теме: Без плагинов
студия занимательная МИХАЛИКА

Создаём плагин — добавочный файл функций — my-functions.php

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

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

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

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

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


 

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

 

 

 

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

 

 

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

 

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

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

 

 

В чём выгода?

 

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

 

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

 

И к тому же:

 

 

 

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

 

 

 

 

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

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

 

 

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

 

 

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

 

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

 

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

 

 

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

1 — подгружается позже, спрашивается, почему не перенести туда, где обработка кода выполняется первичнее, а, соответственно, заданные админом поправки параметров ядра WP прочитаются быстрее и обработаются на соответствующем же этапе запуска сайта?

 

2 — пресловутая целесообразность и логичная организация функционала сайта.

 

3 — удобства, что не немаловажно!

 

 

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

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

 

 

 

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

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

Как-то так вот-с)

 

 

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

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

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

…подписывайтесь…

 


подписка feedburner МИГ подписки - ВРЕМЯ знаний!!


!..подписываясь на обновления mihalica.ru
...расстаёмся с невежеством..!


 

 

файл функций php

 

как создать плагин дополнительного файла functions.php

 

 

 

Рассматриваемый плагин, конечно же, простенькое решение, но и изучение должно стартовать от азов!

Тем паче, для достижения взятых в статье целей, никаких мощных плагинов и не нужно!

 

 

 

Итак:

 

Заходим в панель управления хостигом (или средствами FTP) открываем файловый менеджер.

Открываем папку plugins и в ней создаём ещё одну директорию (папку для файлов нашего плагина). Имя абсолютно любое, на латинице. У меня в качестве примера имя «test».

Обратите внимание, что имя плагина в админке будет таким, которое прописано в информационном заголовке Plugin Name: test (см. комментарии).

 

 

Открываем созданную папку и в ней создаём основной файл плагина:

 

…с названием, скажем my-functions.php и занесём в его тело такие строки (и имя файла может быть абсолютно любым)

 

<?php
/*
Plugin Name: test
Plugin URI: http://домен
Description: помощь в РАБОТЕ в файлом функций темы - my-functions.php
Version: 0.1
Author: Y
Author URI: http://домен
License: Условия работы и описание плагина.
*/
// место кода
?>

 

 

Строки в комментарии — информация о плагине, которая появится в админпанели (меню плагины).

 

 

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

 

В качестве экса, можете его на время активировать — но ничего не произойдёт, плагин пока холостой.

 

 

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

 

 

 

Теперь нас интересует

 

 

прописка кода в добавочный файл функций

 

 

 

 

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

 

 

Код прописывается по аналогии с файлом функций: сразу после информации о плагине или перед закрывающим ?> (а вообще, как-то стоит разграничить циклы функций, ясности для…)

 

 

/** Удаление элементов (ссылок) WP из тулбара - перенос плагин **/
add_action('add_admin_bar_menus', function(){
remove_action( 'admin_bar_menu', 'wp_admin_bar_wp_menu', 10 ); // WordPress ссылки (WordPress лого - слева)
remove_action('admin_bar_menu', 'wp_admin_bar_search_menu', 4 ); // удаляем поиск
remove_action('admin_bar_menu', 'wp_admin_bar_customize_menu', 40); // удаляем ссылку "настроить тему"
});
/** Фин удаление элементов (ссылок) WP из тулбара **/

 

 

Теперь эти коррекции параметров ядра, будут отрабатываться плагином!

 

 

 

Ну и… — вот, если кому интересно, небольшая подборка кода адаптации шапки сайта wp_htad

— ибо и его целесообразнее поместить в новый плагин — в комментариях всё расписано.

 

 

Однако приглядитесь внимательнее, нет ли каких-то строк (параметров) уже в вашем functions.php — дублировать не нужно, да и может быть конфликт с задачами плагина!

 

 

/** АДАПТАЦИЯ ШАПКИ САЙТА ПАГИНАЦИЯ ВЫБРАТЬ **/
function my_remove_prev_link( $data ) 
{
return false;
}
add_filter( 'aioseop_prev_link', 'my_remove_prev_link' ); // убр. навиг плагин All In One SEO Pack
add_filter( 'aioseop_next_link', 'my_remove_prev_link' ); // убр. навиг плагин All In One SEO Pack
/** АДАПТАЦИЯ ШАПКИ САЙТА ПАГИНАЦИЯ ВЫБРАТЬ **/

 

 

 

/** АДАПТАЦИЯ ШАПКИ САЙТА wp_htad **/
remove_action( 'wp_head', 'feed_links_extra', 3 ); // откл доп фид лент
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'rsd_link' ); // откл доп фид лент
remove_action( 'wp_head', 'wlwmanifest_link' ); // ссылки главную страницу, первый пост, следующий, предыдущий
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); // ссылки главную страницу, первый пост, следующий, предыдущий
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); // Убираем связанные ссылки
remove_action( 'wp_head', 'wp_generator' ); // запрет показа версии вордпресс
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 ); // Короткая ссылка, ссылка без ЧПУ
//add_filter( 'show_admin_bar', '__return_false' ); // запрет админбара
/** ФИН АДАПТАЦИЯ ШАПКИ САЙТА**/

 

 

 

В следующих статьях будем расширять возможности собственного плагина…

А пока, кому не терпится:

 

 

 

как подключить в плагине собственные стили

 

 

 

 

Чтобы подключить отработку собственных стилей плагина (т.е my-style.css) — добавите такой код в созданный файл:

 

 

/** Подключение стилей **/
function my_scripts_styles() {
wp_register_style( 'custom-style', plugins_url( '/test-style.css', __FILE__ ), array(), '28052015', 'all');
wp_enqueue_style('custom-style'); //комментарий
}
add_action( 'wp_enqueue_scripts', 'my_scripts_styles' );
/** Подключение стилей **/

 

 

Останется лишь создать css файл стилей, добавить нужные селекторы… заменить имя css-файла на свои в показанном выше коде… и готово дело!

 

 

Но !! я бегу вперёд…

 

Не забывайте подписываться и — многое станет ясным !! ))

 

 

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

 

 


подписка feedburner МИГ подписки - ВРЕМЯ знаний!!

 

 


На этом занавес представления опускается…

 

 

А вот кстати и полезное кино из сериала «без плагинов» — посмотрите, подумайте, стоит ли предложенный в видео код оставлять в файле функций??

 

 


Если что-то не ясно, спрашивайте. Помогу… в чём дюжу.
Вместе мы многое сможем! Берегите себя и свой век - mihalica.ru


Нажатия на кнопочки определяют Ваше высокое гражданское сознание
Удачи в работе и творчестве..!


меточная навигация:


Комментарии © 0 к статье: Создаём плагин — добавочный файл функций — my-functions.php

Поделитесь соображениями: Ваши мысли очень важны! $ правила комментирования ©

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