কাস্টমাইজার জেএস এপিআই


10

ঠিক আছে তাই আমি কাস্টমাইজারের জেএস এপিআই ব্যবহার করে নতুন প্যানেল বিভাগ এবং গতিশীলভাবে নিয়ন্ত্রণগুলি তৈরি করতে নিজেকে শিক্ষিত করার চেষ্টা করছি।

এটি কয়েক দিন হতাশাব্যঞ্জক হয়েছে এবং আমি জেএস এপিআইয়ের মাধ্যমে এটি অর্জনের সঠিক উপায়টি অর্জন করতে অক্ষম ছিলাম।

এখনও অবধি, এটি ঘটানোর জন্য আমি এটি করছি যা কোনও সাফল্য ছাড়াই করছি:

    // for Settings
    api.create( 
        params.id, 
        params.id, 
        params.default, 
        params.args 
    );

    // for controls
    var controlConstructor = api.controlConstructor[params.type];
    var control = new controlConstructor(params.id, {
        params: params,
        previewer: api.previewer
    });
    api.control.add( 
        params.id, 
        control 
    );

     //for Sections
     var section = new api.Section(params.id, { 
        params: params
     }); 
    api.section.add( params.id, section );
    api.section('section_id').activate();

বিভাগটি প্রদর্শিত না হওয়ায় এগুলির কোনওটিই কাজ করছে বলে মনে হচ্ছে না এবং api.section('section_id').activate()বিভাগটি প্রদর্শিত করার জন্য আমাকে দুবার কনসোলে চালাতে হবে, নিয়ন্ত্রণটি একই।

উত্তর:


2

1) সম্ভবত এপিআই-এর সাথে আবদ্ধ হন ready যা আপনার বিভাগে দুবার কল করতে পারে fix

(function($, api){
  api.bind( 'ready', function() {...

  }
})(jQuery);

ট্র্যাকটিতে আমি একটি নোট দেখেছি যাতে বলা হয়েছে "নোট করুন যে ডায়ামিক্যালি-অ্যাডেড কন্ট্রোলগুলির জন্য APIs, এবং জেএস-টেম্প্লেটেড কাস্টম বিভাগ এবং প্যানেলগুলির APIs ওয়ার্ডপ্রেস ৪.২ অনুযায়ী এখনও উপলভ্য নয়। দেখুন # 30741"। ট্র্যাকটি পড়ার পরে "সম্ভবত এখন ৪.৫ এর জন্য নয়" দিয়ে শেষ হয় যাতে আপনার প্রচেষ্টা নিরর্থক হতে পারে = (

2) রেফারেন্সের জন্য, wp_customize JS API এখানে পাওয়া যাবে । এই লিঙ্কটি পাশাপাশি দরকারী হতে পারে।

3) আমার কাছে তৃতীয় লিঙ্কের জন্য পর্যাপ্ত প্রতিনিধি নেই তবে আপনি কিরকি.অর্গের দিকে নজর দিতে পারেন যা কাস্টমাইজার ক্ষেত্রগুলির জন্য সহায়ক সহায়িকা। কিরকি গিথুবের উপরেও বেশ সক্রিয়।

4) পিএইচপি সাইডে, আপনি আপনার ক্ষেত্র অ্যারেতে "সক্রিয়_ক্যালব্যাক" বিকল্পটি ব্যবহার করতে পারেন ক্ষেত্রগুলিকে গতিশীলভাবে উপস্থাপন করতে।

$wp_customize->add_control( 'some_single_page_specific_option', array(
  'label'           => esc_html__( 'Single Page Option' ),
  'section'         => 'my_page_options',
  'active_callback' => 'if_is_singular',
));

function if_is_singular(){
  if( is_singular() ){
    return true;
  } else {
    return false;
  }
}

শুভকামনা।


1
Note that the APIs for dynamically-added controls, and APIs for JS-templated custom Sections and Panels are not yet available as of WordPress 4.2.যে এটি যোগ। :(
অনিরুদ্ধ যোশি

-2

আমি চাকা পুনরায় উদ্ভাবনের পরিবর্তে পরামর্শ দেব, সম্ভবত আপনি আপনার প্রকল্পের জন্য এই কাঠামোটিকে একটি বেস হিসাবে বিবেচনা করবেন। http://wpshed.com/wordpress-theme-customizer-framework/

ফ্রেমওয়ার্ক শেখার সময় এবং সন্ধান করার সময় এটিই আমি খুঁজে পেয়েছি। আপনি আপনার নিজস্ব কাস্টম নিয়ন্ত্রণের সাহায্যে এই কাঠামোটি প্রসারিত করতে পারেন এবং নীচের লিঙ্কটি আপনাকে jQuery বা জাভাস্ক্রিপ্টের মাধ্যমে কাস্টমাইজার এবং কাস্টমাইজার-পূর্বরূপের মধ্যে যোগাযোগ বুঝতে এবং প্রয়োগ করতে সহায়তা করবে।

https://conductorplugin.com/developing-wordpress-customizer-part1/


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

হাই, আপনি জেএস ফাইলগুলির জন্য সরবরাহিত অন্যান্য লিঙ্কটি দিয়ে আপনি সহজেই তা পরিচালনা করতে পারেন। আমি এটি এইভাবে করছি এবং আমার উদ্দেশ্য সমাধান করছি।
মোহিত আনেজা

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