তুমি কি মনে করো না কিছু ওয়ার্ডপ্রেস প্লাগইন ভাগ্যবান? WooCommerce, ইজি ডিজিট ডাউনলোড, মাধ্যাকর্ষণ ফরম : এই প্লাগইনগুলির প্রতিটি একটি সম্পূর্ণ সংস্থা দ্বারা চালিত হয়, কয়েক ডজন তৃতীয় পক্ষের এক্সটেনশান এবং তাদের দ্বারা আরও অনেক বেশি বৈশিষ্ট্য যুক্ত করা হয় যা প্লাগইনটির সম্ভাবনাকে বাড়িয়ে তোলে। এই সময়ে, অন্যান্য প্লাগইনগুলির বেশিরভাগ অগ্রগতিতে ব্যর্থ।

একটি একক প্লাগইন কীভাবে একটি সমৃদ্ধ প্রযুক্তি ইকোসিস্টেমের ভিত্তি হয়ে উঠতে পারে? অনেকগুলি উত্তর রয়েছে: বাজারে প্রথম হওয়া, দুর্দান্ত পণ্য তৈরি করা, বিপণন বুদ্ধিমান এবং এর মধ্যে থাকা সমস্ত কিছুই। তবে আজ আমরা প্রযুক্তিগত উত্তরের একটি গুরুত্বপূর্ণ অংশটির উপরে মনোনিবেশ করব: এক্সটেনসিবিলিটি, ওয়ার্ডপ্রেস হুক সিস্টেমের মাধ্যমে।

আজ আমরা একটি ওয়ার্ডপ্রেস প্লাগইনের উদাহরণ ব্যবহার করব যেখানে দুটি মূল ফাংশন আলোচনা করা হবে যা একটি প্লাগইনকে এক্সটেনসিবল করে তোলে, যথা: apply_filters() এবং do_action()।

এক্সটেনশনগুলি: প্লাগইনগুলির জন্য এক্সটেনশন

সুতরাং এটি স্পষ্ট যে আমরা যখন "এক্সটেনশানগুলির" কথা বলি তখন আমরা অন্যদের জন্য তৈরি প্লাগইনগুলিকে উল্লেখ করছি। আসুন একটি উদাহরণ নেওয়া যাক: " WooCommerce জন্য স্ট্রাইপ ».

যদি আপনার ইতিমধ্যেই WooCommerce না থাকে তবে এই এক্সটেনশনটি কিছুই করবে না। যদি আপনি WooCommerce ইনস্টল করেন, তাহলে "" কিনে ইনস্টল করুন। ডাবলু WooCommerce জন্য একটি পৃথক প্লাগইন হিসাবে এবং এটি WooCommerce এর কার্যকারিতা প্রসারিত করবে যাতে আপনি স্ট্রাইপ পেমেন্ট গেটওয়ের মাধ্যমে অর্থ প্রদান গ্রহণ করতে শুরু করতে পারেন।

সুতরাং আপনার একটি প্লাগইন রয়েছে যা একটি নির্দিষ্ট উপায়ে অন্য প্লাগইনকে উন্নত করে। এটি একটি এক্সটেনশন। এগুলি ওয়ার্ডপ্রেস বাস্তুতন্ত্রের অ্যাডওয়্যারগুলি।

কীভাবে কাজগুলি: প্রয়োগ_ ফিল্টার () এবং ডু অ্যাকশন () কাজ করে?

পরবর্তী প্রশ্ন: কীভাবে WooCommerce এর বর্ধিত কার্যকারিতা দেখতে আসে? সর্বোপরি, কোনও ই-কমার্স প্লাগইন লেখার কল্পনা করা সহজ যে " শুধুমাত্র কিছু পেমেন্ট গেটওয়ে দিয়ে কাজ করে "। তারপরে, আপনি যদি সত্যিই স্ট্রাইপ করতে চান তবে আপনাকে WooCommerce সম্পূর্ণরূপে পরিবর্তন করতে হবে এবং সম্ভবত আপনার নিজের স্ট্রাইপকমার্স নামে একটি সরঞ্জাম তৈরি করতে হবে, যা হয় হয় WooCommerce এর প্রতিযোগী হয়ে যায় বা কেবল আপনার গ্রাহকের কোনও সাইটে বাস করে যারা অর্থ বহন করতে পারে? ব্যক্তিগতকৃত সহায়তা।

