বিকল্প ও সেটিংসের মধ্যে পার্থক্য কী?


14

এবং আমার কোনটি ব্যবহার করা উচিত?

অপশন এপিআই এবং সেটিং এপিআই এর মধ্যে পার্থক্য কী ?

আমার 100 টিরও বেশি অ্যাডমিন অপশন সহ একটি থিম রয়েছে, আমি কীভাবে তাদের নিবন্ধন করব এবং সংরক্ষণ করব? এই মুহুর্তে আমি অপশন এপিআই ব্যবহার করছি তবে আমি এতে খুব বেশি খুশি নই, প্রতিটি একক বিকল্প আলাদাভাবে নিবন্ধিত হচ্ছে যাতে তারা প্রচুর ডাটাবেস অনুসন্ধান তৈরি করে।

আমি এই মুহুর্তে ওয়ার্ডপ্রেস অপশন / সেটিংস সঞ্চয় করার তিনটি উপায় দেখতে পাচ্ছি:

1. বিকল্পসমূহ API - পুরানো (সবচেয়ে খারাপ?) উপায় way

(আমি এটি ইতিমধ্যে ব্যবহার করছি)

<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>        

// all the inputs

<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="option1,option2,option3,..." />
<p class="submit">
<input type="submit" value="<?php _e('Save Changes') ?>" />
</p>
</form>

এবং তারপরে সামনের প্রান্তে:

echo get_option('option1'); 

কুরুচিপূর্ণ দেখায় এবং আমি মনে করি না যে এটি বিপুল সংখ্যক বিকল্পগুলি সংরক্ষণ করার সঠিক উপায় (আমি তাদের কোনওভাবে গ্রুপ করতে চাই)।

২. অপশন এপিআই - একটি বড় অ্যারে হিসাবে 1 টি বিকল্প।

আমি নিশ্চিত নই যে এইচটিএমএল ফর্মগুলি ব্যবহার করে এই অ্যারেটি কীভাবে আপডেট করবেন? আমি বিশ্বাস করি এটির মতো হওয়া উচিত:

$opt['option1'] = foo
$opt['option2'] = foo
$opt['option3'] = bar

update_option('theme_settings',$opt);

এবং তারপরে সামনের দিকে:

$settings = get_option('theme_settings');
echo $settings['option1']; 
echo $settings['option2']; 
echo $settings['option3']; 

আমি শুনেছি এটি সত্যিই প্রশ্নের সংখ্যা হ্রাস পেয়েছে এবং আমি সেগুলি একটি বিকল্প হিসাবে পেয়েছি। আমি এটি ব্যবহার করতে চাই তবে আমি উপরে উল্লিখিত হিসাবে আমি কীভাবে ওয়ার্ডপ্রেস অ্যাডমিন ফর্মের মধ্যে বিকল্পগুলির এই অ্যারেটি আপডেট করবেন তা নিশ্চিত নই। আমার ধারণা: <input type="hidden" name="theme_settings" value="option1,option2,option3,..." />নতুন উপাদান যুক্ত করার পরিবর্তে অ্যারে ওভাররাইট করা হবে?

3. সেটিংস এপিআই - নতুন উপায়।

অতিরিক্ত কোড প্রচুর প্রয়োজন:

function register_theme_settings() {
    //register our settings   
    register_setting( 'theme-settings', 'option1' );     
    register_setting( 'theme-settings', 'option2' );     
    register_setting( 'theme-settings', 'option3' );     
    register_setting( 'theme-settings', 'option4' );     
    register_setting( 'theme-settings', 'option5' );     
    // imagine this for 100 and more options    
};

এবং আমি নিশ্চিত নই যে এইটি এবং পদ্ধতির মধ্যে অ্যারে হিসাবে একটি বিকল্পের সাথে কী পার্থক্য রয়েছে?

