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

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

Давайте відразу покажу живі приклади, щоб було зрозуміліше, про що йде мова. Ось парочка посилань на мої модулі для DLE: LinkEnso PRO, TagFace і CatFace.

Що спільного між цими трьома різними сторінками? Крім того, зрозуміло, що там йде мова про модулях і DLE, на всіх цих сторінках є ось такий чудовий блок з картинками і посиланнями:

Цей блок являє собою не що інше, як звичайний html при перегляді вихідного коду, і нічим не відрізняється від простого вмісту вставленого при написанні поста. Все так і є, за винятком того, що виводиться все це добро за допомогою спеціального коду, який я сам придумав і вставив в пост в зручне місце. І щоб мені щось виправити або додати в цей блок, мені треба відредагувати тільки одну функцію у файлі functions.php.

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

Пишемо функцію і створюємо свій шорткод у WordPress

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

/*** Виведення списку модулів в будь-якому місці поста ***/
function my_modules() {
return

Команда АлаичЪ\’а трудиться не покладаючи рук і ось що у нас є для вас:
SiteMap
CatFace
SNVote Free
SNVote PRO
LinkEnso Free
LinkEnso PRO
TagFace

;
}
add_shortcode(‘DLEmod’, ‘my_modules’);

/*** Виведення списку модулів в будь-якому місці поста ***/
function my_modules() {
return’

Команда АлаичЪ\’а трудиться не покладаючи рук і ось що у нас є для вас:
SiteMap
CatFace
SNVote Free
SNVote PRO
LinkEnso Free
LinkEnso PRO
TagFace

‘;
}
add_shortcode(‘DLEmod’, ‘my_modules’);

Трохи розберемо те, що написано. Для когось це абсолютно незрозуміла абракадабра 🙂

  • my_modules – це назва функції, я його придумав сам, можете використовувати тут будь-яке інше назву, чого душа забажає.
  • return ‘ … ‘; – власне html контент, який ми хочемо вивести в пості на місці шорткода, тобто наш блок. Важливо знати, що якщо де-то в вашому контенті всередині return будуть зустрічатися апострофи, як у мене «АлаичЪ\’а», то їх треба екранувати зворотним слешем, у прикладі це видно.
  • add_shortcode(‘DLEmod’, ‘my_modules’); – це функція, яка створить для нас шорткод. Тут використовується WordPress Shortcode API, що містить набір функцій для роботи з регулярками і не тільки…коротше, це для вас не важливо. Загалом, використання цієї команди створить для нас шорткод з назвою [ DLEmod ] (без пробілів між назвою і дужками) і буде виводити на його місці вміст функції my_modules.

В моєму прикладі наведено найпростіший випадок, без використання якої-небудь динаміки, але при бажанні можна використовувати будь-який сценарій на php. Якщо вам це цікаво, можете нагуглити, я просто хотів розповісти про можливості трохи полегшити собі життя.

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

Користуйтеся на здоров’я, пишіть коментарі і задавайте питання. Спасибі за увагу!

З повагою, Олександр Алаєв