wordpress API

wp_register_script 和 wp_enqueue_script 和 wp_localize_script的关系

日期:2016-02-29 阅读:1816

dmandwp系统 - wordpress系统和DM系统区块建站>>

wp_register_script用于注册一个脚本文件(JS文件)并将返回值的句柄提供给函数 wp_enqueue_script() 使用。


wp_register_script( "my_voter_script", WP_PLUGIN_URL.'/my_plugin/my_voter_script.js', array('jquery') );
  wp_enqueue_script( 'my_voter_script' );
就等同于

wp_enqueue_script("my_voter_script", WP_PLUGIN_URL.'/my_plugin/my_voter_script.js', array('jquery'));

-------
再看下面代码:

add_action( 'init', 'my_script_enqueuer' ); //先enqueue,再记得要用add_action

function my_script_enqueuer() {
   wp_register_script( "my_voter_script", WP_PLUGIN_URL.'/my_plugin/my_voter_script.js', array('jquery') );
   wp_localize_script( 'my_voter_script', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));        

   wp_enqueue_script( 'jquery' );
   wp_enqueue_script( 'my_voter_script' );

}
使用 wp_localize_script 从 PHP 传递参数给 JavaScript
这样,就可以在中my_voter_script.js 使用 myAjax.ajaxurl 

-------------

参考:ajax在wordpress的运用 >

https://www.smashingmagazine.com/2011/10/how-to-use-ajax-in-wordpress/

http://blog.wpjam.com/m/use-wp_localize_script/

--------------

参考代码:

function light_load_scripts() {
    wp_enqueue_script( 'jquery' );
    wp_enqueue_script( 'fancybox', plugin_dir_url( __FILE__ ) . 'js/jquery.fancybox.pack.js', array( 'jquery' ), false, true );
    wp_enqueue_style( 'fancybox-style', plugin_dir_url( __FILE__ ) . 'css/jquery.fancybox.css' );
}
add_action('wp_enqueue_scripts', 'light_load_scripts');//可以用wp_enqueue_scripts或init

 

<<点击返回