Чому шорткоди WordPress можуть бути такими корисними
WordPress - одна з найпоширеніших у світі систем управління контентом. Незліченні плагіни допомогли колишньому програмному забезпеченню для ведення блогів розробити величезний спектр функцій, які можна використовувати для реалізації найрізноманітніших веб-проектів. Однак WordPress протягом багатьох років залишається вірним одному: Це система, якою можуть користуватися блогери, редактори та інші копірайтери без будь-яких знань HTML і CSS, що робить її швидким і нескладним рішенням для поширення контенту у Всесвітній павутині.
Тож якщо ви хочете зробити свої перші кроки як веб-автор, WordPress - ідеальний вибір. У 2008 році розробники WordPress також представили функцію під назвою шорткоди, яка дозволяє легко додавати динамічні елементи до ваших редакційних постів.
Що таке шорткод?
Так звані шорткоди, які з'явилися в WordPress версії 2.5, - це ярлики, які можна розміщувати в текстах і які пов'язані з PHP-кодом. Вони зберігаються або у файлі functions.php, або в окремому файлі .php, який інтегрується у файл functions.php. Якщо викликається сторінка з шорткодом, WordPress забезпечує виконання та інтерпретацію відповідного скрипту. Таким чином, відвідувач бачить вміст, згенерований функцією PHP, а не код. Строго кажучи, шорткод діє як заповнювач, наприклад, для простих елементів, таких як уривок тексту, або для динамічних типів контенту, таких як спливаючі вікна або галерея зображень.
Впровадження шорткодів у WordPress не є складним завданням: Вони вставляються безпосередньо в редакторі у відповідному місці публікації. Щоб WordPress розпізнавав шорткоди як такі, їх беруть у квадратні дужки [ ]. Наприклад, шорткод має вигляд [current-posts]. У поєднанні з відповідною функцією PHP цей код відображає інші нещодавно опубліковані пости у вибраній позиції. Для того, щоб отримати доступ до останніх публікацій, скористайтеся командою Шорткоди WordPress також може бути заданий за допомогою додаткових параметрів. Наприклад, щоб обмежити відображення останніх опублікованих дописів п'ятьма, щойно використаний шорткод можна розширити наступним чином: [current-posts posts="5″].
Чому шорткоди WordPress можуть бути такими корисними
Два аспекти роблять шорткоди в WordPress такими практичними: по-перше, навіть користувачі, які не знають JavaScript або CSS, можуть додати динамічності своєму веб-проекту. Навіть мову сценаріїв PHP, яка є елементарною для шорткодів, не обов'язково опановувати, оскільки різні шорткоди, включно з відповідними скриптами, вже доступні в WordPress за замовчуванням. Вони чітко перераховані на офіційній домашній сторінці. Там же ви знайдете інструкції про те, як використовувати відповідні Розблокувати короткий номер і можуть ними користуватися. Крім того, багато користувачів WordPress роблять свої власні шорткоди WordPress доступними безкоштовно на різних платформах, таких як SNIPPLR. Багато плагінів і шаблонів також пропонують власні шорткоди. Таким чином, вам потрібно програмувати самостійно, тільки якщо ви хочете змінити існуючий скрипт або вам потрібен абсолютно новий скрипт.
Другою важливою перевагою є те, що Шорткоди - це економія часуЯкщо, наприклад, ви неодноразово використовуєте певний фрагмент тексту, логотип або інший елемент у своїх статтях, розміщення відповідним чином запрограмованого шорткоду заощадить вам величезну кількість часу. Якщо згодом ви захочете щось змінити в цьому елементі, вам не доведеться робити це окремо для кожної статті. Ви просто адаптуєте PHP-код, і зміни будуть застосовані до всіх сторінок вашого WordPress-проекту, які містять шорткод.
Як створювати власні шорткоди в WordPress
Вже стало зрозуміло, що ядром шорткоду є PHP-скрипт, який виконується, щойно WordPress зустрічає попередньо визначений шорткод. Однак у наступних розділах мова піде не про те, як запрограмувати такий скрипт, оскільки це означатиме базовий курс програмування на PHP, який відведе вас від теми. Натомість у наступних розділах ми покажемо, як інтегрувати шорткоди в WordPress, використовувати їх у вашому проекті та деактивувати їх знову. Ви можете додати відповідний PHP-код до файлу functions.php у каталозі теми, яку ви використовуєте, або до окремого PHP-файлу, який ви інтегруєте відповідним чином. Вам слід створити дочірню тему, щоб ваші власні шорткоди не зникли при наступному оновленні теми. Це можна зробити за кілька простих кроків, як показано в інструкціях на форумі підтримки WordPress.
Створення функції зворотного виклику
Функція PHP, яка виконується, як тільки WordPress реєструє шорткод, є так званою функцією зворотного виклику. Як така, вона передається іншій функції як параметр і викликається за певних умов із заданими параметрами. У наступному прикладі функція шукає в базі даних і генерує посилання на останній пост для шорткоду [current-posts]:
function current_posts_function() {
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => 1));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string = '<a href="/uk/'.get_permalink().'/">'.get_the_title().</a>';
endif]; endif]; endif]; endif]; endif]
endif;
wp_reset_query();
return $return_string;
}
Текст, який має замінити шорткод, знаходиться у змінній $return_string (PHP ідентифікує всі змінні за допомогою $). Функція PHP (current_posts_function) повертає цю змінну. Якщо ви випадково використаєте замість неї команду echo, елемент, реалізований через шорткод, несподівано з'явиться перед реальним вмістом.
Введення шорткоду в WordPress
Ви повинні вказати WordPress, що створена вами функція є шорткодом, який має виконуватися автоматично, коли сторінка, що викликається, містить шорткод [current-posts]. Для цього додайте наступний код до вашого PHP-файлу:
add_shortcode('current-posts', 'current_posts_function');
Таким чином, ви визначили назву шорткоду [current-posts], який ви будете використовувати пізніше в редакторі, і функцію current_posts_function(), яка буде використовуватися. Щоб уникнути конфліктів між різними шорткодами WordPress, важливо вибрати унікальну назву.
Визначте параметризовані та функціональні шорткоди
Щоб зробити шорткод WordPress ще більш гнучким, ви можете додати додаткові параметри. У прикладі, який ми розглянули, має сенс вказати в шорткоді точну кількість постів, які мають бути відображені. Для цього вам знадобляться дві додаткові функції: По-перше, функція shortcode_atts(), яка об'єднує атрибути шорткоду, створені користувачем, з нативними атрибутами і автоматично вставляє необхідні значення за замовчуванням. По-друге, функція PHP extract(), необхідна для вилучення атрибутів шорткоду. У випадку, якщо поле аргументу залишається порожнім, слід вказати значення за замовчуванням 1 ('posts' => 1):
function current_posts_function($atts){
extract(shortcode_atts(array(
'posts' => 1,
), $atts));
$return_string = '<ul>';
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string .='<li><ahref="'.get_permalink().'">'.get_the_title().</a></li>';
endif]; endif]; endif]; endif]; endif]
endif;
$return_string .= '</ul>';
wp_reset_query();
return $return_string;
}
Якщо тепер ввести шорткод в тексті наступним чином [current-posts posts="5″], буде показано не тільки останню опубліковану статтю, але й список з п'яти останніх статей.
Використання певного контенту як параметрів шорткоду
Ви можете ще більше модифікувати представлений приклад і також додати певний елемент вмісту як параметр. У нашому прикладі цей параметр content повинен визначати назву заголовка. Для цього додайте змінну $content до сценарію зворотного виклику і вставте HTML-заголовок перед перерахуванням:
function current_posts_function($atts, $content = null) { // функція
extract(shortcode_atts(array(
'posts' => 1,
), $atts));
$return_string = '<h3>'.$content.'</h3>';
$return_string .= '<ul>';
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string .= '<li><a href="/uk/'.get_permalink().'/">'.get_the_title().</a></li>';
endif]; endif]; endif]; endif]; endif]
endif;
$return_string .= '</ul>';
wp_reset_query();
return $return_string;
}
Тепер оточіть потрібний заголовок у вашому тексті відкриваючим і закриваючим шорткодом, подібно до HTML-тегів:
[current-posts posts ="5"]Заголовок списку поточних статей[/current-posts]
Використання короткого коду WordPress у віджеті
Досі ми розглядали використання шорткодів лише в текстовому редакторі WordPress. Однак часто виникають ситуації, в яких шорткоди також цікаві для віджетів, таких як бічна панель. За замовчуванням WordPress не розпізнає там шорткоди, але це можна швидко змінити за допомогою невеликого додаткового рядка коду в PHP-файлі:
add_filter('widget_text', 'do_shortcode');
Використовуйте цей код, щоб наказати WordPress також перевіряти текстові елементи у віджетах на наявність шорткодів.
Деактивація шорткодів, які більше не потрібні
Якщо вам більше не потрібен певний шорткод WordPress, у вас є два варіанти його деактивації: Оптимальним рішенням буде видалити функцію зворотного виклику з PHP-файлу і всі записи коду з ваших публікацій. Якщо ви видалите лише функцію зворотного виклику, WordPress більше не розпізнаватиме шорткод як такий і відображатиме його звичайним текстом посередині статті. Оскільки цей метод є дуже трудомістким для часто використовуваних шорткодів, для таких випадків існує другий варіант: замість видалення коду і функції PHP, функція зворотного виклику розширюється оператором, який нічого не повертає і тому фактично блокується:
add_shortcode('current-posts', '__return_false');
Корисні шорткоди для вашого блогу
Тепер, коли ви отримали коротке уявлення про структуру шорткодів і знаєте, як їх реєструвати та інтегрувати в WordPress, наступні приклади повинні дати вам уявлення про численні можливості технології шорткодів.
Кнопка вставки посилання
Щоб додати кнопку посилання з індивідуальним підписом до вашого проекту, все, що вам потрібно - це шорткод з функцією зворотного виклику:
функція link_button_function( $atts, $content = null ) { { } <button type="button", $content="null
return '';
}
add_shortcode('link-button', 'link_button_function');
Потрібний підпис кнопки просто розміщується між шорткодом відкриття та закриття:
[link-button]Натисніть тут![/link-button]
Відображення меню WordPress
Ви можете використовувати наступний код для відображення вибраного меню вашого проекту WordPress під текстовим дописом:
function menu_function($atts, $content = null) { // функція menu_function($atts, $content = null)
extract(
shortcode_atts(
array( 'name' => null, ),
$atts
)
);
return wp_nav_menu(
array(
'menu' => $name,
'echo' => false
)
);
}
add_shortcode('menu', 'menu_function');
Якщо ви хочете використовувати цей шорткод, просто введіть назву відповідного меню як параметр, наприклад
[menu name="Головне меню"]
Простий спосіб швидкого доступу до WordPress - це плагіни
Для всіх тих, хто не хоче створювати власний шорткод або впроваджувати готові приклади вручну в functions.php або відповідному PHP-файлі, є інший спосіб активувати корисні шорткоди для власного веб-проекту: На офіційній домашній сторінці WordPress ви знайдете великий вибір плагінів, які додають як один, так і кілька різних шорткодів до вашої інсталяції WordPress. Наприклад, за допомогою розширення Last Updated Shortcode ви можете отримати доступ до однойменного шорткоду [lastupdated], який показує, коли стаття або сторінка була востаннє оновлена.
Плагін Shortcodes Ultimate має понад 50 шорткодів і власний редактор CSS, що робить його дещо ширшим. Його можна використовувати, наприклад, для додавання шорткодів для вкладок, кнопок, блоків або слайдерів до WordPress. Однак при використанні плагінів шорткодів завжди слід пам'ятати про наступне: Розширення споживають обчислювальні ресурси і уповільнюють роботу вашого веб-проекту, якщо їх використовувати надмірно. Крім того, ви зазвичай не знаєте, чи є плагін шорткодом Плагін доопрацьовується та регулярно оновлюється, або чи є вона вразливою для безпеки.
Наостанок варто згадати, що існують не тільки плагіни, які реалізують шорткоди, але й ті, що допомагають створювати власні функції зворотного виклику та керувати шорткодами.
Шорткодер: Ви можете створювати власні шорткоди у візуальному редакторі та просто додавати до них фрагменти HTML і JavaScript.