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

Як ви знаєте, наукові статті можуть містити багато коментарів, цитат, додаткових посилань, які ми зазвичай називаємо виносками . І у випадку зі статтями професора, який побажав бачити їх у більш інтерактивній виставі, відразу ж видається функціональність Вікіпедії. Але для цього потрібен спеціальний плагін, який надасть змогу зробити подібне.
Подібні плагіни для створення виносок вже є, але можна спробувати створити власний, ніж ми сьогодні й займемося.
Завантажити готовий плагін
Створення плагіна для виносок у WordPress
Процес створення плагіна буде досить простим навіть для новачків. Він включає в себе:
- створення файлу плагіна
- створення шорткоду
- кодування функції футера
- створення ще однієї функції, яка додає виноски до записів за допомогою the_content.
Нічого складного, правда?
Якщо на сьогоднішній день ви є новачком, який хоче дізнатися про основи створення плагіна на WordPress, то цей посібник містить для вас достатню кількість інформації. І навіть ті, хто вже має більше досвіду, знайдуть собі нові ідеї.
1. Файл плагіна
Якщо ви ознайомлені з плагінами (це стосується їх створення та розуміння, що таке вихідний код), то знаєте, що ми повинні розпочати код нашого плагіна з наступної інформації у шапці:
<?php /** * Plugin Name: Footnotes Shortcode (by Tuts+ Code) * Plugin URI: https://github.com/barisunver/tuts-footnotes/ * Description: A simple plugin utilizing shortcodes and custom fields to create footnotes in your articles. * Version: 1.0 * Author: Baris Unver * Author URI: http://tutsplus.com/authors/baris-unver * License: GPL2 */ ?>
Рядки в цьому коді досить читальні, тому ми не будемо зупинятися на їхнє пояснення.
Хоча кілька порад все ж таки є:
- Єдиний обов'язковий рядок — це «Назва плагіна», решта ж не є такими, хоч і досить корисні.
- Можна використовувати простий HTML-код у рядку «Опис».
- Є ще й іншіheader names(назви шапок), які можна знайти на сторінці Заголовок файлу у Codex.
З шапками ми закінчили, тепер перейдемо до створення шорткоду.
2. Шорткод
Як вже згадувалося раніше, шорткод нам знадобляться для того, щоб відображати кількість виносок, які можна вказати в якості параметра. Так як рядків коду має бути всього кілька, і вони дуже прості, давайте приступимо до написання коду, а потім перевіримо його:
<?php
function footnotes_sc( $atts ) {
extract(
shortcode_atts(
array(
'id' => '1',
),
$atts )
);
return '<a href="#ref-' . $id . '" rel="footnote"><sup>[' . $id . ']</sup></a>';
}
add_shortcode( 'ref', 'footnotes_sc' );
?>Як бачите, код справді дуже і дуже простий. І ось, що ми зробили:
- Створили функцію під назвою footnotes_sc.
- Створили лише один параметр під назвою id (зі стандартним значенням «1») і перетворили його на змінну з функцією екстракт ().
- Ми зробили повертати (Вернули) простий рядок з посиланням на відповідну виноску.
- І, нарешті, ми встановили шорткод під назвою [посилання] та прив'язали до нього функцію footnotes_sc().
Тепер щоразу, коли ми використовуватимемо шорткод [ref id="X"] (де Х – це ID виноски), WordPress буде робити виноску [1].
3. Функція виноски
Щоб створити саму виноску, нам необхідно використовувати довільні поля в редакторі записів WordPress. Функція, вказана нижче, не є «просунутим кодом», але оскільки він трохи довгий, ми розглянемо його покроково:
<?php
// create the function with some arguments
function make_footnotes( $title = '', $titletag = 'h3', $listtag = 'ol' ) {
// set the title to a translatable string ("Footnotes") if no title is specified
if( '' == $title ) {
$title = __( 'Footnotes', 'tuts-footnotes' );
}
// create an empty array to avoid any PHP notices
$footnotes_array = array();
// get the results of each custom field named "ref-X",
// where X must be a number from 1 to 100,
// and add them to $footnotes_array
for( $i = 1; i <= 100; $i++ ) {
$get_post_meta = get_post_meta( get_the_ID(), 'ref-' . $i, true );
if( '' == $get_post_meta ) {
break;
} else {
$footnotes_array[] = array( 'ref-' . $i => $get_post_meta );
}
}
// if the $footnotes_array is NOT empty...
if( count( $footnotes_array ) > 0 ) {
// ...start the $output variable with a DIV...
$output = '<div class="tutsplus-footnotes">';
// ...use the default values of our function's arguments
$output .= '<' . $titletag . '>' . $title . '</' . $titletag . '>';
$output .= '<' . $listtag . '>';
// list the footnotes with corresponding reference IDs
foreach( $footnotes_array as $footnote ) {
foreach( $footnote as $ref_id => $footnote_content ) {
$output .= '<li id="' . $ref_id . '">' . $footnote_content . '</li>';
}
}
// close the HTML tags
$output .= '</' . $listtag . '>';
$output .= '</div>';
}
// and return the $output variable if it's a single post or page
if( is_singular() ) {
return $output;
}
}Якщо говорити коротко, то ми зберегли мета-дані посту, заповнили змінну $output шляхом перетворення виноски в список HTML і повернули $output . Простіше простого.
Використання плагіна для виносок
Використовувати плагін для виносок досить просто. Якщо ви додасте довільні поля під назвою ref-1 , ref-2 , ref-3 і так далі, то розділ « Footnotes » («Зноски») з'явиться відразу після вашої статті. І ми вже розглянули, як використовувати шорткод, тому це все, що вам потрібно зробити.
Підіб'ємо підсумки
Тепер, коли ми маємо функцію, яка повертає HTML-список виносок, настав час додати цей список під статтями!
<?php
function print_footnotes( $content ) {
$content .= make_footnotes();
return $content;
}
add_filter( 'the_content', 'print_footnotes' );Це, мабуть, найпростіша частина коду, тому що нам потрібна лише попередня функція, виведення output якої потрібно додати після контенту посту, а потім прикріпити нову функцію the_content до фільтра.
Якщо ви не бажаєте автоматично додавати розділ «Footnotes» («Зноски») під контентом, видаліть ці рядки. Замість цього вам потрібно буде використовувати невелику частину коду в темі, яку ви використовуєте, як наприклад, < ?php echo make_footnotes(); ? > там, де має бути виноска статті. Також можна змінити стандартний аргумент функції.





















Коментарі до запису: 0