এটি মনযোগ দেওয়ার জন্য গোলযোগ, তবে ভাগ্যক্রমে WooCommerce আরও ভাল কিছু করছে। এটি দুটি ফাংশন ব্যবহার করে: প্রয়োগ_ ফিল্টার () এবং কর_অ্যাকশন ()। এই দুটি ফাংশন আপনাকে ওয়ার্ডপ্রেসে বন্ধনী তৈরি করতে দেয় এবং এটি সাধারণভাবে ওয়ার্ডপ্রেস হুক সিস্টেমের একটি মৌলিক অংশ।

প্রয়োগ_ ফিল্টার () এবং কর_অ্যাকশন () একটি বরং সাধারণ পার্থক্য:

  • প্রয়োগ_ ফিল্টার () আপনাকে ফিল্টারগুলিকে ফাংশনে সংযোগ করতে দেয়।
  • do_action () আপনাকে ক্রিয়াকলাপগুলিতে সংযোগ করতে দেয়।

আসুন তারা কীভাবে কাজ করে তা দেখতে একটি উদাহরণ দেখুন।

WooPress হুক ব্যবহার করার উদাহরণ।

আমাদের উদাহরণস্বরূপ, আমরা একটি "দিনের উদ্ধৃতি" প্লাগইন ব্যবহার করব, এবং একটি এক্সটেনশন যা এই প্লাগইনটিকে একটি নির্দিষ্ট উপায়ে পরিবর্তন করে। সম্পূর্ণ কোডটি অনুসরণ এবং দেখতে, জিপ ফাইল হিসাবে প্লাগইনগুলি ডাউনলোড করুন https://wpshout.com/media/2016/10/plugins.zip।

মূল প্লাগইন

এই প্লাগইনটি বাহ্যিক উদ্ধৃতি লাইব্রেরির দ্বারা উন্মুক্ত এপিআই ব্যবহার করে এবং ফলস্বরূপ উদ্ধৃতিটি ওয়ার্ডপ্রেস ক্ষণস্থায়ী ডেটা হিসাবে সংরক্ষণ করে যা প্রতি 24 ঘন্টা অন্তর সতেজ হয়। যে কোনও সময় এই নিবন্ধে ফিরে আসুন এবং আপনি "জীবন" বিষয়টিতে এই দিন থেকে একটি এলোমেলো উদ্ধৃতি দেখতে পাবেন যা যথেষ্ট প্রশস্ত হওয়া উচিত।

প্লাগইন এক্সটেনশন

যেমনটি আমরা জানি, বেশিরভাগ উদ্ধৃতিগুলির সাথে সমস্যাটি হ'ল তারা "কার্ল সাগান" দ্বারা বলা হয় নি। আমাদের এক্সটেনশানটি বেশ কয়েকটি সরঞ্জাম ব্যবহার করে এই সমস্যাটিকে সংশোধন করে:

  • একটি বড় শিরোনাম আজকের তারিখটি দেখায় এবং তা উদ্ধৃত করে কার্ল সাগান,
  • কার্ল সাগান যা বলেছিলেন তাতে কোনও উদ্ধৃতি ঘুরিয়ে দেওয়ার জন্য কিছু নির্দিষ্ট শব্দ প্রতিস্থাপন
  • মূল উক্তিটির লেখক পরিবর্তন করা হয়েছে এবং উদ্ধৃতিগুলি এখন সঠিকভাবে কার্ল সাগানকে দায়ী করা হয়েছে।

কার্যত প্লাগইন এবং এক্সটেনশানটি এখানে:

তথ্যসূত্র-ইন-কর্ম

কোড