TL; ড সুতরাং, আমি আমার থিম সেটিংস স্টোরেজ প্রকল্প তাই এটি করা হবে না উচিত দ্রুত কাজ এবং সংরক্ষণ সমস্ত বিকল্প / সেটিংস এক জায়গায় তাই আমি, উদাহরণস্বরূপ, প্রতিধ্বনি / তাদের সবাইকে এক সহজ ফাংশন ডাম্প সক্ষম হবে (হ্যাঁ , আমি এটি খারাপভাবে করতে চাই তবে এই সেটিংস এপিআই দিয়ে কীভাবে করব তা আমার কোনও ধারণা নেই)। দ্বিতীয় পদ্ধতিটি এখনও অবধি সেরা দেখাচ্ছে।

উত্তর:


11

অপশন এপিআই হ'ল প্রাথমিকভাবে একটি ডাটাবেস এপিআই, আপনাকে সহজেই ডাটাবেসের বিকল্প টেবিলে মানগুলি সংগ্রহ করতে দেয়।

সেটিংস এপিআই একটি ইন্টারফেস এপিআই। এটি আপনাকে এমনভাবে সেটিংসের স্ক্রিনগুলি তৈরি করতে দেয় যা ভবিষ্যতের ওয়ার্ডপ্রেস ইন্টারফেসের পরিবর্তনের সাথে খাপ খাইয়ে দেবে এবং সেই সাথে সুরক্ষা (ননসেস এবং হোয়াইটলিস্টিং এবং বৈধকরণ এবং এই জাতীয়) আপনার নিজের কোডটি রোলিংয়ের চেয়ে স্বয়ংক্রিয়ভাবে এবং আরও সহজে পরিচালনা করতে পারে।

সেটিংস এপিআই-তে আরও: http://ottopress.com/2009/wordpress-settings-api-tutorial/


3
+1 টি। সেটিংস এপিআই হ'ল সঠিক পদ্ধতি এবং আপনার চোখের ব্যাটিং না করে আপনার 100 থিম বিকল্পগুলি পরিচালনা করবে। কিছু বোকা ওয়ার্ডপ্রেস থিমগুলিতে সেটিংস এপিআই অন্তর্ভুক্ত করার জন্য একটি সত্যই দীর্ঘ-বায়ুযুক্ত টিউটোরিয়াল লিখেছিলেন ।
চিপ বেনেট

অটো, @ চিপ বেনেট আপনাকে ধন্যবাদ আমার আরও একটি অতিরিক্ত প্রশ্ন রয়েছে - ডকুমেন্টেশন অনুসারে আমার প্রতিটি প্রশাসক পৃষ্ঠার জন্য একাধিক সেটিংস গোষ্ঠী তৈরি করা উচিত, এটি কি কোনওভাবে পারফরম্যান্স / প্রশ্নের সংখ্যাকে প্রভাবিত করবে? প্রশ্নটি পড়ার মতো আমার দীর্ঘায়নে আমি যেমন ব্যাখ্যা করেছি তেমনি একটি গ্রুপের মধ্যে সমস্ত অপশন রাখার (কীভাবে 'থিম-সেটিংস' বলি) কিছু ভুল আছে? :)
ওয়ার্ডপ্রেসার

2
আমি কেবল একটি বিকল্প গ্রুপ ব্যবহার করার পরামর্শ দেব । আপনার যদি ইউআই সংস্থার প্রয়োজন হয় তবে সেটিংস বিভাগগুলি এবং সেটিংস পৃষ্ঠা ট্যাব ব্যবহার করুন।
চিপ বেনেট

@ শিপ বেনেট, ঠিক আছে, অনেক অনেক ধন্যবাদ :) দুর্দান্ত টিউটোরিয়াল বিটিডব্লিউ।
ওয়ার্ডপ্রেসার

@ শিপবেনেট লিঙ্ক: আপনার মন্তব্যে ওয়ার্ডপ্রেস থিমগুলিতে সেটিংস এপিআই অন্তর্ভুক্ত করা ভেঙে গেছে।
বিজয় চাভদা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.