আমি ডায়নামিকভাবে একটি প্লাগিন সংস্করণ নম্বর পেতে চাই


10

হাউডি, আমি সম্প্রতি আমার প্লাগ ইনটিতে একটি "ইন-আপডেট" চেঞ্জলিস্ট ডিসপ্লে (খুব শীতল) প্রয়োগ করতে ডাব্লু 3 টি কে আঁকিয়েছি , তবে আমি এড়াতে পছন্দ করব এমন একটি বিশ্রী কোড রয়েছে।

আপনি যদি এই ফাইলটির শীর্ষে তাকান , আপনি নীচের কোডটি দেখতে পাবেন:

define ( 'BMLT_CURRENT_VERSION', '2.1.16' ); // This needs to be kept in synch with the version above.

Ick। : P: P

এটি আপ টু ডেট রাখা দরকার, যাতে ফাংশনটি আপনার প্লাগইন এবং বর্তমান স্থিতিশীল সংস্করণের মধ্যে ব-দ্বীপ বানাতে পারে।

আমি কোডেক্স অধীত করেছি, আর আমি খুঁজে পাচ্ছি না, কিন্তু করেনি বুঝেছি একটি প্লাগইন সংস্করণ পাওয়ার জন্য একটি API ফাংশন যাবে।

কোন সংকেত সনাক্ত করুন?

উত্তর:



14

Get_plugin_data () নামে একটি ফাংশন রয়েছে । আপনার যদি প্রয়োজন হয় তবে প্রধান প্লাগইন ফাইলের মধ্যে থেকে এটিকে কল করার চেষ্টা করুন:

$plugin_data = get_plugin_data( __FILE__ );
$plugin_version = $plugin_data['Version'];

তবে অন্য প্রশ্নের উত্তরে যেমন বলা হয়, পারফরম্যান্সের পক্ষে এটি করা ঠিক তেমনি পিএইচপি ভেরিয়েবলকে সংজ্ঞায়িত করা আরও ভাল।


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

1
এটা কাজ বলে মনে হচ্ছে না। আমি এই সতর্কতা পেতে Call to undefined function get_plugin_data()
এরি

@ আরিসুসান্টো আপনি কি এটিকে সামনের প্রান্তে ব্যবহারের চেষ্টা করছেন? ডাব্লুপি প্লাগইন প্রশাসনের কার্যগুলি কেবল প্রশাসক বিভাগে সংজ্ঞায়িত করা হয়। আপনার যদি সামনের প্রান্তে এটি ব্যবহার করতে হয় তবে আপনাকে ফাইলটি অন্তর্ভুক্ত করতে হবে wp-admin/includes/plugin.php
সুবর্ণপ্লেস

না, আমি প্রশাসন প্যানেলে এটি ব্যবহার করি।
এরি

আপনার যদি অপরিজ্ঞাত ত্রুটি থাকে তবে আপনি get_plugin_data ফাংশনটি ব্যবহার করতে পারেন।
পারফোলেন্সের

9

একটি বিকল্প get_plugin_data()হয় get_file_data () যা অতিরিক্ত ফাইল লোড ওভারহেড ছাড়া পাওয়া যায়।

এটি কেবল আপনার মূল প্লাগইন ফাইলে যুক্ত করুন:

$plugin_data = get_file_data(__FILE__, array('Version' => 'Version'), false);
$plugin_version = $plugin_data['Version'];

ফণা অধীনে get_file_dataকিছু পারফরম্যান্স হতে কিছু ক্লিভার স্ক্যান করে।

এবং প্রয়োজনে আপনার ধ্রুবককে সংজ্ঞায়িত করুন:

define ( 'YOURPLUGIN_CURRENT_VERSION', $plugin_version );

আমি অনুমান করি পারফরম্যান্সের জন্য ম্যানুয়ালি সংস্করণ নম্বরটি লেখাই আরও ভাল? (যেমন এখানে ব্যাখ্যা করা হয়েছে: ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জার.কম
সেকশনস

@ ব্যাপটেক্স হ্যাঁ, তবে, প্রতিটি অনুরোধে ওয়ার্ডপ্রেস যা কিছু করে তা বিবেচনা করে এটি একটি অপ্টিমাইজেশন নগণ্য হবে। অন্য কথায়, এটি কোনও ব্যাপার নয়
পলকোল।

1

একটি সম্ভাব্য সমাধান হ'ল রেজেক্স হতে পারে:

$plugin_version = NULL;
if(preg_match('/\*[\s\t]+?version:[\s\t]+?([0-9.]+)/i',file_get_contents( __FILE__ ), $v))
    $plugin_version = $v[1];

অবশ্যই উল্লেখ করতে হবে যে এই রেজেক্সের তুলনায় কিছুটা দ্রুত get_file_data()তবে সাধারণভাবে আপনি এটি লক্ষ্য করবেন না।

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