Що таке WordPress Theme Customizer API та його можливості

pic-2

WordPress Theme Customizer – це дуже потужна річ, яка використовується для кастомізації (тобто прилаштування під потреби клієнта) тем на базі Вордпресу. Стандартні теми: такі як Twenty Fifteen та більшість преміум-тем містять великий вибір кастомних налаштувань, які клієнт може сам змінити в залежності від своїх потреб та уподобань.

Отож, чим же ж такий корисний WordPress Theme Customizer? Він дає можливість клієнту самому змінити зовнішній вигляд теми ( завантажити лого, фавікон, змінити колір хідера, шрифту, змінити картинку фону, яку він використовує) без допомоги програміста, не написавши жодного рядка коду і т.д. Усе це за вас зробить Customizer, вам потрібно лише вибрати відповідні налаштування в меню Вигляд –> Налаштувати ( Customize) .

До того ж завдяки використанню скриптів на JQUERY та технології AJAX (вбудовані в ядро Вордпресу) користувач може бачити зміни, які він робить, в режимі реального часу, проте на самому сайті вони вступлять в силу лише після збереження та оприлюднення. Багато розробників вважає, що оскільки  WordPress Customizer — це backbone-додаток, який працює з WP REST API, то його можливості майже безмежні.

Ось як виглядає Theme Customizer у стандартній темі Twenty Fifteen.

%d0%ba%d0%b0%d1%81%d1%82%d0%be%d0%bc-0

Для налаштування тут доступні такі секції з вланими параметрами налаштувань ( Ідентичність сайту, Кольори, Зображення заголовку, Фонове зображення, Меню, Віджети).

Як знайти в адмінці Theme Customizer (Налаштування теми)

Для цього ми знаходимо в пункті адмін-меню Вигляд –> Налаштувати ( Customize).

%d0%ba%d0%b0%d1%81%d1%82%d0%be%d0%bc-1

Натиснувши, бачимо доступні для налаштування секції ( в нашій темі, на відміну від Twenty Fifteen  їх лиш дві – це Ідентичність сайту та Меню).

%d0%ba%d0%b0%d1%81%d1%82%d0%be%d0%bc-2

Як додати можливість завантаження логотипу через адмін-меню у свою власну тему

Звісно, дізнавшись про усі переваги кастомайзера, у розробника може виникнути потреба у своїй власні темі додати елементи кастомізації (налаштування) для використання майбутніми користувачами.

Починаючи з версії Вордпресу 4.5 – з”явилась автоматична  підтримка Theme Logo (завдяки надзвичайно корисному хукові add_theme_support ). Проте wordpress custom logo (логотип) має стандартну розмітку, тобто лінк – це custom-logo-link , а сама картинка – це custom-logo клас. Для можливості заміни логотипу через адмінку необхідно змінити ці класи. Для прикладу, у Бутстрапі  http://getbootstrap.com/components/#navbar-brand-image, де ми очікуємо в місці логотипу .navbar-brand.

Custom logo у Вордпрес

  • Щоб додати лого у панель налаштувань, помістіть цей код у ваш файл function.php
 function theme_prefix_setup() {
 add_theme_support( 'custom-logo', array(
 'height' => 100, // 
 'width' => 248,
 'flex-height' => true,
'flex-width' => true,
 'header-text' => array( 'site-title', 'site-description' ),
 ) );
}

Зауважте, що ми створюємо функцію theme_prefix_setup(), яка за допомогою хука add_theme_support додає потрібне значення, у нас це ідентифікатор ‘custom-logo’. А параметри height та width задають вихідні розміри для обраного лого. Тобто, можна буде обітнути картинку до заданих розмірів.

  • Для виведення лого використовуємо наступне:
function theme_prefix_the_custom_logo() {
 
 if ( function_exists( 'the_custom_logo' ) ) {
 the_custom_logo();
 }

}

Тобто виклик функції theme_prefix_the_custom_logo() виводить значення лого.

  • Також задаємо такий фільтр для зміни custom-logo-link  та  custom-logo, які є валідними для Вордпресу на наш клас логотипу та лінку для логотипу.
add_filter('get_custom_logo','change_logo_class');
 
 
function change_logo_class($html)
{
 $html = str_replace('class="custom-logo"', 'your-custom-class', $html);
 $html = str_replace('class="custom-logo-link"', 'your-custom-class', $html);
 return $html;
}
  • Насамкінець для виведення нашого логотипу у потрібному місці шаблону, зазвичай це header відображає, вставляємо у файл header.php в потрібному місці такий код.
<div id="image" class="custom-image"> 

<?php theme_prefix_the_custom_logo(); ?> <!--У мене це клас custom-image.-->
 

</div>

Якщо все зробили правильно, то після обрання та збереження логотипу він з”явиться у відповідному місці, як на цьому фото.

%d0%bb%d0%be%d0%b3%d0%be-%d0%b7%d0%b0%d0%b2%d0%b0%d0%bd%d1%82%d0%b0%d0%b6%d0%b5%d0%bd%d0%be

І наостанок, якщо лого невелике – то все добое, але, якщо ви виберете для завантаження картинку великого розміру, до прикладу 500 на 500 пікселів, то може вийти ось такий небажаний результат, як на фото.

%d0%ba%d0%b0%d1%81%d1%82%d0%be%d0%bc-3

Щоб цього уникнути – у файлі style.css – прописуємо вихідні розміри для нашого лого. Для цього при інспектуванні шукаємо селектор, який відповідає за його вигляд. У мене це <div> img , тоді прописуємо там бажаний розмір за допомогою параметрів max-height i max-width. До прикладу:

img {
 border:0;
 -ms-interpolation-mode:bicubic;
 vertical-align:middle;
 max-height: 86px;
 max-width: 100px;
 display: inline-block;
}

Тепер картинка мило зменшується до потрібного розміру, зберігаючи відповідні пропорції.

%d0%ba%d0%b0%d1%81%d1%82%d0%be%d0%bc-4

П. С. Якщо бажаєте дізнатись детальніше про роботу з кастомайзером, то читайте: https://codex.wordpress.org/Theme_Customization_API

Якщо хочете прочитати про завантаження логотипу, ось джерело: https://codex.wordpress.org/Theme_Logo

Залишити відповідь