Шорткоди в wordpress стандартні і призначені для користувача
Шо? Шорткод?
Шорткоди (shortcodes) - це дуже потужний механізм WordPress, який дозволяє вбудовувати в запису і сторінки динамічні компоненти. Ви напевно вже користувалися їм, можливо, навіть не і не знаючи про це (наприклад, вставляючи в запис галерею з декількох зображень, або аудіофайл, або плейлист).
Шорткод виводить результат виконання певного, пов'язаного з ним, програмного методу і виглядає наступним чином:
Зустрічали щось подібне? Упевнений, що так.
стандартні шорткоди
Шорткод embed
Ось приклад використання шорткода embed і віджета для голосування з PollDaddy.com
Шордкод caption
Шоркод дозволяє вбудовувати в запис зображення з підписом. Даний шорткод може приймати і використовувати такі параметри: id. class. width. height. За допомогою перших двох параметрів можна додавати додаткові стилі вставляється елемента, ну а width і height. як ви, звичайно, здогадалися, задають ширину і висоту відповідно.
В результаті ми отримаємо контейнер (div) з класом wp-caption. всередині якого буде знаходитися вибране зображення (img) та параграф (p) з нашим підписом.
Шорткод audio
Шорткод дозволяє вбудовувати в запис аудіофайли і приймає такі параметри:
Результат використання шорткода audio може бути наступним
Шорткод video
Ось що виведе цей шорткод на сторінці
Шорткод playlist
- type - тип файлів в плейлисті, може бути audio (за замовчуванням) або video
- orderby - принцип, за яким впорядкований плейлист, тут можна використовувати будь-які атрибути медіафайлу, наприклад, date або ID. за замовчуванням використовується menu_order ID
- order - спадний (DESC) або висхідний (ASC. за замовчуванням) порядок відтворення
- ids - ідентифікатори медіафайлів у списку відтворення, вказуються через кому
- id - якщо параметр ids не заданий, тут можна вказати id записи, в яку додані файли, відповідного типу (тобто якщо, наприклад, в якийсь пост ви вставили кілька аудіозаписів через шордкод audio. тут ви можете вказати вказати id цього поста і WordPress створить плейлист з усіх прикріплених нього аудіофайлів)
- exclude - ідентифікатори медіафайлів, які потрібно виключити зі списку відтворення
- style - стиль плейлиста, може бути light (за замовчуванням) або dark
- tracklist - чи потрібно виводити список файлів в плейлисті (true (за замовчуванням) або false)
- tracknumbers - чи потрібно виводити порядкові номери файлів в плейлисті (true (за замовчуванням) або false)
- artists - чи потрібно виводити імена виконавців (true (за замовчуванням) або false)
- images - чи потрібно виводити зображення (мініатюри, додані до медіафайлів) (true (за замовчуванням) або false)
Ось так може виглядати аудіо плейлист
Шорткод gallery
Шорткод дозволяє вставляти в запис галереї зображень і приймає такі параметри:
Ось так приблизно виглядатиме галерея, вставлена в запис за допомогою шорткода gallery
додаткові шорткоди
Природно, розробники плагінів і шаблонів не змогли пройти повз цього функціоналу, тому рідко зустрінеш плагін або тему, які так чи інакше не використовують шорткоди.
Взяти, наприклад, всім відому Contact Form 7. Тут шорткод, можна сказати, є центральним елементом. Ви створюєте форму, отримуєте шорткод з її id і вставляєте його в сторінку, запис або віджет.
Я, до речі, забув сказати, що шорткод можна вставляти і в віджет. Для цього необхідно щоб functions.php вашої теми містив наступний код:
Плагін, що дозволяє перетворити ваш сайт в інтернет-магазин, WooCommerce також щільно використовує шорткоди. Їм присвячений великий розділ в документації до плагіну. За допомогою шорткодов WooCommerce виводиться вміст цілих сторінок (Кошик, Реєстрація і т.д.). Про WooCommerce ми ще обов'язково поговоримо.
Що стосується тим, багато хто з них пропонують величезну кількість різноманітних шорткодов для оформлення контенту (кнопки, заголовки і т.д.). Особисто я б не рекомендував ними користуватися, тому що вони "підсаджують" вас на цю тему, і якщо ви захочете переключитися на іншу, в якій ці шорткоди, швидше за все, не описані, вам доведеться вручну чистити від них всі ваші записи.
власні шорткоди
Звичайно, ви і самі можете створювати і реєструвати шорткоди (навички програмування на php вітаються;)). Для цих цілей, як в принципі і всієї іншої кастомізації вашого сайту, я рекомендую написати свій плагін. Таким чином ви не будете прив'язані до використовуваної темі, а також зможете використовувати свій код і на інших сайтах.
Щоб додати свій шорткод, вам потрібно створити метод-обробник і прив'язати його до якого-небудь слова, яке буде використовуватися в якості шорткода.
У масиві $ attrs знаходяться атрибути передані разом з шорткодом ([my_shortcode param1 = "lorem" param2 = "ipsum"]). Якщо якийсь атрибут не вказаний, буде взято значення за замовчуванням (в нашому випадку foo або bar).
У змінній $ content знаходиться текст, що знаходиться між тегів шорткода ([my_shortcode] Це і є $ content [/ my_shortcode]).
Тепер вам залишається зробити необхідні маніпуляції з даними і повернути отриманий результат.
Бонус: Шорткод для обмеження частини контенту в залежності від ролі користувача
Це можна зробити за допомогою шорткода, який я назвав access (доступ). Як уособлення він буде приймати параметр role. значення за замовчуванням якого буде administrator. тобто якщо атрибут role НЕ буде поставлено, контент, що знаходиться всередині тегів шорткода буде доступний тільки для адміністратора сайту (для нього контент буде доступний при будь-якому розкладі). Можливі значення атрибута role. administrator. editor. author. contributor. subscriber. guest. а також id інших зареєстрованих ролей.
Тепер для того щоб обмежити доступ гостям вставте в запис наступне: