在自定义Wordpress插件中包含js文件

时间:2019-05-19 15:11:47

标签: wordpress plugins

我正在尝试开发自己的Wordpress插件,但由于某种原因我无法在其中包含javascript文件。在我考虑在这里提出这个问题之前,我已经做了很多研究,但是都没有解决我的问题。我已经阅读了很多有关wp_register_script()和wp_enqueue_script()的知识,而且我不必同时包含两者,因此我决定只使用wp_enqueue_script()。

javascript文件位于wp-content / snappy-list-plugin / js / public / snappy-wordpress-plugin.js中,索引文件位于wp-content / snappy-list-plugin / snappy-中wordpress-plugin.php。

在snappy-wordpress-plugin.php文件中,我有:

function mslb_public_scripts(){

wp_enqueue_script('custom_js', plugins_url( '/snappy-list-plugin/js/public/snappy-wordpress-plugin.js', __FILE__ ), array('jquery'), '', true);

}

这似乎是可以的,但其中不包含该文件。

在文件顶部,我拥有:

add_action('wp_enqueue_scripts', 'mslb_public_scripts');

有人可以帮我吗?!

我试图添加wp_register_script(),但是它不起作用

add_action('admin_enqueue_scripts', 'mslb_public_scripts');

function mslb_public_scripts(){

    wp_enqueue_script('custom_js', plugins_url( '/snappy-list-plugin/js/public/snappy-wordpress-plugin.js', __FILE__ ), array('jquery'), '', true);

}

snappy-wordpress-plugin.js文件:

jQuery(document).ready(function($) {

    var wpajax_url = document.location.protocol + '//' +  document.location.host + '/wp-admin/admin-ajax.php';

    var email_capture_url = wpajax_url += '?action=swp_save_subscription';

    $('form.swp_form').bind('submit', function(){

        $form = $(this); 

        var form_data = $form.serialize(); 

        $.ajax({
            'method'    : 'post', 
            'url'       : email_capture_url,
            'data'      : form_data,
            'dataType'  : 'json',
            'cache'     : false,
            'success'   : function( data, textStatus){
                if(data.status == 1){
                    $form[0].reset(); 
                    alert(data.message);
                } else {
                    var msg = data.message + '\r' + data.error + '\r';
                    $.each(data.error, function(key, value){
                        msg += '\r';
                        msg += ' - ' + value;
                    });
                    alert( msg );
                }
            }, 
            'error'  : function(jqXHR, textStatus, errorThrown){

            } 
        });

        //stop the form from submitting normally

        return false; 

    });

});```

1 个答案:

答案 0 :(得分:0)

正确的操作是wp_enqueue_scripts

 add_action('wp_enqueue_scripts', 'mslb_public_scripts');

 function mslb_public_scripts(){
   wp_register_script('custom_js', plugins_url('/js/public/snappy-wordpress-plugin.js',__FILE__ ), array('jquery'), '', true);
   wp_enqueue_script('custom_js');
 }