Бъдещето на уеб хостинга е тук!

Веднага щом вашият уебсайт достигне 15.000 3 посетители на месец за период от 90 месеца (XNUMX дни), вашият хостинг автоматично става безплатен за цял живот... както и всички включени Premium WordPress плъгини.

N

Несравним управляван хостинг

N

Elementor, Divi AI, AIOSEO и др

N

Имейл адрес на PayPal за партньори

N

Brouavo Super Marketing Plugin

N

Стартирайте сайта си за минути

N

Първокласна 24/7 експертна поддръжка

N

30 дни гаранция за връщане на парите

Включено във всички пакети: Elementor Pro – Divi Builder и Divi Ai, Преводателпрес Про, Всичко в едно SEO професионалист, Защитник Професионален, Форминатор Про, Смъш Про, Snapshot Pro, Платен абонамент за членове Pro, Hummingbird Pro, Хъстъл Про, Плъгинът Brouavo Super Marketing.

Не ви ли се струва, че някои WordPress плъгини имат ли късмет? WooCommerce, Изтегляне на лесна цифра, Gravity Forms : всеки от тези приставки се захранва от цяла компания, с десетки разширения на трети страни и все повече и повече функции, добавени от тях, които добавят към потенциала на приставката. През това време повечето от другите плъгини не успяват да прогресират.

Как може един плъгин да стане основата на процъфтяващата технологична екосистема? Има много отговори: бъдете първият, който пуска на пазара, създайте страхотен продукт, имайте маркетингови умения и всичко между тях. Но днес ще се съсредоточим върху важна част от техническия отговор, а именно: разширяемост, чрез системата за куки WordPress.

Днес ще използваме пример за WordPress плъгин за да покрие двете ключови функции, които предоставят статус на разширяемост на плъгин, а именно: apply_filters() и do_action().

Разширения: разширения за приставки

Следователно е ясно, че когато говорим за "разширения", имаме предвид приставки, създадени за други. Да вземем пример: " Ивица за WooCommerce ".

Това разширение не прави нищо, ако все още нямате WooCommerce. Ако инсталирате WooCommerce, закупете и инсталирайте " Stripe за WooCommerce Като отделен плъгин и той ще разшири функционалността на WooCommerce, така че можете да започнете да приемате плащания през шлюза за плащане Stripe.

Така че имате плъгин, който подобрява друг плъгин по специфичен начин. Това е продължение. Това са наречия от екосистемата на WordPress.

Как работят функциите: apply_filters () и do_action ()?

Следващият въпрос: как WooCommerce вижда своята разширена функционалност? В крайна сметка е лесно да си представите, че пишете приставка за електронна търговия, която „ работи само с някои платежни портали ". След това, ако наистина искате да Stripe, ще трябва напълно да модифицирате WooCommerce и вероятно в крайна сметка да създадете свой собствен инструмент, наречен StripeCommerce, който или става конкурент на WooCommerce, или просто живее на сайта на някой от вашите клиенти, който би могъл да си позволи да плати персонализирана помощ.

Това е бъркотия за обмисляне, но за щастие WooCommerce прави нещо много по-добре. Използва две функции: apply_filters () и dožba (). Тези две функции ви позволяват да създавате скоби в WordPress и това е основна част от системата WordPress Hooks като цяло.

apply_filters () и dožba () Доста проста разлика:

  • apply_filters () ви позволява да свързвате филтри към функции.
  • dogery () ви позволява да свързвате действия към функции.

Нека погледнем един пример, за да видим как работят те.

Пример за използване на куки WooPress.

За нашия пример ще използваме приставка „Цитат на деня“, плюс разширение, което модифицира този плъгин по специфичен начин. За да следвате и видите пълния код, изтеглете приставките като ZIP файл https://wpshout.com/media/2016/10/plugins.zip.

Оригиналният плъгин

Този плъгин използва API, изложен от външна библиотека с оферти, и съхранява получената оферта като преходни данни на WordPress, които се обновяват на всеки 24 часа. Върнете се към тази статия по всяко време и ще видите произволен цитат от този ден на тема „живот“, който трябва да е достатъчно широк.

разширение на приставката

Както знаем, проблемът с повечето цитати е, че те не са казани от „Карл Сейгън“. Нашето разширение коригира този проблем, като използва редица инструменти:

  • Голяма заглавка, показваща днешната дата и цитата на Карл Сейгън,
  • Някои конкретни замествания на думи, за да превърнат цитат в това, което Карл Сагън може да е казал
  • Авторите на оригиналните цитати са променени и цитатите вече се приписват правилно на Карл Сагън.

