Шорткоди вперше з’явилися в WordPress API версії 2.5. З тих пір було випущено велику кількість плагінів, які використовують шорткоди для того, щоб вміщувати довільну інформацію в створювані сторінки або публікації.

Ядро WordPress саме по собі підтримує 5 видів шорткодов, але цього часто буває недостатньо. Тому з кожним днем веб-розробники створюють все більше нових плагінів, в кожному з яких вводяться в обіг нові шорткоди. У цій статті я навчу вас створювати свої шорткоди для WordPress.

Шорткоди дозволяють використовувати різні функції або стилі на сторінках WordPress без необхідності написання коду для кожного випадку. Перерахую шорткоди, підтримувані ядром WordPress:

  • ;
  • ;
  • ;
  • ;
  • .

Детальніше про шорткодах

Програмний інтерфейс шорткодов (Shortcode API) являє собою простий набір функцій для створення макросів, які можна використовувати при створенні публікацій.

Таким чином, розробник створив новий вид контенту, може дати користувачеві можливість розмістити цей контент в довільному місці сайту.

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

Найпростіша форма використання шорткода виглядає так:

[advertisement]

Програмний інтерфейс шорткодов дозволяє створювати шорткоди з підтримкою атрибутів. Звернення до таких шорткодам може виглядати складніше:

[advertisement height=»100″ width=»100″]

Це – реклама!

[/advertisement]

Два етапи створення шорткода

  • Написання первинного обробника виведення шорткода;
  • Реєстрація обробника в WordPress API.

Ці два кроки є абсолютно необхідними для створення найпростішого шорткода. Якщо ваша функція досить складна, то до цих двох кроків можуть додатися й інші.

У моїй попередній статті ми створили простий плагін для показу рекламних банерів. Тепер спробуємо розробити шорткод для банера.

Первинний обробник виведення шорткода

Ця функція буде виконувати всю роботу по створенню вмісту, яке замінить наш шорткод при показі сторінки або публікації. Відкрийте файл functions.php і створіть функцію:

function advertisement_1(){
// Який-небудь код
}

Обробка атрибутів

Обробники шорткодов в цілому нагадують фільтри WordPress: це функції приймають параметри (атрибути) і повертають результат (контент шорткода). Тому додамо в функцію нашого шорткода параметри:

function advertisement_1($atts){
// Який-небудь код
}

Це найбільш часто використовуваний параметр обробника виведення шорткода: змінна $atts являє собою асоціативний масив з атрибутами або порожній рядок, якщо атрибути не були задані.

Є ще два можливих параметр цієї функції:

  • $content – якщо шорткод використовувався в обрамляє формі, то тут буде внутрішній вміст шорткода;
  • $tag – текст шорткода без квадратних дужок і всього іншого. Корисний, якщо ваша функція працює з кількома тегами.

Вміст шорткода

Для прикладу ми будемо виводити той же вміст, що і виводили в спеціальній «рекламної» області нашої теми у минулій статті.

У нас є два типи рекламних банерів: 743 на 82 пікселя і на 268 268 пікселів:

За вилучення цих параметрів та їх впровадження в шаблон теми у нашому плагіні відповідає наступний код:

Все, що нам тепер потрібно виконати цей код безпосередньо в функції відображення шорткода і повернути результат. Скористаємося змінної $output для повернення банера розміром 743 на 82 пікселя:

function advertisement_1 ($atts) {
$options = get_option( ‘theme_settings’ );
$output =’
‘. $options[‘banner1’] . ‘
‘;
return $output;
}

Зауваження: в PHP версії 5.3 і вище ми можемо створювати анонімні функції, але в даному випадку цього робити не рекомендується. Нам потрібна іменована функція для того, щоб WordPress міг її видалити в процесі скасування реєстрації плагіна.

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

Реєстрація зворотного дзвінка

Тепер ми повинні зареєструвати написану нами функцію в WordPress, щоб асоціювати її з шорткодом. Це робиться за допомогою функції add_shortcode(). Ця функція застосовується так:

add_shortcode(‘advertisement_1’, ‘advertisement_1’);

Ім’я шорткода у нашому прикладі збігається з ім’ям обробної його висновок функції. Зрозуміло, дотримуватися такого іменування необов’язково.

Отже, тепер ви можете використовувати шорткод [advertizement_1], щоб відобразити банер розміром 743 на 82 пікселя в будь-якому місці вашої сторінки або поста:

Створення шорткодов для спрощення роботи з сайтом на базі WordPress

Відображення другого банера

Тепер застосуємо всі перераховані вище дії до другого банеру, який має розмір 268 на 268 пікселів. У нас повинен вийти такий код:

function advertisement_2 ($atts) {
$options = get_option( ‘theme_settings’ );
$output =’
‘. $options[‘banner2’] . ‘
‘;
return $output;
}
add_shortcode(‘advertisement_2’, ‘advertisement_2’);

Зверніть увагу на відмінності в іменах функції і шорткода. Крім того, на цей раз ми використовували опцію banner2, щоб отримати адресу другого банера з налаштувань плагіна:

Створення шорткодов для спрощення роботи з сайтом на базі WordPress

Підведення підсумків

Вітаю! Ви тільки що навчилися доповнювати власні плагіни і теми шорткодами. Сподіваюся, ця стаття стане вам у пригоді.
Якщо хочете щось запитати або висловитися по темі нашого уроку, можете скористатися формою для коментування.

Переклад статті «Create Custom WordPress Shortcode and Make Your Site User-Friendly» був підготовлений дружною командою проекту Сайтостроение від А до Я.