कस्टमाइज़र जेएस एपीआई


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) हो सकता है कि आप पहले से ही अपने अनुभाग को दो बार कॉल करने के लिए तय कर सकते हैं

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

  }
})(jQuery);

मैंने टीआरसी में एक नोट देखा जिसमें कहा गया था कि "ध्यान दें कि गतिशील रूप से जोड़े गए नियंत्रणों के लिए एपीआई, और जेएस-टेम्पलेटेड कस्टम अनुभागों और पैनलों के लिए एपीआई अभी तक वर्डप्रेस 4.2 के रूप में उपलब्ध नहीं हैं। # 30741 देखें।" यह पढ़कर कि टीआरसी "अभी 4.5 की संभावना नहीं है" के साथ समाप्त होती है, इसलिए आपके प्रयास व्यर्थ हो सकते हैं = (

2) संदर्भ के लिए, wp_customize JS API यहां पाया जा सकता है । यह लिंक उपयोगी भी हो सकता है।

3) मेरे पास तीसरे लिंक के लिए पर्याप्त प्रतिनिधि नहीं है लेकिन आप Kirki.org को देख सकते हैं जो कस्टमाइज़र फ़ील्ड के लिए सहायक है। किरकि जीथुब पर भी काफी सक्रिय है।

4) PHP की तरफ, आप गतिशील रूप से मौजूद फ़ील्ड में अपने फ़ील्ड सरणी पर "active_callback" विकल्प का उपयोग कर सकते हैं।

$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/


नमस्ते मोहित, उत्तर के लिए धन्यवाद, लेकिन आपने जो प्रदान किया है वह वास्तविक प्रश्न का उत्तर नहीं देता है। जब आप इन रूपरेखाओं का उपयोग करते हैं, तब भी आपको JS API का उपयोग करना होगा। ये धोखाधड़ी कस्टमाइज़र जेएस एपीआई का विस्तार नहीं करते हैं और इसलिए इस मामले में कोई फायदा नहीं है।
अनिरुद्ध जोशी

नमस्ते, आप आसानी से जेएस फ़ाइलों के लिए प्रदान किए गए अन्य लिंक के साथ प्रबंधित कर सकते हैं। मैं इसे इस तरह से कर रहा हूं और अपने उद्देश्य को हल कर रहा हूं।
मोहित अनेजा

हम्म, जेएस एपीआई में नियंत्रण, अनुभाग और पैनल के लिए समर्थन v4.0 के साथ आया था जिसे 14 दिसंबर को लॉन्च किया गया था और जिस लेख का आप उल्लेख कर रहे हैं वह 14 सितंबर को लिखा गया था। क्या आप पूछ रहे हैं कि मेरा क्या मतलब है?
अनिरुद्ध जोशी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.