将Javascript脚本添加到WordPress已生成页面的安全方法

wp_enqueue_script()用法


<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>

参数
$handle
(字符串)(必需)脚本名称。小写字符串。
默认值:None
$src
(字符串)(可选)WordPress根目录下的脚本路径
示例:"/wp-includes/js/scriptaculous/scriptaculous.js"。该参数只在WordPress不了解脚本情况时使用。
默认值:None
$deps
(数组)(可选)脚本所依靠的句柄组成的数组;加载该脚本前需要加载的其它脚本。若没有依赖关系,返回false。该参数只在WordPress不了解脚本情况时使用。
默认值:array()
$ver
(字符串)(可选)指明脚本版本号的字符串(若存在版本号)。默认为false。该参数可确保即使在启用缓存的状态下,发送给客户端的仍然是正确版本,因此如果版本号可用且对脚本有意义,包含该版本号。
默认值:false
$in_footer
(布尔型)(可选)通常情况下脚本会被放置在区块中。如果该函数为true,脚本则会出现在区块的最下方。要求主题在适当的位置中包含有wp_footer()钩子。(WordPress新功能)
默认值:false
示例加载scriptaculous脚本


<?php
function my_init_method() {
wp_enqueue_script('scriptaculous');
}

add_action('init', my_init_method);
?>

根据scriptaculous加载脚本
添加并加载一个依赖于scriptaculous的脚本(这将使scriptaculous也被加载入页面):


<?php
wp_enqueue_script('newscript',
WP_PLUGIN_URL . '/someplugin/js/newscript.js',
array('scriptaculous'),
'1.0' );
?>

只在插件页面加载脚本


<?php

add_action('admin_init', 'my_plugin_admin_init');
add_action('admin_menu', 'my_plugin_admin_menu');

function my_plugin_admin_init()
{

wp_register_script('myPluginScript', WP_PLUGIN_URL . '/myPlugin/script.js');
}

function my_plugin_admin_menu()
{

$page = add_submenu_page( 'edit.php',
__('My Plugin', 'myPlugin'),
__('My Plugin', 'myPlugin'), 9, __FILE__,
'my_plugin_manage_menu');

add_action('admin_print_scripts-' . $page, 'my_plugin_admin_styles');
}

function my_plugin_admin_styles()
{

wp_enqueue_script('myPluginScript');
}

function my_plugin_manage_menu()
{

}

?>

注意:如果是来自wp_head动作的调用,wp_enqueue_script函数将不起作用,因为在wp_head运行 前,script标签就已经输出了。应该从init动作函数(在所有页面中加载脚本)、template_redirect (只在公共页面加载脚本)或admin_print_scripts (只在管理页面加载脚本)中调用wp_enqueue_script。不要使用wp_print_scripts(参见此说明)。
WordPress中的默认脚本
注意:WordPress中的jQuery库会以“无冲突”方式加载。利用以下代码按正常方式使用


$function:
jQuery(document).ready(function($) {
// $() will work as an alias for jQuery() inside of this function
});