এটি হওয়ার জন্য, দুটি পদক্ষেপ প্রয়োজনীয়:

মূল প্লাগইন হুক - অ্যাকশন হুক এবং ফিল্টার হুক সংজ্ঞা দেয় - বাহ্যিক কোডটিকে মূল পয়েন্টগুলিতে নিজের কোড সংশোধন করতে বা যুক্ত করতে দেয়। এটি অর্জনের জন্য প্লাগইন প্রয়োগ_ফিল্টার () এবং ডু অ্যাকশন () ব্যবহার করে।

এক্সটেনশানটি ক্রিয়া এবং ফিল্টারগুলিতে হুক ফাংশনগুলি সংজ্ঞায়িত করে - যা মূল উপায়ে মূল প্লাগইনটি পরিবর্তন করে।

মূল প্লাগইনে কী কোড

আমাদের কোডের সবচেয়ে গুরুত্বপূর্ণ অংশটি হ'ল আমরা এপিআই থেকে আমাদের ডেটা পাওয়ার পরে যা করি। এই তথ্য দুটি উপাদান সহ একটি অ্যারে হিসাবে উপলব্ধ: পাঠ্য: উদ্ধৃতি পাঠ; এবং লেখক: যে ব্যক্তি উক্তিটি বলেছেন। আমাদের কোডটি তাই এর মতো দেখাবে:

add_shortcode ('এক্সটেনসিবল_প্লুগিন_দেমো', 'বিপিসি_আউটপুট_ এক্সটেনসিবল_প্লাগিন'); ফাংশন বিপিসি_আউটপুট_ এক্সটেনসিবল_প্লুগিন () {ob_start (); // প্রদর্শনের আগে হুক! কর_অ্যাকশন ('বিপিসি_বরেফের_গেট_কোড_টেক্সট'); od কুইড_ডাটা = বিপিসি_জেট_কোড_ডাটা (); যদি (is_array ($ qod_data)) {প্রতিধ্বনি ' '; $ qod_text = $ qod_data ['পাঠ্য']; $ qod_author = $ qod_data ['লেখক']; // কন্টেন্ট ফিল্টার! od কুইড_টেক্সট = প্রয়োগ_ ফিল্টার ('বিপিসি_কোড_টেক্সট', od কোড_টেক্সট); od qod_author = প্রয়োগ_ ফিল্টার ('বিপিসি_কোড_অর্থার', $ কোড_অ্যাটোর); প্রতিধ্বনি $ qod_text; প্রতিধ্বনি ' '; প্রতিধ্বনি $ qod_author; প্রতিধ্বনি ' '; } // আউটপুট বিশ্রামের পরে অ্যাকশন হুক! কর_অ্যাকশন ('বিপিসি_পর_জেট_কোড_টেক্সট'); 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 () "এবং উভয় ফাংশন বর্গাকার বন্ধনীগুলিতে আবদ্ধ থাকে যা আমরা" বিপিসি_কোড_টেক্সট "বলেছিলাম।

শেষ ফলাফলটি হ'ল আমাদের প্লাগইনটি এখন এক্সটেনসিবল: দ্বিতীয় বিকাশকারী প্লাগইন পরিবর্তন করতে এবং বলতে পারেন "আমি কার্ল সাগান বলতে চান », এবং এটি ওয়ার্ডপ্রেসে অনেকটা পিতামাতা ও শিশু থিমের মতো বেস হিসাবে মূল প্লাগইনটি ব্যবহার করার সময় করুন।

এটি এমন কৌশল যা আপনাকে WooCommerce এর মতো একটি প্লাগইন তৈরি করে, যা আপনাকে নতুন বৈশিষ্ট্য যুক্ত করতে দেয়।

এই এই টিউটোরিয়াল জন্য। আমি আশা করি আপনি ফিল্টার এবং ওয়ার্ডপ্রেস ক্রিয়াকলাপগুলির বিভিন্ন ব্যবহারের ক্ষেত্রে আরও ভালভাবে বুঝতে পারবেন।