ওয়ার্ডপ্রেস কোন অর্ডারে প্লাগইন ফাইল লোড করে?


21

ওয়ার্ডপ্রেসে প্লাগইনগুলি কোন ক্রমে লোড হয়?

এবং একটি নির্দিষ্ট প্লাগইন ফোল্ডারের মধ্যে, লোডিংয়ের জন্য কোন আদেশ অনুসরণ করা হয়?


আপনি এই প্লাগইনটি দিয়ে খুব গভীরভাবে ডিবাগ করতে পারেন: https://wordpress.org/plugins/whats-running/ এটি ওয়ার্ডপ্রেসে সমস্ত প্রয়োজনীয় ফাইল তালিকাভুক্ত করে।
জাজেপ ভিক্টর

উত্তর:


26

প্রথম প্রশ্নের উত্তর:

  1. ইন wp-settings.php, ওয়ার্ডপ্রেস প্রথমে কোনও অবশ্যই ব্যবহারযোগ্য প্লাগইন ( mu-pluginsfolder চ্ছিক ফোল্ডারে প্লাগইন ) পরীক্ষা করে এবং সেগুলি লোড করে।

  2. তারপরে, আপনি যদি কোনও মাল্টিসাইট ইনস্টলেশন চালাচ্ছেন তবে এটি নেটওয়ার্ক-সক্রিয় হওয়া প্লাগইনগুলির জন্য যাচাই করে এবং সেগুলি লোড করে।

  3. তারপরে এটি ডাটাবেস টেবিলের active_pluginsএন্ট্রি দেখে অন্য সমস্ত সক্রিয় প্লাগইনগুলির জন্য পরীক্ষা করে wp_optionsএবং এর মাধ্যমে লুপ করে। প্লাগইনগুলি বর্ণানুক্রমিকভাবে তালিকাভুক্ত করা হবে।

এখানে অর্ডারটি ওয়ার্ডপ্রেস বেশ কিছুটা বোঝায় : http://codex.wordpress.org/ ক্রিয়াকলাপ_সূত্র # ক্রিয়া_রুন_ডুরিং_আ_টাইপিকাল_উইকুইয়েস্ট

বিষয়টি হ'ল, প্রতিটি স্বতন্ত্র প্লাগইন কী অর্ডে অর্ডার করা হয় তা বিবেচ্য নয়, কারণ সঠিকভাবে লিখিত প্লাগইনগুলি ওয়ার্ডপ্রেস হুক ব্যবহার করবে, যা আপনাকে ওয়ার্ডপ্রেস স্টার্টআপের পরে নির্দিষ্ট পয়েন্টগুলিতে কার্যকারিতা প্লাগ করতে দেয়। (যথাযথভাবে লিখিত প্লাগইনগুলি তাদের ফাংশন এবং ক্লাসগুলির উপসর্গ তৈরি করবে যাতে কোনও বিবাদ না ঘটে))

প্লাগইন এপিআই সম্পর্কে আরও তথ্য: http://codex.wordpress.org/ প্লাগইন_এপিআই /

দ্বিতীয় প্রশ্নের উত্তর:

সম্পূর্ণরূপে প্লাগইন উপর নির্ভর করে। ওয়ার্ডপ্রেস কেবলমাত্র প্লাগইনে একটি ফাইল লোড করে, সাধারণত একটি নাম দেওয়া হয় the-plugin-name.phpএবং শীর্ষে শিরোনাম, বিবরণ, লেখক ইত্যাদি থাকে। এটির বাকী ফাইলগুলি লোড করার জন্য, প্লাগিনটি আপ require_onceএবং ব্যবহার করা wp_enqueue_scriptএবং কী নয় not


সুতরাং যদি আমি একটি প্লাগইন তৈরি করি, তবে পরে একটি অ্যাড-অন প্লাগইনগুলি প্রকাশ করুন যা মূল প্লাগইনটি চালানোর পরে চলতে হবে, আমি কীভাবে এই আদেশটি নিশ্চিত করতে পারি?
urok93

আপনি যা করতে চাইছেন তা এটি নির্ভর করে। তবে সাধারণত আপনি তাদের প্রত্যেককে অ্যাড-অ্যাকশন () ফাংশনটি ব্যবহার করে একটি নির্দিষ্ট হুকের উপর চালানোর জন্য সেট আপ করবেন যা আপনাকে অগ্রাধিকার সেট করতে দেয়। কোডেক্স.ওয়ার্ডপ্রেস.আর.
ফাংশন_প্রকাশ /

@ সেভেন্থস্টিল কিন্তু যদি কোনও প্লাগইন অন্য প্লাগইন দ্বারা নির্মিত হুকের উপর নির্ভর করে। যদি একটি প্লাগইন apply_filters()একটি হুক তৈরি করতে ব্যবহার করে add_filter(), তবে যে প্লাগইন ব্যবহার করে তার আগে চলে তবে তা কি এখনও কাজ করবে? যৌক্তিকভাবে, মনে হচ্ছে এটি apply_filters()ইতিমধ্যে বরখাস্ত হয়ে গেছে, তাই add_filter()দ্বিতীয় প্লাগইনে কলগুলি কিছুই করবে না। কেবলমাত্র প্লাগইন-তৈরি হুক ব্যবহার করার সময় প্লাগইনগুলি ক্রম লোড হওয়ার ক্ষেত্রে কী বিষয় বিবেচনা করে?
trusktr

কি গুরুত্বপূর্ণ সময় apply_filters()চালায় লোড হয়েছে । add_filter()আগে চালাতে হবে apply_filters()। যদি add_filter()কোনও প্লাগইন ফাইলে থাকে এবং অন্য কোনও ফাংশনে না থাকে তবে এটি plugins_loadedহুকের উপর দৌড়াবে যা সাধারণত আপনার প্রয়োজনের আগে ঘটবে apply_filters()
সপ্তম স্টিল

একটি সাধারণ দৃশ্যে বেশ কয়েকটি প্লাগইন থাকে যা তাদের সামগ্রীতে যুক্ত করে the_content- তাদের উপস্থিতির ক্রম কীভাবে নির্ধারিত হয়?
ড্যান Knauss

9

আমি দেখতে পেয়েছি যে আমার প্লাগইনে একটি 'দেরি লোডিং' ক্রিয়া অন্তর্ভুক্ত করা দরকারী যা সমস্ত প্লাগইনগুলি এইভাবে তাদের লোড শেষ করার পরে চলে:

add_action('plugins_loaded', 'my_late_loader');

এর পরে my_late_loader ফাংশনটি অন্য সমস্ত প্লাগইনগুলির পরে শুরু হয়েছিল যা আমাকে আমার নিজস্ব ফাংশনে অন্য প্লাগইনগুলি দ্বারা সংজ্ঞায়িত হুকগুলি ব্যবহার করতে দেয় যা আমার_অর্থ_ফংশান যা আমার_লেট_লোডারের মধ্যে শুরু করা হয়েছে

/**
 * Late loading function for actions that must run after all plugins 
 * have loaded
 */
function my_late_loader(){
    add_action( 'some_hook', 'my_other_function', 10, 1);
}

বিট বিভক্ত (আমি জানি), তবে এটি নিশ্চিত করে যে প্লাগইন লোড ক্রম নির্বিশেষে যুক্ত হওয়ার আগে অন্যান্য প্লাগইনগুলিতে হুক তৈরি করা হয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.