Ето приставката и разширението в действие:

Кодът

За да се случи това, са необходими две стъпки:

Оригиналният плъгин определя куки - куки за действие и куки за филтри - позволявайки на външен код да променя или добавя свой собствен код в ключови точки. Приставката използва apply_filters () и do_action (), за да постигне това.

Разширението дефинира куки функции на действието и филтри - които модифицират оригиналния плъгин по необходим начин.

Ключов код в оригиналния плъгин

Най-важната част от кода за нас е това, което правим, след като получим данните си от API. Тези данни са достъпни като масив с два елемента: текст: текстът на цитата; и автор: лицето, което е казало цитата. Следователно нашият код ще изглежда така:

add_shortcode ('extensible_plugin_demo', 'bpc_output_extensible_plugin'); функция bpc_output_extensible_plugin () {ob_start (); // Кука преди показване! do_action ('bpc_before_get_qod_text'); $ qod_data = bpc_get_qod_data (); if (is_array ($ qod_data)) {echo ' '; $ qod_text = $ qod_data ['текст']; $ qod_author = $ qod_data ['автор']; // Филтрирайте съдържанието! $ qod_text = apply_filters ('bpc_qod_text', $ qod_text); $ qod_author = apply_filters ('bpc_qod_author', $ qod_author); ехо $ qod_text; ехо '; ехо $ qod_author; ехо '; } // Кука за действие след почивка на изхода! do_action ('bpc_after_get_qod_text'); връщане ob_get_clean (); }

Ключов код в разширението

Приставката не се състои от нищо друго освен действия и филтри за промяна на оригиналния плъгин. Ето кода за разширението:

add_filter( 'bpc_qod_text', 'bpc_filter_qod_text' );
// Filter: remplacer des mots spécifique
function bpc_filter_qod_text( $text ) {
    $text = str_replace( 
        array( ' I ', ' me ', ' the ', ' is ', ' am ', ' are ' ),
        array( ' I, a descendent of savannah-dwelling hominids that somehow evolved an astounding capacity for self-reflection, ', ' the cooled-off stellar matter I call "me" ', ' the trillions of atoms that make up the ', ' seems, without the mind-boggling perspective of quantum physics, to be ', ' cannot, due to the Heisenberg Uncertainty Principle, be determined not to be ', ' appear to our best scientific instruments to be ' ),
        $text
    );
    return $text;
}

// Filter: barré le texte qui précède le nom de l'auteur et ajouter Carl Sagan à la suite
add_filter( 'bpc_qod_author', 'wpshout_filter_qod_author' );
function wpshout_filter_qod_author( $text ) {
    $text = '<strike>' . $text . '</strike> Carl Sagan';
    return $text;
}

// Action: Ajouter un titre
add_action( 'bpc_before_get_qod_text', 'bpc_set_up_quote' );
function wpshout_set_up_quote() {
    echo '<h4>Carl Sagan Quote of the Day for ' . date( 'F j, Y') . ':</h4>';
}

// Action: Ajouter une image
add_action( 'bpc_after_get_qod_text', 'bpc_add_carl_boom' );
function bpc_add_carl_boom() {

    echo '<div><img class="aligncenter" src="' . plugin_dir_url( __FILE__ ) . 'carl_sagan_mind_blown.gif"></div>';
}

Както можете да видите, това са доста стандартни приложения на „ ADD_ACTION () "А" add_filter () "И двете функции са закачени на квадратни скоби, които нарекохме" bpc_qod_text ".

Крайният резултат е, че нашата приставка вече е разширяема: втори програмист може да гледа как променя приставката и да казва „Иска ми се Карл Саган да каже », И го направете, докато използвате оригиналния плъгин като основа, малко като родителски и дъщерни теми в WordPress.

Това е такъв трик, който прави плъгин като WooCommerce много популярен, като ви позволява да добавяте нови функции.

Това е за този урок. Надявам се да разберете по-добре различните случаи на използване на филтри и WordPress действия.

аватар на автора
Блеър Jersyer
Разработчик на WordPress и запален по всичко, свързано с новите технологични тенденции. Автори на добавки, Теми на WordPress и други уеб приложения. Автор в BlogPasCher.com.

Тя ПИН на Pinterest