केवल उपयोग किए जाने पर विजेट जावास्क्रिप्ट + सीएसएस फ़ाइलों को कैसे लोड करें?


13

मैं अपने विजेट द्वारा उपयोग की गई जावास्क्रिप्ट और सीएसएस शैलियों को अपनी फाइलों के अंदर रखना चाहता हूं (और उन्हें थीम में नहीं जोड़ें)।

जब विजेट वास्तव में साइडबार पर उपयोग किया जाता है तो मैं उन्हें जोड़ने के लिए वर्डप्रेस प्राप्त नहीं कर सकता।

मैंने यह कोशिश की है:

कक्षा घोषणा के अंदर, मैंने 2 कार्य जोड़े हैं

class EssentielleRubriquesPosts extends WP_Widget {

function addFrontendCss(){
    wp_enqueue_style('erw-frontend-css', ESSENTIELLE_RUBRIQUE_WIDGET_PLUGIN_PATH . 'css/EssentielleRubriqueWidget-frontend.css');
}
function addFrontendJavascript(){
    wp_register_script('jq-hoverintent', PLUGIN_PATH . 'js/jquery.hoverintent.js', array('jquery'), '1.0',true);
    wp_enqueue_script('jq-hoverintent');
    wp_enqueue_script('jq-tools', PLUGIN_PATH . 'js/jquery.tools.js', array('jquery'),'1.0',true);
    wp_enqueue_script('erw-frontend-js', PLUGIN_PATH . 'js/widget-frontend.js', array('jquery', 'jq-hoverintent', 'jq-tools'),'1.0',true);

}

और विजेट के अंदर () फ़ंक्शन:

function widget($args, $instance) {
        add_action( 'wp_print_scripts', 'addFrontendJavascript' );
        add_action( 'wp_print_styles', 'addFrontendCss' );
}

लेकिन वह कुछ भी नहीं करता है ...


इस डॉक्स के बारे में क्या है Developers.elementor.com/add-custom-functionality
जुआन सोलानो

जवाबों:


6

wp_print_scriptsऔर wp_print_stylesहुक आपके विजेट फंक्शन से पहले निकाल दिए जाते हैं, इस तरह से यह काम नहीं कर रहा है।

इसका एक हल यह होगा कि wp_print_footer_scriptsहुक का उपयोग करते हुए पाद लेख में लिपियों को शामिल किया जाए , इसी तरह के प्रश्न के जनवरी के उत्तर पर एक नज़र डालें

या एक बहुत अच्छा समाधान एक और इसी तरह के प्रश्न के लिए सोरिच के जवाब पर एक नज़र रखना


5

सबसे अच्छा उपाय यह है कि आप पहले अपनी संपत्ति को पंजीकृत करें और उसके बाद CSS और JS को संलग्न करें widget() अपने WP_Widget फ़ंक्शन के सीधे जोड़ दें (सीधे नए तरीके से जोड़कर नहीं, बल्कि)।

मैंने इस समाधान का परीक्षण किया है और यह वर्तमान वर्डप्रेस संस्करण (4.5.3) में काम करता है - जेएस और सीएसएस दोनों को पृष्ठ पाद में जोड़ा गया है।

<?php
// Register your assets during `wp_enqueue_scripts` hook.
function custom_register_scripts() {
    wp_register_style('erw-frontend-css', '...frontend.css');
    wp_register_script('jq-hoverintent', '...hoverintent.js', ...);
    wp_register_script('jq-tools', '...tools.js', ...);
}
// Use wp_enqueue_scripts hook
add_action('wp_enqueue_scripts', 'custom_register_scripts');


class YourWidget extends WP_Widget {
    public function __construct() {
    }

    public function widget( $args, $instance ) {
        // Enqueue needed assets inside the `widget` function.
        wp_enqueue_style('erw-frontend-css');
        wp_enqueue_script('jq-hoverintent');
        wp_enqueue_script('jq-tools');

        // Output widget contents.
    }

    public function form( $instance ) {
    }

    public function update( $new_instance, $old_instance ) {
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.