একটি পৃথক প্লাগইন পাথ পান


10

প্লাগইনটিতে পাথ পেতে আপনি ব্যবহার করতে পারেন plugin_dir_path(__FILE__)- তবে এটি অবশ্যই প্লাগ-ইন থেকে কল করতে হবে।

আপনি প্লাগ-ইন এ এর ​​মধ্যে থেকে প্লাগইন বি ( ) এর পথটি নির্ভরযোগ্যভাবে কীভাবে পেতে পারেন pluginb/pluginb.php?

সম্পাদনা: এটি ধরে নেওয়া হয়েছে যে আপনি যে প্লাগইন পরে যাচ্ছেন তার স্লাগ জানেন (আসলে আপনি সেগুলি এগুলি পেতে পারেন get_plugins())। তবে আমি এটি সাধারণভাবে কাজ করতে চাই।


এটি কি কোনও প্লাগইনে প্রযোজ্য? বা এক / বিশেষত বেশ কয়েকটি? যদি পরে থাকে তবে সেগুলি কি আপনার নিজস্ব, না প্রকাশ্যে প্রকাশিত?
TheDeadMedic

সুতরাং আমি ধরে নিচ্ছি যে আপনি যে প্লাগইনটির পরে আছেন pluginb/pluginb.phpতার স্লাগ জানেন: উদাহরণস্বরূপ , তবে এটির তৃতীয় পক্ষ।
স্টিফেন হ্যারিস

উত্তর:


9

আমার সেরা অনুমানটি হবে:

if ( ! is_file( $dir = WPMU_PLUGIN_DIR . '/pluginb/pluginb.php' ) ) {
    if ( ! is_file( $dir = WP_PLUGIN_DIR . '/pluginb/pluginb.php' ) )
        $dir = null;
}

return $dir;

যাইহোক, এখানে বিপদটি এখনও প্লাগইনের "বেসনাম" এর অনুমান - একটি ভাল লিখিত প্লাগইন তখনও কাজ করবে যখন তার ডিরেক্টরি এবং / অথবা মূল ফাইলটির নাম পরিবর্তন করা (যাই হোক না কেন)।

যা আমার মূল মন্তব্যে ফিরে যায় - এটি কোন তৃতীয় পক্ষের প্লাগইনটি উল্লেখ করছে তার উপর নির্ভর করে অনেক লেখক প্লাগইন পথ ধরে রাখতে তাদের নিজস্ব পদ্ধতি / ধ্রুবকগুলি সংজ্ঞায়িত করেন - তাদের অস্তিত্বের জন্য যাচাই করা এবং পরিবর্তে এগুলি ব্যবহার করা বুদ্ধিমান হবে (যদি উপলব্ধ থাকে তবে )।


আহ ঠিক আছে, আমি প্রশ্ন আপডেট করেছি :)। আপনি প্লাগ-ইনগুলি স্লাগ পেতে পারেন get_plugins()- আমার ব্যবহারের ক্ষেত্রে যথেষ্ট। আপনি যদি কিছু নির্দিষ্ট প্লাগ-ইন করার পরে থাকেন এবং এর চেয়ে ভাল আরও কিছু উপলভ্য না থাকে তবে আমি অনুমান করি আপনি নামের মাধ্যমে প্লাগইনটি অনুসন্ধান করতে পারেন get_plugins()
স্টিফেন হ্যারিস

+1 আদর্শভাবে ধ্রুবক ব্যবহার এড়াতে পছন্দ করবে - তবে এই সমাধানটি ব্যবহার করার সময় কমপক্ষে এটি পরীক্ষা করে :) - এবং কীভাবে মূল জিনিসগুলি করা যায় বলে মনে হয়।
স্টিফেন হ্যারিস

2

সুতরাং একটি পদ্ধতি হ'ল plugin_dir_path()বর্তমান প্লাগ-ইনটির মধ্যে কল করা এবং আপনার নিজের প্লাগইন ডিরেক্টরি নামটি আপনার পরে থাকা প্লাগ-ইনটির স্লাগের সাথে প্রতিস্থাপন করা pluginb/pluginb.php:

সুতরাং আমাদের প্লাগ ইন মধ্যে plugina/plugina.php,

$plugin_b = str_replace('plugina/','pluginb/pluginb.php',plugin_dir_path(__FILE__));
echo $plugin_b; //Prints path/to/pluginb/pluginb.php';

আমি এর বিপরীতে পরামর্শ দেব, যেহেতু এই ধারণাটি রয়েছে যে প্লাগইন বি এ হিসাবে একই ডিরেক্টরিতে রয়েছে (যা প্রয়োজনে হবে না, আলা এমইউ প্লাগইনগুলি)।
TheDeadMedic

ধন্যবাদ, ভেবেছিলাম এমন কিছু হবে যা আমি মিস করব :)
স্টিফেন হ্যারিস

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