آیا به نظر شما نمی رسد که برخی افزونه های وردپرس خوش شانس هستند؟ از WooCommerce, دانلود آسان دیجیتال, فرم جاذبه : هر یک از این افزونه ها توسط یک شرکت کامل ، با ده ها برنامه افزودنی شخص ثالث و ویژگی های بیشتر و بیشتر توسط آنها اضافه می شود که به پتانسیل افزونه اضافه می شوند. در این مدت ، اکثر افزونه های دیگر پیشرفت نمی کنند.

چگونه یک پلاگین می تواند پایه و اساس یک اکوسیستم پیشرفته فناوری شود؟ پاسخ های زیادی وجود دارد: اولین کسی باشید که به بازار می پردازید ، یک محصول عالی ایجاد می کنید ، از ذکاوت در بازاریابی و همه چیز در این بین برخوردار هستید. اما امروز ما می خواهیم به بخش مهمی از پاسخ فنی یعنی توسعه پذیری از طریق سیستم قلاب وردپرس بپردازیم.

امروز قصد داریم از یک مثال استفاده کنیم پلاگین وردپرس برای پوشش دو تابع کلیدی که وضعیت توسعه پذیری را به یک افزونه اعطا می کنند، یعنی: application_filters() و do_action().

برنامه های افزودنی: افزونه برای پلاگین ها

بنابراین واضح است که وقتی صحبت از "برنامه های افزودنی" می شود ، منظور ما افزونه هایی است که برای دیگران ساخته شده است. بیایید مثالی بزنیم: " نوار برای WooCommerce '.

اگر قبلاً این کار را نکرده اید، این برنامه افزودنی کاری انجام نمی دهد از WooCommerce. اگر نصب کنید از WooCommerceو سپس خرید و نصب کنید راه راه برای از WooCommerce به عنوان یک افزونه جداگانه ، و قابلیت های WooCommerce را گسترش می دهد تا بتوانید از طریق دروازه پرداخت Stripe شروع به پذیرش پرداخت کنید.

بنابراین شما افزونه ای دارید که پلاگین دیگری را به روشی خاص بهبود می بخشد. این یک پسوند است. اینها قیدهای اکوسیستم وردپرس هستند.

توابع: apply_filters () و do_action () چگونه کار می کنند؟

س nextال بعدی: WooCommerce چگونه عملکرد گسترده خود را مشاهده می کند؟ به هر حال ، نوشتن یک پلاگین تجارت الکترونیکی آسان است که " فقط با برخی از دروازه های پرداخت کار می کند ". سپس ، اگر واقعاً بخواهید Stripe را بزنید ، مجبور هستید WooCommerce را کاملاً اصلاح کنید و احتمالاً در نهایت ابزار خودتان را با نام StripeCommerce ایجاد کنید ، که یا به رقیب WooCommerce تبدیل می شود یا به سادگی در سایت یکی از مشتری های شما زندگی می کند که توانایی پرداخت آن را داشت. کمک های شخصی.

فکر کردن برای آن مشکلی است ، اما خوشبختانه WooCommerce کاری بسیار بهتر انجام داده است. از دو عملکرد استفاده می کند: اعمال_فیلترها () و do_action (). این دو عملکرد به شما امکان ایجاد براکت در وردپرس را می دهد و این به طور کلی یک بخش اساسی سیستم ووکرس هوک ها است.

اعمال_فیلترها () و do_action () یک تفاوت نسبتاً ساده:

  • اعمال_فیلترها () به شما امکان می دهد فیلترها را به توابع متصل کنید.
  • do_action () به شما امکان می دهد اقدامات را به توابع متصل کنید.

بیایید به مثال نگاه کنیم تا ببینیم چگونه کار می کنند.

مثال استفاده از قلاب های WooPress.

به عنوان مثال ، ما از یک افزونه "نقل قول روز" استفاده خواهیم کرد ، به علاوه افزونه ای که این پلاگین را به روشی خاص اصلاح می کند. برای دنبال کردن و دیدن کد کامل ، پلاگین ها را به صورت یک فایل ZIP بارگیری کنید https://wpshout.com/media/2016/10/plugins.zip.

پلاگین اصلی

این افزونه با استفاده از API که توسط یک کتابخانه نقل قول خارجی در معرض نمایش است ، و نقل قول حاصل را به عنوان داده گذرا وردپرس ذخیره می کند که هر 24 ساعت تازه می شود. در هر زمان به این مقاله برگردید و یک نقل قول تصادفی از این روز با موضوع "زندگی" مشاهده خواهید کرد ، که باید به اندازه کافی گسترده باشد.

افزونه پلاگین

همانطور که می دانیم ، مشکل اکثر نقل قول ها این است که توسط "کارل ساگان" گفته نشده است. پسوند ما با استفاده از تعدادی ابزار این مشکل را اصلاح می کند:

  • سربرگ بزرگی که تاریخ امروز و قیمت را نشان می دهد توسط کارل ساگان است ،
  • برخی از تعویض کلمات خاص برای تبدیل یک نقل قول به آنچه کارل ساگان گفته است
  • نویسندگان نقل قول های اصلی تغییر کرده و نقل قول ها هم اکنون به درستی به کارل ساگان نسبت داده شده است.

در اینجا پلاگین و افزونه موجود است:

استناد در عمل

کد LE

برای این کار دو مرحله ضروری است:

پلاگین اصلی قلاب ها را مشخص می کند - قلاب های اکشن و قلاب های فیلتر - به کد خارجی اجازه می دهد تا کد خاص خود را در نقاط کلیدی اصلاح یا اضافه کند. این پلاگین برای دستیابی به این هدف از Applic_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 = اعمال_فیلترها ('bpc_qod_author' ، $ qod_author)؛ echo $ qod_text؛ پژواک '؛ echo $ qod_autor؛ پژواک '؛ } // قلاب اقدام پس از استراحت خروجی! 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 "می نامیم.

نتیجه نهایی اینست که افزونه ما اکنون قابل توسعه است: یک توسعه دهنده دوم می تواند تماشای تغییر افزونه را بگیرد و بگوید "من آرزو دارم کارل ساگان را بگویم »، و این کار را هنگام استفاده از پلاگین اصلی به عنوان پایه انجام دهید ، دقیقاً مانند مضامین والدین و کودک در وردپرس.

این چنین ترفندی است که افزونه ای مانند WooCommerce را بسیار محبوب می کند و به شما امکان می دهد ویژگی های جدیدی اضافه کنید.

این برای این آموزش است. امیدوارم موارد استفاده متفاوت از فیلترها و اقدامات وردپرس را بهتر بشناسید.