“WordPress для чайників” або вчимося створювати плагіни для WordPress

16 вересня 2008

Ну хоч це і мікроплагін, але це вже не модифікат, а... я дійсно сидів і розбирався, як же ото фунціонують плагіни у вордпресі. Довелось навіть перегляд відеокурсу по php прискорити, аби розібратися з фунціями :)

Тож, цей пост не стільки перезентація плагіну, як нотатка про те, як власноруч створити щось подібне.

Отже, про сам плагін. Називається він "WordPress для чайників" і по суті це є невеличка інструкція по правильному постінгу. Необхідність його створення була викликана тим, що я задовбався пояснювати всім тим, хто вперше бачить wordpress, що і як робити. Особливу увагу я приділяю коректному додаванню тексту в запис (зазвичай люди просто копі-пестом переносять все з ворду або браузера, що неправильно), а в світлі того, що я нещодавно почав роздавати блоги на Природі Україні, то наявність інструкції в адмінці кожного блогу просто життєво необхідна.

Ну і, головне, мені вже дуже хотілося розібратися з фунціонуванням плагінів та створити щось від себе.

Отже, мій плагін складається усього з двох фунцій. Починаємо зі стандатрного тексту:

  1. <?php
  2. /*
  3. Plugin Name:  WordPress для чайників
  4. Plugin URI: http://www.mixa-blog.org.ua/wp-dummies/
  5. Description: Інструкція по правильному поводженню з WordPress для тих, хто щойно приєднався :) Як правильно додати публікацію та налаштувати свій блог.
  6. Author: Mixa
  7. Version: 0.1
  8. Author URI: http://www.mixa-blog.org.ua/
  9. */

Далі у нас іде функція, яка і виконує головне завдання - містить наш контент з інструкцією в адмінці:

  1. function instrtext()
  2. {
  3. echo <<<TEXT
  4. <div class="wrap">
  5. <h2>Як правильно додати публікацію та налаштувати свій блог</h2>
  6. <p>Bla-bla-bla</p>
  7. </div>
  8. TEXT;
  9. }

Як ви вже зрозуміли, замість тестового тексту можна підставити що завгодно: власну інструкцію, наприклад. Можна просто вставити фрейм і виводити будь-що з будь-якого джерела.

Зверніть увагу на div class="wrap" - це стандартний клас оформлення адмінки (принаймні, у версіях до 2.5 точно, не перевіряв...) і вам не потрібно мудохатися з оформленням сторінки в сss. Але можна і поекспериментувати!...

І далі в нас іде остання фунція, яка додає в "шапку" адмінки окрему сторінку з вашою інструкцією:

  1. function instr_addpage() {
  2.     add_menu_page( 'Mixa', 'Mixa', 1, __FILE__, 'instrtext');
  3. }
  4. add_action('admin_menu', 'instr_addpage');
  5. ?>

В даному випадку наша інструкція з'явиться як окрема сторінка одразу після всіх решти розділів адмінки. Але, логічно було би, скажімо, виводити нашу сторіку як підрозділ рубрики "Створити" (тобто там, де є опції створення посту/сторінки). В такому разі відбудуться деякі зміни в другій фунції:

  1. function instr_addpage() {
  2. add_submenu_page( 'post-new.php', 'Mixa', 'Mixa', 1, __FILE__, 'instrtext');
  3. }
  4. add_action('admin_menu', 'instr_addpage');
  5. ?>

Різниця в тому, що ми тепер додаємо не пункт меню, а субменю, і прописуємо, до якої саме сторінки (розділу адмінки) прикріпити наше субменю.

Взагалі я застосував три шляхи появи сторінки плагіну для різних розділів адмін-панелі. Ви можете вибрати зручний, закоментувавши дефолтний та розкоментуваши потрібний. Або просто отримати підказку на сторінці Adding Administration Menus.

Увага, при використанні плагіну Admin Drop Down Menus варіант з додаванням сторінки як самостійного розділу меню може не спрацювати. Причини з'ясовую...

Ну а так начебто все. Єдине, що хочеться зазначити, що я не позиціоную цей плагін як повноцінний. Це всього лише спроба навчитися створювати власні додатки, але навіть на даному етапі він уже може справлятися з поставленим завданням. Окрім того, його можна використати як платформу для написання власних рішень. Я, наприклад, на слідуючому етапі хочу навчитися додавати налаштування, щоб текст і фрейми можна було вставляти не безпосередньо в код, а на сторінці налаштувань плагіну. Тож, вчитися, вчитися і ще раз вчитися!.. :)

Download Wordpress для чайників Version 0.1

Downloaded a total of 59 times

Wordpress для чайників (59) - 875 bytes