З точки зору веб-дизайну та розробки, у вас є необмежені можливості при роботі з 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; } }
Якщо говорити коротко, то ми зберегли мета-дані посту, заповнили змінну $ вихід шляхом перетворення виноски в список HTML, і повернули $ вихід. Простіше простого.
Використання плагіна для виносок
Використовувати плагін для виносок досить просто. Якщо ви додасте довільні поля під назвою ref-1, ref-2, ref-3 і так далі, то розділ «Виноски» («Примітки») з'явиться відразу після вашої статті. І ми вже розглянули, як використовувати шорткод, тому це все, що вам потрібно зробити.
Підіб'ємо підсумки
Тепер, коли ми маємо функцію, яка повертає HTML-список виносок, настав час додати цей список під статтями!
<?php function print_footnotes( $content ) { $content .= make_footnotes(); return $content; } add_filter( 'the_content', 'print_footnotes' );
Це, мабуть, найпростіша частина коду, тому що нам потрібна лише попередня функція, висновок вихід якої потрібно додати після контенту посту, а потім прикріпити нову функцію the_content до фільтру.
Якщо ви не бажаєте автоматично додавати розділ «Footnotes» («Зноски») під контентом, видаліть ці рядки. Замість цього вам потрібно буде використовувати невелику частину коду у темі, що використовується, як наприклад,?php echo make_footnotes(); ?> там, де має бути виноска статті. Також можна змінити стандартний аргумент функції.
Коментарі до запису: 0