Да бъде или да не бъде! Как да напишем първия си WordPress plugin?

За повечето хора писането на WordPress plugin звучи като нещо свързано с използването на черна магия, практикувана от хора с островърхи шапки и вълшебни пръчици. Всъщност това е доста лесна задача, поне когато става въпрос прости задачи. Малко познания по PHP, основите на  WordPress и разбира се мотивация да започнете – това е всичко, което е необходимо.

Първият въпрос е разбира се „а за какво изобщо ми е този plugin“.  Пипането по ядрото на WordPress е най-лошата идея, която може да ви дойде на ум относно скъпоценния ви блог. Освен това във WordPress има събития и филтри  почти за всичко, което може да ви дойде на ум. Ако сте прекарали известно време ровейки из търсачките, за да намерите решение на някой прост проблем свързан с вашия WordPress сайт със сигурност сте забелязали едно нещо – почти всички отговори започват по този начин :

Добавете този супер код във файла functions.php на темата, която изпозвате

За повечето потребители на WordPress може и да не видно от пръв поглед, но макар, че използването на functions.php  е по-добре от колкото да пипа кода на ядрото все пак не е добра идея. При всяко обновяване на темата промените, които сте направили ще изчезнат. И съм готов да се  обзаложа, че до тогава ще сте забравили какво точно сте променили последния път. И хайде пак едно ровене по търсачките … Дори ако се насочите към правилния подход и си направите дъщерна тема пак има ограничения. Представете си, че любимия ви блог е започнал да  изглежда старомоден и сте намерили нова великолепна тема, която да го освежи. Ще трябва да повторите процедурата с дъщерната тема и да отразите модификациите в нея. Използвайки подхода с написването на plugin всичко, което трябва да направите е да инсталирате и активирате новата си лъскава тема.

В мрежата има много ръководства как да си напишем сами WordPress plugin, но в това ще се съсредоточим структурата на директориите. Също така във втората част ще напишем базов плъгин клас, който да се грижи автоматично за зареждането на специфични css и javascript, поддръжката на локализация, като и прехващането на най-разпространените  WordPress събития и филтри. Единственото, което ще трябва да направим при писането на последващи плъгини е да унаследим базовия клас и да добавим нашата логика в съответните функции без повече търсене на подходящото събитие или филтър.

И така ето я структурата на директориите  :

  • my-brand-new-pugin/ – главната директория на нашия plugin
    • my-brand-new-pugin.php – основният файл на нашия plugin
    • include/–  директория за базовите класове
    • js/ – директория за javascript
    • css/ – директория за нашите стилове
    • lang/ – директория, в която се съхраняват файловете за локализация

Време е да започваме!

Създаване на нов plugin

Следвайки указанията в „кодекса“ това е проста задача. Вече имаме дефинирана структурата на директориите и единственото, което трябва да направим е да добавим показания docblock PHP код към  основният файл my-brand-new-pugin.php и да го активираме от таблото на WordPress. Voila нашият първи  WordPress plugin е вече факт.

Ако нашият plugin е само за лична употреба може да пропуснем частта с лицензирането. В противен случай опишете лицензионните условия след първия PHP docblock .

Най-накрая дойде време и да добавим този така важен код, който ще реши проблемите с нашия блог.